Назад | Перейти на главную страницу

Как заставить PHP 5.3.3 работать с Nginx на CentOS 5.5?

Я установил Engine X и PHP 5.3.3 из исходников на сервер CentOS 5.5. Я думаю, что с момента установки все прошло хорошо, и Engine X нормально обслуживает статические файлы.

Однако при попытке доступа к базовому файлу php он обслуживает код php как простой текст.


Журнал ошибок Engine X показывает:

2010/09/23 20:49:35 [error] 3331#0: *6 connect() failed (111: Connection refused) while
connecting to upstream, client: my.local.ip, server: the_server,
request: "GET / HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000",
host: "the.servers.ip"



И мой файл конфигурации гласит:

server {
   listen *:80;

   location ~ \.php$
   {
       fastcgi_pass 127.0.0.1:9000;
       fastcgi_param SCRIPT_FILENAME /var/www/default$fastcgi_script_name;
       fastcgi_param PATH_INFO $fastcgi_script_name;
       include /usr/local/nginx/conf/fastcgi_params;
   }
}
  1. Убедитесь, что php-fpm запущен (ps auxw | grep php или любым другим способом)
  2. Убедитесь, что php-fpm действительно прослушивает 9000. (проверьте конфигурации)
  3. Убедитесь, что ваш программный брандмауэр не блокирует петлевые соединения на 9000.

Я не любитель nginx, но сообщение об ошибке довольно ясное: никто не отвечает на телефонный звонок по адресу 127.0.0.1:9000

Понял! Очевидно, в этой версии по умолчанию отключена поддержка коротких тегов. Итак, NginX передавал его правильно, но PHP игнорировал короткие теги PHP и отправлял их обратно без обработки.