要在 Nginx 中运行 PHP,你需要配置 Nginx 与 PHP 处理器(通常是 PHP-FPM)协同工作。以下是完整的配置步骤:
首先确保已安装 Nginx 和 PHP-FPM:
# Ubuntu/Debian
sudo apt update
sudo apt install nginx php-fpm php-cli php-mysql php-curl php-gd php-mbstring php-xml php-xmlrpc
# CentOS/RHEL
sudo yum install epel-release
sudo yum install nginx php-fpm php-cli php-mysql php-curl php-gd php-mbstring php-xml php-xmlrpc
编辑 PHP-FPM 配置文件(通常位于 /etc/php/{version}/fpm/pool.d/www.conf
):
listen = /run/php/php-fpm.sock
listen.owner = www-data
listen.group = www-data
listen.mode = 0660
user = www-data
group = www-data
然后重启 PHP-FPM:
sudo systemctl restart php-fpm
编辑 Nginx 站点配置文件(通常在 /etc/nginx/sites-available/your-site
):
server {
listen 80;
server_name yourdomain.com;
root /var/www/html;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
}
测试 Nginx 配置:
sudo nginx -t
如果没有错误,重启 Nginx:
sudo systemctl restart nginx
在网站根目录创建测试 PHP 文件:
echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php
然后访问 http://yourdomain.com/info.php
查看 PHP 信息页面。
502 Bad Gateway 错误:
systemctl status php-fpm
/run/php/php-fpm.sock
)PHP 文件被下载而不是执行:
.php
文件fastcgi_pass
指令是否正确权限问题:
www-data
用户需要读写权限)通过以上步骤,你应该能够成功在 Nginx 中运行 PHP 程序。