安装 Ubuntu 20.04, Webmin, Nginx, MariaDB, PHP7.4-FPM,Perl-Fastcgi 到 DigitalOcean 的 VPS(4)
作者:
最后更新于 | 最初发布于 | 分类: 服务器和主机
安装 Ubuntu 20.04 LTS, Webmin, Nginx, MariaDB, PHP7.4-FPM,Perl-Fastcgi 到 DigitalOcean 的 VPS上。
DavidYin 介绍了如何在 DigitalOcean 创建新 VPS。并且完成基本的 Ubuntu 20.04 LTS的系统。然后介绍如何安装 Webmin 主机控制面板,时区设置和 SSH 的安全设置。再之后说明一下如何用之前的新添加的用户来安装 Nginx Web 服务器和 MairaDB数据库服务器。
现在就是很重要的语言支持部分了。因为我用的最多的就是 php 以及 perl 语言。所以这两部分就是重点了。
第四部分
安装 php7.4-fpm
Ubuntu 20.04 LTS 仓库所包含的是 php7.4,目前 php 官方支持的版本是 从7.2,7.3,7.4 这三个系列。所以直接使用Ubuntu的就已经是很新的版本了。
sudo apt install php7.4 php7.4-fpm php7.4-cli php7.4-common php7.4-mbstring php7.4-gd php7.4-intl php7.4-xml php7.4-mysql php7.4-zip php7.4-json php7.4-curl
安装完成后,执行 php -V 命令,可以看到版本信息。
davidyin@oak:~$ php -v
PHP 7.4.3 (cli) (built: Mar 26 2020 20:24:23) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
with Zend OPcache v7.4.3, Copyright (c), by Zend Technologies
再看一下 php7.4-fpm 是否已经运行。
sudo service php7.4-fpm status
设置虚拟主机
说明:下面这些都是用来举例说明所用的,在实际使用中请用真实的数据。
IP: 45.33.52.122
Domain: u20.webexample.win
username: davidyin
接下来我要设置一个vhost,就是一个虚拟主机,我用的域名是 u20.webexample.win,此为举例而已。 到域名服务商处,把 u20.webexample.win 的 A 记录指向此 VPS 的 IP 地址,生效可能需要十分钟或更久,为快捷,可以在所操作的Windows hosts 文件添加纪录使之在本地立即可用。 新建一个主机配置文件,webexample.conf,如下。
sudo nano /etc/nginx/conf.d/webexample.conf
新建这个配置文件,并把下面的内容复制其中。
log_format main '$remote_addr - $remote_user [$time_local] $status '
'"$request" $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
server {
listen 80;
server_name u20.webexample.win;
access_log /var/log/nginx/host.access.log main;
root /home/davidyin/u20.webexample.win;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ = 404;
}
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
location ~ /\.ht {
deny all;
}
}
保存退出,然后执行 sudo nginx -t 命令看看,是否配置文件正确。若正确,就重启 Nginx 服务,使配置生效。
sudo service nginx restart
在/home/davidyin/u20.webexample.win/下新建一个文件 info.php
输入如下内容:
<?php
phpinfo();
回到桌面浏览器中,输入网址 http://u20.webexample.win/info.php,如果看到下面这些内容,就表示 php 安装正确, nginx 也运行正确。
如果出现问题,或者是页面错误,可以查看这两个日志文件。
- /var/log/nginx/host.access.log
- /var/log/nginx/error.log
至此,php 7.4 已经安装完毕,并且虚拟主机也可以使用 php 的语言了。
SSL 证书的签发
如果是商用,或者愿意购买两年期的证书,DavidYin建议到 Gogetssl 购买,这里价格最优,无限重签,不限服务器。
- Sectigo Essential SSL 两年证书,只要 $17。
- Sectigo PositiveSSL 两年证书,只要 $7.90。
- GGSSL Domain SSL 两年证书,$7.00。
- 还有 Thawte, DigiCert,GeoTrust 的证书可以选择。
免费证书这里我采用 Let's Encrypt 的 SSL 证书。使用了 Neilpang 的脚本来安装。每月自动续签。
先安装工具。
davidyin@oak:~$ curl https://get.acme.sh | sh
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 775 0 775 0 0 10616 0 --:--:-- --:--:-- --:--:-- 10472
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 192k 100 192k 0 0 2140k 0 --:--:-- --:--:-- --:--:-- 2140k
[Sun Apr 26 02:51:39 PDT 2020] Installing from online archive.
[Sun Apr 26 02:51:39 PDT 2020] Downloading https://github.com/acmesh-official/acme.sh/archive/master.tar.gz
[Sun Apr 26 02:51:39 PDT 2020] Extracting master.tar.gz
[Sun Apr 26 02:51:39 PDT 2020] Installing to /home/davidyin/.acme.sh
[Sun Apr 26 02:51:39 PDT 2020] Installed to /home/davidyin/.acme.sh/acme.sh
[Sun Apr 26 02:51:39 PDT 2020] Installing alias to '/home/davidyin/.bashrc'
[Sun Apr 26 02:51:39 PDT 2020] OK, Close and reopen your terminal to start using acme.sh
[Sun Apr 26 02:51:39 PDT 2020] Installing cron job
no crontab for davidyin
no crontab for davidyin
[Sun Apr 26 02:51:39 PDT 2020] Good, bash is found, so change the shebang to use bash as preferred.
[Sun Apr 26 02:51:40 PDT 2020] OK
[Sun Apr 26 02:51:40 PDT 2020] Install success!
安装完成后,它会把 acme.sh 安装到我的 home 目录之下:比如这里的 /home/davidyin/.acme.sh/
并且自动创建了一个 bash 的别名,方便使用,直接输入 acme.sh 命令就可以了。另外还自动创建了一个 cronjob,每天零点自动检测所有的证书,如果快过期,就会自动更新。如果安装完,不能直接运行 acme.sh 命令,重启系统就可以。
验证域名的方式有两种,DNS 和 http,我采用了 DNS api 方式,因为我用的域名管理商 namesilo 是被支持的。
acme.sh --issue --dns dns_namesilo --dnssleep 900 -d u20.webexample.win -k ec-384
要等待 900 秒钟,才能完成验证。
验证正确,就会自动签发证书,证书会临时先存放在一个工作目录,现在我要指定一个目录存放: /home/davidyin/ssl/。
mkdir ~/ssl
acme.sh --install-cert -d u20.webexample.win \
--key-file /home/davidyin/ssl/key \
--fullchain-file /home/davidyin/ssl/cert \
--reloadcmd "service nginx force-reload" \
--ecc
就这样,证书也签发好了,也安装到指定位置,接下来会介绍如何在 nginx 的配置文件中,设置证书,设置 https,设置重定向,还有 perl-fastcgi等等。
安装 Ubuntu 20.04, Webmin, Nginx, MariaDB, PHP7.4-FPM,Perl-Fastcgi 到 DigitalOcean 的 VPS
相关的文章
- 安装 Ubuntu 22.04 (LTS), Webmin, Nginx, MariaDB, PHP8.1-FPM,Perl-Fastcgi 到 DigitalOcean 的 VPS(4)
- 安装 Ubuntu 18.04, Webmin, Nginx, MariaDB, PHP7.2-FPM,Perl-Fastcgi 到 Linode 的 VPS(4)
- 安装 Ubuntu 24.04 (LTS), Webmin, Nginx, MariaDB, PHP8.3-FPM,Perl-Fastcgi 到 DigitalOcean 的 VPS(4)
- 服务器升级造成的宕机
- 聊聊 SSL 证书这件事
- 安装Nginx, MySQL, PHP-FPM, Perl-Fastcgi到Ubuntu 14.04 LTS
- 免费DV SSL证书
- 安装 Ubuntu 24.04 (LTS), Webmin, Nginx, MariaDB, PHP8.3-FPM,Perl-Fastcgi 到 DigitalOcean 的 VPS(3)