我找不到从头开始在Amazon AMI EC2实例上的nginx上设置php-fpm的方法。 我知道这应该不是那么困难,但是根据* nix版本find不同的答案是令人困惑的。
以下是我认为可行的浓缩步骤,但不是。 有没有人有一套步骤,可靠地在Amazon AMI EC2实例中用nginx设置php-fpm?
我从这篇文章中故意排除了nginx.conf等,因为它们是默认yum版本库的“股票”安装。
nginx版本:1.6.2
有没有人有可靠的步骤来设置亚马逊AMI EC2实例的nginx的php-fpm? 我宁愿设置自己,而不是在亚马逊市场上使用AMI来收费。
谢谢
# install packages yum install -y nginx yum install -y php56-fpm.x86_64 # enable php in nginx.conf vi /etc/nginx/nginx.conf # add index.php at the beginning of index index index.php index.html index.htm; # uncomment the php block in nginx.conf location ~ \.php$ { root html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; include fastcgi_params; } # tell php-fpm to run as same account as nginx vi /etc/php-fpm-5.6.d/www.conf - change user and group apache to nginx # allow nginx user to read website files since they are typically owned by root cd /usr/share/nginx chown -R nginx:nginx html # check to see if php works - doesn't with these steps echo "<?php phpinfo(); ?>" > /usr/share/nginx/info.php # restart services since we changed things service nginx restart service php-fpm-5.6 restart # verify root path exists and is owned by nginx as we said above # ls -l /usr/share/nginx/html -rw-r--r-- 1 nginx nginx 3696 Mar 6 03:53 404.html -rw-r--r-- 1 nginx nginx 3738 Mar 6 03:53 50x.html -rw-r--r-- 1 nginx nginx 3770 Mar 6 03:53 index.html -rw-r--r-- 1 nginx nginx 20 Apr 14 14:01 index.php # I also verified php-fpm is listening on port 9000 and nginx is setup that way in the nginx.conf # port 9000 usage is the default and I left it as-is for this question, but I would prefer to use sock once I get this working.
编辑
这是我在nginx错误日志中看到的
2015/04/14 17:08:25 [error] 916#0: *9 FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream, client: 12.34.56.78, server: localhost, request: "GET /index.php HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "12.34.56.90"
你在nginx错误日志(/var/log/nginx/errors.log)中看到了什么?
在附加信息(日志)提供后添加:
对我来说,它看起来根应该是服务器部分而不是位置。
server { ... root /usr/share/nginx/html; ... location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; include fastcgi_params; } }
你的index.php文件在哪里? 如果在这里:
/usr/share/nginx/html/index.php
然后改变这一行
fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
至:
fastcgi_param SCRIPT_FILENAME /usr/share/nginx/html$fastcgi_script_name;