













安装 Ubuntu 26.04 LTS, Webmin, Nginx, MariaDB, PHP8.5-FPM,Perl-Fastcgi 到 DigitalOcean 的 VPS上。
DavidYin 介绍了如何在 DigitalOcean 创建新 VPS。并且完成基本的 Ubuntu 26.04 LTS的系统。然后介绍如何安装 Webmin 主机控制面板,时区设置和 SSH 的安全设置。再之后说明一下如何用之前的新添加的用户来安装 Nginx Web 服务器和 MairaDB 数据库服务器。
现在就是很重要的语言支持部分了。因为我用的最多的就是 php 以及 perl 语言。所以这两部分就是重点了。
Ubuntu 26.04 LTS 仓库所包含的是 php8.5.4,目前 php 官方支持的主力版本是 8.4,8.5,而 8.2,8.3 则是在安全补丁支持阶段。所以直接使用 Ubuntu 的就已经是很新的版本了。
sudo apt install php8.5 php8.5-fpm php8.5-cli php8.5-common php8.5-mbstring php8.5-gd php8.5-intl php8.5-xml php8.5-mysql php8.5-zip php8.5-curl
安装完成后,执行 php -v 命令,可以看到版本信息。
davidyin@pecan:~$ php -v
PHP 8.5.4 (cli) (built: Jul 16 2026 18:56:38) (NTS)
Copyright (c) The PHP Group
Built by Ubuntu
Zend Engine v4.5.4, Copyright (c) Zend Technologies
with Zend OPcache v8.5.4, Copyright (c), by Zend Technologies
可以确认当前版本为 php 8.5.4. 然后再看一眼,php8.5-frpm 服务是否已经起来。

说明:下面这些都是用来举例说明所用的,在实际使用中请用真实的数据。
IP: 144.126.221.243
Domain: u26.webexample.win
username: davidyin
接下来我要设置一个 vhost,就是一个虚拟主机,我用的域名是 u26.webexample.win,此为举例而已。 到域名服务商的网站,专门设置域名记录的地方,把 u26.webexample.win 的 A 记录指向此 VPS 的 IP 地址,生效可能需要十分钟或更久,为快捷,可以在所操作的Windows hosts 文件添加纪录使之在本地立即可用。 新建一个主机配置文件,u26.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 u26.webexample.win;
access_log /var/log/nginx/host.access.log main;
root /home/davidyin/u26.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$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php8.5-fpm.sock;
}
# 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/u26.webexample.win/下新建一个文件 info.php
输入如下内容:
<?php
phpinfo();
回到桌面浏览器中,输入网址 http://u26.webexample.win/info.php,如果看到下面这些内容,就表示 php 安装正确, nginx 也运行正确。
有时候会出现奇怪的问题,找不到文件啊,没有权限啊。这是最好的解决方法,就是重启服务器。有时候是配置未生效。
如果出现问题,或者是页面错误,可以查看这两个日志文件。
/var/log/nginx/host.access.log
/var/log/nginx/error.log
至此,php8.5 已经安装完毕,并且虚拟主机也可以使用 php 语言了。
如果是商用,或者愿意购买一年期的证书,DavidYin建议到 Gogetssl 购买,这里价格最优,无限重签,不限服务器。目前的证书可以购买5年的,但是实际签发的证书都是半年的,这是现在所有CA 的国际标准,到时重新签发一次,直到购买的年份用完为止。买多年的会便宜一点。
Gogetssl 证书的好处是你买了一个证书给域名 A 用,如果这个域名不用了,还可以签发给域名 B 使用剩下的时间。
免费证书这里我采用 Zerossl 的 SSL 证书。使用了 Neilpang 的 ACME.SH 来安装。每月自动续签。
先安装工具。
curl https://get.acme.sh | sh -s email=seo@g2soft.net
接下来,重新登入SSH,相当于重新载入 BASH 环境,因为上面的安装已经把路径配置到 Bash 中了,并且自动创建了一个 bash 的别名,方便使用,直接输入 acme.sh 命令就可以了。另外还自动创建了一个 cronjob,每天零点自动检测所有的证书,如果快过期,就会自动更新。
验证域名的方式有两种,DNS 和 http,这次我用了 http 方式来验证。
上面一步安装好后,需要先执行一下 source ~/.bashrc , 以让环境参数生效。
davidyin@pecan:~$ acme.sh --issue -d u26.webexample.win --webroot /home/davidyin/u26.webexample.win
[Wed Jul 22 23:17:10 PDT 2026] Using CA: https://acme.zerossl.com/v2/DV90
[Wed Jul 22 23:17:10 PDT 2026] Single domain='u26.webexample.win'
[Wed Jul 22 23:17:15 PDT 2026] Getting webroot for domain='u26.webexample.win'
[Wed Jul 22 23:17:15 PDT 2026] Verifying: u26.webexample.win
[Wed Jul 22 23:17:18 PDT 2026] Processing. The CA is processing your order, please wait. (1/30)
[Wed Jul 22 23:17:22 PDT 2026] Success
[Wed Jul 22 23:17:22 PDT 2026] Verification finished, beginning signing.
[Wed Jul 22 23:17:22 PDT 2026] Let's finalize the order.
[Wed Jul 22 23:17:22 PDT 2026] Le_OrderFinalize='https://acme.zerossl.com/v2/DV90/order/9vGSFUWWbZI18Dgg6xOtHQ/finalize'
[Wed Jul 22 23:17:24 PDT 2026] Order status is 'processing', let's sleep and retry.
[Wed Jul 22 23:17:24 PDT 2026] Sleeping for 15 seconds then retrying
[Wed Jul 22 23:17:40 PDT 2026] Polling order status: https://acme.zerossl.com/v2/DV90/order/9vGSFUWWbZI18Dgg6xOtHQ
[Wed Jul 22 23:17:42 PDT 2026] Downloading cert.
[Wed Jul 22 23:17:42 PDT 2026] Le_LinkCert='https://acme.zerossl.com/v2/DV90/cert/aXnfE7FQTsSqhmxD7aCpVg'
[Wed Jul 22 23:17:44 PDT 2026] Cert success.
-----BEGIN CERTIFICATE-----
MIIDhzCCAyygAwIBAgIQP0RKPW1WFzsDCTAZ2AAP3TAKBggqhkjOPQQDAjBGMQsw
CQYDVQQGEwJBVDEVMBMGA1UEChMMWmVyb1NTTCBHbWJIMSAwHgYDVQQDExdaZXJv
U1NMIEVDQyBEViBTU0wgQ0EgMjAeFw0yNjA3MjMwMDAwMDBaFw0yNjEwMjEyMzU5
NTlaMB0xGzAZBgNVBAMTEnUyNi53ZWJleGFtcGxlLndpbjBZMBMGByqGSM49AgEG
CCqGSM49AwEHA0IABNis5Z7Jdv/8/hMiELxnX0yvXKBxLKk6cwZ2hcbM2+eQQqC8
中间省略
AiEAsXwlwSjlPiMRFS5KuloJBZ7EC6R3+gV61Dvvc8f63ZgCICORhj/RKrXOBP8h
QkztHkWqmXLRoGaPnG6Ujwoz7ppdMB0GA1UdEQQWMBSCEnUyNi53ZWJleGFtcGxl
LndpbjAKBggqhkjOPQQDAgNJADBGAiEA+ZwEXzQApjTiU5aGMOG3R9mTqoezIrtG
lP0ALMIbfZcCIQDcIq2Lg6PpLaOoK8i8by4qAMEWcZf6sTkze5LUXnPssw==
-----END CERTIFICATE-----
[Wed Jul 22 23:17:44 PDT 2026] Your cert is in: /home/davidyin/.acme.sh/u26.webexample.win_ecc/u26.webexample.win.cer
[Wed Jul 22 23:17:44 PDT 2026] Your cert key is in: /home/davidyin/.acme.sh/u26.webexample.win_ecc/u26.webexample.win.key
[Wed Jul 22 23:17:44 PDT 2026] The intermediate CA cert is in: /home/davidyin/.acme.sh/u26.webexample.win_ecc/ca.cer
[Wed Jul 22 23:17:44 PDT 2026] And the full-chain cert is in: /home/davidyin/.acme.sh/u26.webexample.win_ecc/fullchain.cer
[Wed Jul 22 23:17:45 PDT 2026] ARI suggestedWindow: 2026-10-06T23:59:59Z to 2026-10-08T23:59:59Z
[Wed Jul 22 23:17:45 PDT 2026] Next renewal time picked from ARI window: 2026-10-08T06:17:44Z
验证正确,就会自动签发证书,证书会临时先存放在一个工作目录,现在我要指定一个目录存放: /home/davidyin/ssl/。 之后就是安装证书到该目录。
acme.sh --install-cert -d u26.webexample.win \
--key-file /home/davidyin/ssl/key \
--fullchain-file /home/davidyin/ssl/cert \
--reloadcmd "service nginx force-reload"
就这样,证书也签发好了,也安装到指定位置,接下来会介绍如何在 nginx 的配置文件中,设置证书路径,设置 https,设置重定向,还有 perl-fastcgi等等。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。