在 Ubuntu 上配置 PHP,通常是为了配合 Apache 或 Nginx 使用。下面我按最常见场景给你一个完整、实用的配置流程(以 Ubuntu 20.04 / 22.04 为例,PHP 8.x)。
sudo apt update
sudo apt install php php-cli php-fpm php-common php-mysql php-curl php-mbstring php-xml php-zip
查看版本:
php -v
/etc/php/8.x/
常见目录结构:
/etc/php/8.x/
├── cli/php.ini # 命令行 PHP
├── fpm/php.ini # PHP-FPM(Nginx 用)
├── apache2/php.ini # Apache 用
编辑配置文件(以 FPM 为例):
sudo nano /etc/php/8.x/fpm/php.ini
推荐修改项:
upload_max_filesize = 64M
post_max_size = 64M
memory_limit = 256M
max_execution_time = 300
date.timezone = Asia/Shanghai
保存后重启:
sudo systemctl restart php8.x-fpm
sudo apt install apache2 libapache2-mod-php
echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php
浏览器访问:
http://服务器IP/info.php
✅ 看到 PHP 信息页面说明成功
sudo apt install nginx php-fpm
sudo nano /etc/php/8.x/fpm/pool.d/www.conf
确认:
listen = /run/php/php8.x-fpm.sock
编辑站点配置:
sudo nano /etc/nginx/sites-available/default
修改 server 段:
server {
listen 80;
server_name your_domain_or_ip;
root /var/www/html;
index index.php index.html;
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.x-fpm.sock;
}
}
sudo systemctl restart nginx
sudo systemctl restart php8.x-fpm
sudo systemctl status php8.x-fpm
sudo systemctl stop php8.x-fpm
sudo systemctl start php8.x-fpm
sudo systemctl restart php8.x-fpm
例如 PHP 7.4:
sudo apt install software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt update
sudo apt install php7.4 php7.4-fpm
✅ 原因:Nginx / Apache 未正确解析 PHP
✅ 检查 PHP-FPM 是否运行、Nginx 配置是否正确
✅ PHP-FPM sock 文件不存在或权限错误
sudo apt update
sudo apt install php php-fpm nginx
sudo nano /etc/php/8.x/fpm/php.ini
sudo systemctl restart php8.x-fpm
sudo systemctl restart nginx
如果你愿意,可以告诉我:
我可以给你一份完全定制化的配置方案。