我正在使用以下配置设置,但它正在执行时下载索引源文件。但它显示的是index.html的输出,如果它被放入而不是index.php
总的来说,它似乎没有读取php文件。
server {
server_name test.com;
root /var/www/test;
index index.html index.php;
# serve static files directly
location ~* \.(jpg|jpeg|gif|css|png|js|ico|html)$ {
access_log off;
expires max;
}
location / {
# Check if a file or directory index file exists, else route it to index.php.
try_files $uri $uri/ /index.php;
}
location ~ /\.ht {
deny all;
}
}
答案 0 :(得分:1)
您必须设置PHP-FPM或fastcgi,否则您将获得普通文件:
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME /var/www/test/index.php;
fastcgi_param PATH_INFO $fastcgi_script_name;
fastcgi_pass_header Host;
fastcgi_pass_header X-Real-IP;
include /etc/nginx/fastcgi_params;
PHP-FPM应该在端口9000中运行
答案 1 :(得分:1)
这是我的基本虚拟主机文件
server {
server_name example.com www.example.com;
root /path/to/root;
location / {
try_files $uri $uri/ /index.php$request_uri;
}
location ~* \.php$ {
include fastcgi_params;
fastcgi_pass unix://var/run/php5-fpm.sock # if you use sock files
fastcgi_pass http://127.0.0.1:9000; # if you use port 9000
}
}
根据您的网站使用的内容,您需要评论其中一条fastcgi_pass
行。当然,您需要自定义try_files
行以匹配您的php获取路线的方式,如果您使用QUERY_STRING
,例如您可能会执行类似
try_files $uri $uri/ index.php?$request_uri; # mind the extra `?`
如果您收到错误的网关[502]错误,请仔细检查/var/run
目录中sock文件的路径