我正在设置 VPS,并按照本教程中有关 WordPress 的 nginx、PHP、MySQL 说明进行操作http://tutspundit.com/howto-install-nginx-php-fpm-mysql-php533-wordpress-ubuntu-part-1/进而http://tutspundit.com/how-to-install-nginx-php-fpm-mysql-php533-wordpress-part-2/
问题是 php 文件在浏览器中返回 php 代码本身,而不对其进行解析。那么我错过了什么?
更新:正在启动php-fpm
或nginx
运行正常。我认为根本nginx
没有意识到php-fpm
,也许缺少某些链接?我检查了 nginx 错误日志,但没有与 PHP 相关的内容。我似乎无法弄清楚缺少了什么。
答案1
事实证明,没有编辑默认配置文件来代理 PHP 请求是一个愚蠢的错误。
server {
listen 80;
server_name domain.in;
access_log /home/ashfame/www/domain.in/logs/access.log;
error_log /home/ashfame/www/domain.in/logs/error.log;
location / {
root /home/ashfame/www/domain.in/public_html;
index index.html index.php;
}
location ~ \.php$ {
include /etc/nginx/fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /home/ashfame/www/domain.in/public_html$fastcgi_script_name;
}
}
答案2
检查:
- 更改配置后,您是否重新加载了 nginx?您可以使用 来执行此操作
sudo service nginx reload
。 - Nginx 设置了导致浏览器缓存页面的标头。按 Ctrl + F5(Firefox)确保您没有看到 PHP 页面的缓存版本。或者,使用 curl 或 wget 来验证问题不是由您的浏览器引起的。您最好遵循在 nginx 上安装 php-fpm 的官方来源。
答案3
location ~ [^/]\.php(/|$) {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
}
这将解析 URI 中的所有 .php 文件,以及以“/”开头或结尾的路径。