在 Ubuntu 上配置 PHP 服务,通常是为了配合 Web 服务器(Apache / Nginx) 来运行 PHP。下面我按最常见场景给你一份完整、顺序清晰的配置指南。
sudo apt update
sudo apt upgrade -y
sudo apt install php php-cli php-fpm php-mysql php-curl php-xml php-mbstring php-zip php-gd -y
查看版本:
php -v
PHP-FPM 是 PHP 的服务进程管理器,比 mod_php 更稳定、性能更好。
sudo systemctl start php8.2-fpm
sudo systemctl enable php8.2-fpm
systemctl status php8.2-fpm
/etc/php/8.2/fpm/php.ini # PHP 配置
/etc/php/8.2/fpm/pool.d/www.conf # 进程池配置
sudo apt install nginx -y
编辑站点配置:
sudo nano /etc/nginx/sites-available/default
关键配置:
server {
listen 80;
server_name localhost;
root /var/www/html;
index index.php index.html;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.2-fpm.sock;
}
}
sudo systemctl restart nginx
echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php
浏览器访问:
http://服务器IP/info.php
✅ 看到 PHP 信息页面即成功。
sudo apt install apache2 -y
sudo apt install libapache2-mod-php -y
sudo systemctl restart apache2
sudo nano /var/www/html/info.php
内容:
<?php phpinfo(); ?>
访问:
http://服务器IP/info.php
编辑:
sudo nano /etc/php/8.2/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.2-fpm
sudo ufw allow 80
sudo ufw allow 443
| 问题 | 解决方法 |
|---|---|
| 502 Bad Gateway | Nginx 与 PHP-FPM sock 不匹配 |
| PHP 文件被下载 | Nginx 未正确解析 .php |
| 页面空白 | 查看 /var/log/nginx/error.log |
sudo apt install php php-fpm nginx -y
sudo systemctl enable php8.2-fpm
sudo systemctl restart nginx
如果你告诉我:
我可以给你更精确的配置方案。