Я установил сервер nginx и php-fpm в системе CentOS 6 (размещенной в Amazon EC2), выполнив следующие инструкции:
http://emka.web.id/linux/centos-linux/2011/installing-nginx-with-php-and-php-fpm/
Статический html (index.html) загружается, когда я перехожу к своему общедоступному DNS, предоставленному Amazon, поэтому nginx работает, но когда я пытаюсь загрузить страницу php в том же каталоге, что и index.php или hello.php, возникает ошибка На странице отображается следующее сообщение: «Страница, которую вы ищете, временно недоступна. Повторите попытку позже». Когда я запускаю php-fpm без параметров и снова пытаюсь загрузить страницу php, эта страница мне не отправляется, а отображается текстовое сообщение: «Входной файл не указан».
Каталог по умолчанию, в котором находятся файлы, - / usr / share / nginx / html.
Я думаю, что что-то не так с моей конфигурацией, но я не знаю, есть ли это в файлах конфигурации php или nginx. Несколько строк в /etc/nginx/nginx.conf, которые я считаю наиболее актуальными:
#
# The default server
#
server {
listen 80;
server_name _;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
error_page 404 /404.html;
location = /404.html {
root /usr/share/nginx/html;
}
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
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;
}
Между прочим, все операции установки и «nginx start» и «php-fpm» были выполнены пользователем root, потому что я могу получить доступ только через SSH с этим суперпользователем. Я не знаю, это связано с моей проблемой, но я знаю, что с sudo рекомендуется использовать обычного пользователя.
Может быть, попробуйте указать полный путь в вашем fastcgi_param (вот как я это сделал): SCRIPT_FILENAME / var / www / scripts / $ fastcgi_script_name
Кроме того, что находится в журналах php-fpm и nginx? Не могли бы вы добавить определение пула fpm?
root
в location /
и location ~
\.php$
SCRIPT_FILENAME
."Не указан входной файл" означает, что PHP не может найти файл, который Nginx предлагает ему искать. Итак, определим SCRIPT_FILENAME
в fastcgi_params
:
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
(или включить fastcgi.conf
вместо)
и измените местоположение PHP на что-то вроде этого:
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
include fastcgi_params;
}
это будет работать.