LinuxREHLマシンにNginxphpサーバーをセットアップします。 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;
}
}
私はこれとまったく同じ問題を抱えていました。私はUbuntu12.04とLinuxMint 14を非常に異なるOSで使用していましたが、同じ問題が発生する可能性があります。
いくつかの問題が発生する可能性があります。まず、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(および他のOS)用のNginxおよびPHP5-FPMのインストールに関する詳細なガイドです。
http://www.if-not-true-then-false.com/2011/install-nginx-php-fpm-on-Fedora-centos-red-hat-rhel/
送信しているmimetypeが原因である可能性があります。
default_type application/octet-stream;
このファイルa/etc/php-fpm.d/www.confで、ユーザーをApacheではなくnginxに変更する必要があります
; 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-fpmrestartとservicenginxrestartを再起動します
コメントアウトdefault_type application/octet-stream;