ubuntu 20.04 默认不提供 php 8.1,需添加 ondřej surý 的 ppa 源(ppa:ondrej/php)后安装 php8.1 及 libapache2-mod-php8.1,并通过 a2enmod/a2dismod 启用新模块、禁用旧模块,再重启 apache 并验证 phpinfo() 输出。

Ubuntu 20.04 默认源中不包含 PHP 8.1,需添加第三方 PPA 源后安装,并确保 Apache 正确加载对应模块。关键不是只装 PHP,而是让 Apache 知道用哪个版本的 PHP 解析 .php 文件。
安装 PHP 8.1 及 Apache 模块
Ubuntu 20.04 官方仓库只提供 PHP 7.4 和部分 8.0,PHP 8.1 需通过 Ondřej Surý 的 PPA 获取:
- 执行以下命令添加源并更新:
sudo apt install software-properties-common -y
sodu add-apt-repository ppa:ondrej/php
sudo apt update
sudo apt install php8.1 libapache2-mod-php8.1 -y
- 该模块会自动注册 PHP 处理器,并在
/etc/apache2/mods-available/下生成php8.1.load和php8.1.conf
启用 PHP 8.1 模块并禁用旧版本
安装后模块不会自动启用,且若系统曾装过 php7.4 或 php8.0,其模块可能仍处于启用状态,造成冲突:
- 启用 PHP 8.1 模块:
sudo a2enmod php8.1
- 禁用旧版 PHP 模块(如存在):
sudo a2dismod php7.4 php8.0
- 验证是否已加载正确模块:
apache2ctl -M | grep php —— 应输出 php8_module (shared)
确认 Apache 配置支持 .php 后缀
默认配置通常已包含 handler 设置,但需检查 /etc/apache2/mods-enabled/php8.1.conf 是否存在且内容合理:
- 该文件应包含类似以下内容(无需手动修改,除非被误删):
SetHandler application/x-httpd-php
- 同时确认
/etc/apache2/mods-enabled/dir.conf中index.php在DirectoryIndex列表靠前位置,例如:
DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm
重启服务并测试
所有配置就绪后,必须重启 Apache 才能生效:
- 重启命令:
sudo systemctl restart apache2
- 创建测试文件验证:
echo "" | sudo tee /var/www/html/info.php
- 浏览器访问
http://你的IP/info.php,若显示 PHP 8.1 的信息页,说明解析成功 - 若页面空白、下载 .php 文件或报 500 错误,请立即查看日志:
sudo tail -n 20 /var/log/apache2/error.log
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











