Ubuntu 上 PHP 配置“失败”是一个比较笼统的问题,通常不是 PHP 本身坏了,而是某个环节(安装、模块、Web 服务器、权限、配置语法)出问题了。下面我按最常见原因 → 排查方法 → 解决方式给你系统梳理一遍。
请对照一下,你属于哪种情况:
php -v 报错:command not found.php 文件upload_max_filesize 没变化Call to undefined functionsystemctl restart apache2/nginx 报错php -v
如果没装:
sudo apt update
sudo apt install php
如果你用的是 Apache:
sudo apt install libapache2-mod-php
如果你用的是 Nginx:
sudo apt install php-fpm
✅ 检查:
php -v
info.php 显示源码sudo a2enmod php
sudo systemctl restart apache2
确认:
ls /etc/apache2/mods-enabled | grep php
location ~ \.php$ {
# 缺少 fastcgi 配置
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php-fpm.sock;
}
然后:
sudo systemctl restart nginx php-fpm
php --ini
CLI 和 Web 用的 不是同一个文件
/etc/php/X.X/cli/php.ini/etc/php/X.X/apache2/php.ini/etc/php/X.X/fpm/php.ini✅ 改完必须重启:
sudo systemctl restart apache2
# 或
sudo systemctl restart php-fpm
php -m | grep 扩展名
安装示例:
sudo apt install php-mysql
sudo systemctl restart apache2
sudo chown -R www-data:www-data /var/www/html
sudo chmod -R 755 /var/www/html
sudo apachectl configtest
sudo nginx -t
php -v
php --ini
systemctl status apache2
systemctl status php-fpm
你可以直接贴出:
lsb_release -a)我可以直接告诉你哪一行配置错了、怎么改。