我在Windows 7(64位)上运行,PHP 5.4.12和Nginx 1.5.8。
我已经阅读了许多关于设置这个问题的教程,并解决了这个问题,即从我的localhost请求PHP文件时,它将其作为文件下载而不是显示PHP页面。下面是我的nginx.conf文件:
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
server {
listen 8081;
server_name localhost;
access_log C:/nginx/logs/access.log;
error_log C:/nginx/logs/error.log;
root C:/nginx/html;
fastcgi_param REDIRECT_STATUS 200;
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
}
我正在通过命令提示符手动运行nginx.exe。 我还尝试首先在单独的命令提示符下手动启动php-cgi.exe,如下所示:
C:\php5.4.12\php-cgi.exe -b 127.0.0.1:9000
我要求的php文件位于C:/ nginx / html中,我正在请求它:
http://localhost:8081/info.php
然后下载它。这个PHP文件的内容是:
<?php
phpinfo();
?>
如何让我的PHP脚本在此环境中运行。有人有这方面的经验吗?
答案 0 :(得分:3)
尝试将default_type application/octet-stream;
更改为default_type text/html;
也许你的php脚本没有设置内容MIME类型,它来自nginx。
答案 1 :(得分:0)
尝试放置&#34; *&#34;这里
location ~* \.php$ {
你的路径有问题,而且nginx不知道通过URL访问的路径是它应该通过的路径&#34; fastcgi_pass&#34;。因此,它提供了下载文件。
从以下位置检查错误日志:
C:/nginx/logs/error.log;
你有&#34; C:/nginx/html/info.php;&#34;?
答案 2 :(得分:0)
我发现,如果您对服务器上的端口80使用了http2
指令。
http2
仅在https
下有效。因此,如果您删除http2
,它应该可以解决您的问题。