Я потратил часы на то, чтобы понять, как установить Nginx + Ruby Enterprise Edition + PHP5-fpm и MYSQL, наконец, все установлено, и все, кажется, началось нормально.
Но по некоторым причинам php файлы не обрабатываются.
Файлы .html работают нормально, но когда я пытаюсь просмотреть файл .php, он выглядит так, как будто его не существует, хотя он и существует. Интересно, что когда я пытаюсь просмотреть файл .html, который не существует, я получаю хорошее сообщение Nginx 404, но когда я просматриваю файл .php, он даже не дает мне этого.
Так что, насколько я понимаю новичку, похоже, что с конфигурацией либо что-то не так, либо Nginx и PHP-fpm не общаются друг с другом.
Я смотрел на множество других примеров конфигурационных файлов nginx и уверен, что с этим все в порядке. Хорошо ... вот соответствующий бит файла conf в любом случае:
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www/eman/$fastcgi_script_name;
include fastcgi_params;
}
А также
fastcgi_connect_timeout 60;
fastcgi_send_timeout 180;
fastcgi_read_timeout 180;
fastcgi_buffer_size 128k;
fastcgi_buffers 4 256k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;
fastcgi_intercept_errors on;
Любая помощь очень ценится.
edit : вот заголовки, возвращаемые из тестового php-файла " http://eman.id.au/test.php ":
HTTP/1.1 404 Not Found =>
Server => nginx/0.8.54
Date => Thu, 16 Dec 2010 19:30:30 GMT
Content-Type => text/html
Connection => close
X-Powered-By => PHP/5.3.2-1ubuntu4.5ppa5~lucid1
Если вы посмотрите на заголовки, на которые отвечает http://eman.id.au/test.php, то вы увидите
X-Powered-By: PHP/5.3.2-1ubuntu4.5ppa5~lucid1
. Это не показывало бы это, если бы запрос не был передан PHP. Кроме того, если PHP не может найти путь к файлу, переданному ему, он выдаст ошибкуNo input file specified.
Так как ваш сайт выводит заголовок powered by и не содержит
No input file specified.
ошибок, наиболее вероятной причиной является то, что у вас есть ошибка в вашем PHP-скрипте и отключены ошибки отображения. Это приводит к появлению пустой страницы и записи в вашем журнале ошибок, поэтому загляните туда и посмотрите, не заполняется ли она.источник
Пара мыслей:
Нужна ли дополнительная косая черта
В NGINX есть и странная вещь, связанная с кэшированием, поэтому, когда вы пробуете URL в своем браузере, добавьте? Random = 12391 в конец, чтобы вызвать обновление. Я был озадачен в течение 30 минут из-за конфигурации, но обнаружил, что она работает все время, но кэш запутался.
Вы также, вероятно, хотите избежать своего местоположения немного лучше (хотя это не вызывает возникшей у вас проблемы). Лучше попрактикуйтесь:
в
.php $ будет соответствовать запросу типа yourpagephp, а не просто yourpage.php
источник