在 Ubuntu 上正确配置 PHP,通常取决于你是单独用 PHP CLI,还是配合 Nginx / Apache 使用。下面给你一套标准且不容易踩坑的配置思路(以 Ubuntu 20.04 / 22.04 + PHP 8.x 为例)。
sudo apt update
sudo apt upgrade -y
sudo apt install php php-cli php-fpm php-common php-mysql php-curl php-gd php-mbstring php-xml php-zip -y
✅
php-fpm是 Nginx 必备
✅ Apache 用libapache2-mod-php
php --ini
常见路径:
/etc/php/8.1/cli/php.ini/etc/php/8.1/fpm/php.iniupload_max_filesize = 64M
post_max_size = 64M
memory_limit = 256M
max_execution_time = 120
date.timezone = Asia/Shanghai
修改后重启:
sudo systemctl restart php8.1-fpm
sudo apt install nginx
server {
listen 80;
server_name example.com;
root /var/www/html;
index index.php index.html;
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;
}
}
echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php
访问:
http://服务器IP/info.php
sudo apt install apache2 libapache2-mod-php
sudo systemctl restart apache2
无需手动配置 FPM。
sudo chown -R www-data:www-data /var/www/html
sudo chmod -R 755 /var/www/html
| 问题 | 解决 |
|---|---|
| 502 Bad Gateway | php-fpm 没启动或 sock 路径错 |
| 空白页 | 看 error_log |
| 文件上传失败 | 改 upload_max_filesize |
| 时区错误 | 设置 date.timezone |
/etc/php/8.1/
├── cli/php.ini
└── fpm/php.ini
/var/www/html/
run/php/php8.1-fpm.sock
如果你愿意,可以告诉我:
我可以直接帮你写可用的配置文件。