
随着PHP7.1版本或更早的版本达到了生命的尽头(EOL),如果你还没有,那么你应该安装和配置PHP7.3和任何需要的扩展,本文将引导你完成在Ubuntu Nginx服务器上设置PHP7.3的过程,以及安装WordPress网站需要的和推荐的PHP扩展。
在这篇文章中,我是在一个已经配置好并运行PHP 7.2的系统上工作的。
在你开始之前,本文的步骤假设如下
- 你正在运行Ubuntu 16.04或18.04
- 你有sudo或root权限
- 你的服务器运行Nginx。
1.添加PPA资源库并更新软件包列表。
运行下面的命令,将ppa:ondrej/php PPA资源库添加到系统中,并更新可用的包列表。 这个PPA包含了Ubuntu系统的最新PHP包和扩展,是我推荐的选择,尽管这些包有很多可能的来源。
sudo add-apt-repository ppa:ondrej/php
sudo apt update
这应该只需要一分钟就能完成,之后就可以安装和配置新的PHP包和任何需要的扩展。
2.安装PHP 7.3和任何需要的扩展程序。
接下来的命令将为你的系统安装php 7.3和使用最新核心分支运行WordPress网站所需的和推荐的扩展。
安装php-7.3和php7.3-fpm:
sudo apt install php7.3 php7.3-fpm
为了确保你有所有运行WordPress网站所需的和推荐的扩展(这些扩展也应该足够用于大多数其他基于PHP的CMS平台或功能),运行以下内容。
sudo apt install php7.3-common php7.3-mysql php7.3-curl php7.3-json php7.3-mbstring php7.3-xml php7.3-zip php7.3-gd php7.3-soap php7.3-ssh2 php7.3-tokenizer
WordPress所需和推荐的PHP扩展列表
WordPress在WordPress服务器环境文档中有一个优化运行WordPress所需和推荐的PHP扩展的列表,点击这里可以获得完整的列表,但为了供您参考,下面是截至2019年12月18日的列表,WordPress 5.3.1版本是最新的,PHP 7.3是推荐版本。 其中很多都包含在php7.3-common包中,这就是为什么它们没有在早期的命令中被明确添加。

必要的扩展:
curl-执行远程请求操作。
dom -用于验证文本小部件内容和自动配置IIS7+。
exif -与存储在图像中的元数据一起工作。
fileinfo -用于检测文件上传的mimetype。
hash -用于散列,包括密码和更新包。
json -用于与其他服务器通信。
mbstring- 用于正确处理UTF8文本。
mysqli -连接到MySQL进行数据库交互。
libsodium -验证签名并提供安全的随机字节。
openssl -允许基于SSL的连接到其他主机。
pcre -提高代码搜索中模式匹配的性能。
imagick -为媒体上传提供更好的图像质量。详情见WP_Image_Editor is incoming!当Ghost Script也可用时,可以更聪明地调整图片大小(用于更小的图片)和支持PDF缩略图。
xml -用于XML解析,例如从第三方网站上解析。
zip -用于解压Plugins、Themes和WordPress更新包。
推荐的扩展:
filter- 用于安全地过滤用户输入。
gd -如果Imagick没有安装,GD图形库被用作功能有限的后备图像处理。
iconv -用于字符集之间的转换。
mcrypt -当libsodium和/dev/urandom不可用时生成随机字节。
simplexml -用于XML解析。
xmlreader -用于XML解析。
zlib -Gzip压缩和解压。
3.在Nginx配置中配置PHP 7.3
接下来,你需要更新网站的Nginx配置,以适应最近安装的PHP 7.3,如果你已经安装和配置了旧的php版本,这只需要更新Nginx配置中的一点点代码。
如果你使用默认的网站块,并且只在服务上运行一个网站,这将使你的网站文档根目录在/var/www/html/ ,那么你将需要编辑默认的配置在/etc/nginx/sites-available/default ,你可以通过发出以下命令来完成。
sudo nano /etc/nginx/sites-available/default
如果你有多个站点和配置,并且想单独应用 PHP 7.3 而不是将其添加为默认配置,那么请在与 "默认 "文件相同的目录下编辑相应的配置文件,或者如果你使用的是自定义的站点块,则在你的站点配置可能被设置的地方编辑。

用 nano(或你选择的编辑器)打开文件后,在服务器配置部分添加或修改以下代码,以配置它与 PHP 7.3 一起使用。
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.3-fpm.sock。
}
之后别忘了重启php7.3-fpm服务,以及在重启或重载Nginx之前检查Nginx配置是否有问题。
重启php7.3-fpm
sudo systemctl restart php7.3-fpm
检查Nginx配置的改变是否正确:
sudo nginx -t

如果Nginx配置测试的结果是OK,那么可以使用以下命令重启或重新加载Nginx。
sudo systemctl restart nginx
sudo systemctl reload nginx
也可以通过运行下面的命令检查这些服务的状态,以确保它们在服务器上成功重启。 这样做之后,PHP 7.3将运行它所配置的任何站点。
sudo systemctl status php7.3-fpm nginx
