我在Linux REHL机器上设置了一个Nginx php服务器。 当访问html文件一切顺利,但尝试访问php文件时,文件被下载而不是被执行。
这是我的nginx.conf:
user nginx;
worker_processes 1;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
include /etc/nginx/conf.d/*.conf;
}
...这是服务器块:
server {
listen 80;
server_name {mywebsitename};
#access_log logs/host.access.log main;
location / {
root /usr/share/nginx/html/{mywebsitename}/;
}
location /ngx_status_2462 {
stub_status on;
access_log off;
allow all;
}
location ~ \.php$ {
# fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/share/nginx/html/{mywebsitename}$fastcgi_script_name;
include fastcgi_params;
}
error_page 404 /404.html;
location = /404.html {
root /usr/share/nginx/html;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
答案 0 :(得分:8)
可能是因为您发送的mimetype:
default_type application/octet-stream;
答案 1 :(得分:7)
我刚才遇到了同样的问题。我正在使用Ubuntu 12.04和Linux Mint 14这么不同的操作系统,但可能会遇到同样的问题。
可能会发生一些问题。首先,您需要安装php5-fpm(FastCGI Process Manager)。我试图用我的标准版本的PHP运行它,但它不起作用 - http://www.php.net/manual/en/install.fpm.php
我也安装了Apache,即使它没有运行,也一定有冲突,因为一旦我卸载了Apache,我就能执行PHP文件。
我也会看这一行
fastcgi_pass 127.0.0.1:9000;
并考虑将其更改为
fastcgi_pass unix:/var/run/php5-fpm.sock;
以下是为RHEL(以及其他操作系统)安装Nginx和PHP5-FPM的详细指南
http://www.if-not-true-then-false.com/2011/install-nginx-php-fpm-on-fedora-centos-red-hat-rhel/
答案 2 :(得分:1)
您需要在此文件中将用户更改为nginx而不是apache / etc / php-fpm.d / www.conf
; Unix user/group of processes
; Note: The user is mandatory. If the group is not set, the default user's group
; will be used.
; RPM: apache Choosed to be able to access some dir as httpd
;user = apache
user = nginx
; RPM: Keep a group allowed to write in log dir.
;group = apache
group = nginx
当然重启服务php-fpm restart和service nginx restart
答案 3 :(得分:0)
评论default_type application/octet-stream;