本文将向您展示如何在 Ubuntu 22.04 上安装 PHP 8.2 并将其与 Nginx 集成。
1 添加 Ondrej PPA 存储库
在撰写本教程时,PHP8.2不是 Ubuntu 22.04 存储库中的默认 PHP 版本。如果安装其他版本需要添加储存库。我们将使用Ondrej PPA存储库来安装最新版本的 PHP。该存储库包含多个 PHP 版本和 PHP 扩展。首先,让我们更新您的 Ubuntu 系统软件包并安装一些依赖项,如下所示。
sudo apt update
这个命令用于更新本地软件包列表,从软件源获取最新的软件包信息。
sudo apt install ca-certificates apt-transport-https
允许apt 通过https 获取储存包,ca-certificates 是一个公钥证书管理工具,用于验证 HTTPS 连接。apt-transport-https 是一个 APT 传输模块,用于通过 HTTPS 协议下载软件包.
sudo apt install software-properties-common
这个命令安装了 software-properties-common 软件包,它提供了一些常用的软件源管理工具,例如 add-apt-repository 命令。
sudo add-apt-repository ppa:ondrej/php
这个命令将添加 ondrej/php PPA(Personal Package Archive)到你的系统中。PPA 是 Ubuntu 中用于托管个人软件包的仓库,通过添加 PPA,可以让系统获取到该 PPA 中提供的软件包。ondrej/php PPA 是由 Ondřej Surý 维护的 PHP PPA,提供了较新版本的 PHP 软件包.
2 安装Install PHP 8.2 with Nginx
如果您想在 Nginx 安装中使用 PHP 8.2,最推荐的步骤是安装 PHP-FPM 来处理 PHP 文件。您可以使用以下命令安装 PHP 和 PHP-FPM:
sudo apt install php8.2 php8.2-fpm
PHP-FPM 服务应该自动启动。您可以验证这一点,如图所示:
sudo systemctl status php8.2-fpm
3 nginx 配置php
server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/html;
index index.php index.html index.htm;
server_name _;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
# fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
# include fastcgi_params;
}
error_page 404 /404.html;
location = /404.html {
root /usr/share/nginx/html;
internal;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
internal;
}
}
配置完成后,重启nginx
sudo systemctl restart nginx
4 安装php扩展
安装扩展格式是
sudo apt install php8.1-[extension-name]
例如 下面这些常用扩展
sudo apt install php8.2-fpm php8.2-cli php8.2-mysql php8.2-curl php8.2-gd php8.2-mbstring php8.2-xml
5 配置php
现在,我们通过更改 php.ini 文件中的一些值来为 Web 应用程序配置 PHP。对于使用 Nginx 的 PHP 8.2 FPM,php.ini 位置将位于以下目录中。
sudo vi /etc/php/8.2/fpm/php.ini
这个配置以供参考
upload_max_filesize = 32M
post_max_size = 48M
memory_limit = 256M
max_execution_time = 600
max_input_vars = 3000
max_input_time = 1000
保存并关闭文件后,重启php
sudo systemctl restart nginx
6 测试php
在你的配置文件root 目录/var/www/html,下面新建一个php文件info.php,添加
<?php
phpinfo();
?>
vim手动创建或者使用这个命令
echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php
然后访问你的
http://server-ip/info.php
就能看到phpinfo的页面了。
7 配置默认版本
如果你的主机上安装了几个版本,那么需要配置一个默认版本
sudo update-alternatives --config php
8 检查php版本
php -v
9 删除php
删除所有php包
sudo apt-get --purge autoremove php*
关注我获取更多资讯

