我正在尝试让 nginx 在我的 ubuntu 临时服务器上与 PHP 一起运行。Nginx 本身可以很好地处理静态*.html
文件,但浏览器调用的任何 PHP 文件都会将代码输出为纯文本,这无疑意味着 PHP 无法正常工作。我正在调用http://192.168.1.100/test.php
它输出 /var/www 文件夹中 test.php 的内容。
我尝试过各种解决方案,但本指南作为使 nginx 工作的主要方式,目前它还不支持如上所述的 PHP 文件。
我的/etc/nginx/sites-enabled/default
样子如下:
server {
listen 80; ## listen for ipv4
listen [::]:80 default ipv6only=on; ## listen for ipv6
server_name localhost;
access_log /var/log/nginx/localhost.access.log;
location / {
root /var/www;
index index.html index.htm index.php;
allow all;
}
location ~ .php$ {
fastcgi_pass 127.0.0.1:9000; # By all means use a different server$
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www$fastcgi_script_name; # !! $
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
}
}
运行netstat -plan | grep :9000
输出tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 1352/php5-cgi
,显然 PHP 正在运行。
我做错了什么以及应该做哪些改变才能使其正常工作?
答案1
我不知道哪里出了问题。我将 VPS 重置为全新安装映像,尝试了一个完全不同的教程,http://www.howtoforge.com/installing-nginx-with-php5-and-php-fpm-and-mysql-support-on-ubuntu-10.10-p2,效果非常好!