如何在 Ubuntu 20.04 上为 Nginx 安装 PHP 8.1
在 Ubuntu 20.04 服务器上配置 PHP 8.1 与 Nginx 的组合,可以高效运行动态 Web 应用程序。本文提供了一步步的指南,帮助您安装和配置 PHP 8.1 与 Nginx,确保 Web 服务器性能和兼容性得到优化。按照以下步骤操作,即可顺利搭建您的环境。
前置条件
在开始之前,请确保满足以下条件:
-
运行 Ubuntu 20.04 的服务器,具备 root 或 sudo 权限。
-
熟悉基本的终端命令。
-
稳定的互联网连接,用于下载软件包。
步骤 1:更新系统
保持系统更新可以确保兼容性和安全性。首先刷新软件包列表并升级已安装的软件包。
sudo apt update && sudo apt upgrade -y
此命令会获取最新的软件包信息并应用可用更新。
步骤 2:添加 PHP 软件源
Ubuntu 20.04 的默认软件源可能不包含 PHP 8.1,因此需要添加第三方软件源,例如 Ondřej Surý 的 PPA,它提供了最新的 PHP 版本。
安装管理软件源所需的工具:
sudo apt install software-properties-common -y
添加 PHP 软件源:
sudo add-apt-repository ppa:ondrej/php -y
再次更新软件包列表以包含新软件源:
sudo apt update
步骤 3:安装 PHP 8.1 及必要扩展
软件源添加完成后,安装 PHP 8.1 及 PHP-FPM(FastCGI 进程管理器),以便与 Nginx 集成。
sudo apt install php8.1 php8.1-fpm php8.1-cli php8.1-common php8.1-mysql php8.1-zip php8.1-gd php8.1-mbstring php8.1-curl php8.1-xml php8.1-bcmath -y
此命令安装 PHP 8.1、PHP-FPM 以及 Web 应用程序常用的扩展,例如 MySQL 支持、图像处理和字符串处理等。
步骤 4:验证 PHP 安装
检查 PHP 8.1 是否正确安装,运行以下命令查看版本信息:
php -v
输出应显示 PHP 8.1 及其构建详情。接着,检查 PHP-FPM 服务状态:
sudo systemctl status php8.1-fpm
确保服务处于活跃运行状态。如果服务未运行,使用以下命令启动:
sudo systemctl start php8.1-fpm
设置 PHP-FPM 开机自启:
sudo systemctl enable php8.1-fpm
步骤 5:安装和配置 Nginx
如果尚未安装 Nginx,请执行以下命令进行安装:
sudo apt install nginx -y
验证 Nginx 是否运行:
sudo systemctl status nginx
如果 Nginx 未运行,启动并启用开机自启:
sudo systemctl start nginx
sudo systemctl enable nginx
步骤 6:配置 Nginx 与 PHP 集成
需要配置 Nginx 以通过 PHP-FPM 处理 PHP 文件。创建或编辑位于 /etc/nginx/sites-available/ 目录中的服务器配置文件。
为站点(例如 example.com)创建新的配置文件:
sudo nano /etc/nginx/sites-available/example.com
添加以下配置,调整 server_name 和 root 指令以匹配您的域名和 Web 根目录:
server { listen 80; server_name example.com www.example.com; root /var/www/example.com/html; index index.php index.html index.htm; location / { try_files $uri $uri/ /index.php?$query_string; } location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php8.1-fpm.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } location ~ /\.ht { deny all; } }
保存并退出文件。创建 Web 根目录并设置适当的权限:
sudo mkdir -p /var/www/example.com/html
sudo chown -R www-data:www-data /var/www/example.com/html
sudo chmod -R 755 /var/www/example.com/html
步骤 7:测试 Nginx 配置
在应用更改前,检查 Nginx 配置文件是否存在语法错误:
sudo nginx -t
如果测试通过,通过创建符号链接启用站点:
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
重新加载 Nginx 以应用更改:
sudo systemctl reload nginx
步骤 8:测试 PHP 处理
创建一个测试 PHP 文件,验证 Nginx 和 PHP-FPM 是否正常协作:
sudo nano /var/www/example.com/html/info.php
添加以下代码:
<?php phpinfo(); ?>
保存并退出。在浏览器中访问该文件(例如 http://example.com/info.php),应显示 PHP 8.1 的信息页面。
为确保安全,验证完成后删除测试文件:
sudo rm /var/www/example.com/html/info.php
步骤 9:优化 PHP-FPM(可选)
根据服务器资源调整 PHP-FPM 设置以提升性能。编辑 PHP-FPM 池配置文件:
sudo nano /etc/php/8.1/fpm/pool.d/www.conf
根据需要修改以下设置(示例值如下):
-
pm = dynamic
-
pm.max_children = 50
-
pm.start_servers = 5
-
pm.min_spare_servers = 5
-
pm.max_spare_servers = 35
保存文件并重启 PHP-FPM:
sudo systemctl restart php8.1-fpm
故障排除建议
如果遇到问题,请检查以下内容:
-
Nginx 错误:查看日志 sudo tail -f /var/log/nginx/error.log。
-
PHP-FPM 错误:查看日志 sudo tail -f /var/log/php8.1-fpm.log。
-
权限问题:确保 Web 根目录由 www-data 用户拥有。
-
防火墙:如果启用了防火墙,允许 HTTP 流量:sudo ufw allow 80。
总结
按照以上步骤,您已成功在 Ubuntu 20.04 上安装 PHP 8.1 并配置其与 Nginx 的协作。您的服务器现已准备好运行基于 PHP 的 Web 应用程序,例如 WordPress、Laravel 或自定义项目。定期更新系统并监控日志,以保持安全高效的运行环境。
更多推荐



所有评论(0)