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

Получение 502 плохого шлюза после обновления php до 5.5

На моем сервере ubuntu 12.10 я обновил php до 5.5. Получив 502 ошибки на моем сайте wordpress, я немного погуглил и обнаружил, что мне нужно изменить мои конфигурации nginx, чтобы они соответствовали передаче скриптов php в php5-fpm.sock а не порт 9000. Поэтому я изменил конфигурационный файл своего сайта на следующий:

 # Pass PHP scripts on to PHP-FPM
    location ~* \.php$ {
        try_files       $uri /index.php;
        fastcgi_index   index.php;
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        include         fastcgi_params;
        fastcgi_param   SCRIPT_FILENAME    $document_root$fastcgi_script_name;
        fastcgi_param   SCRIPT_NAME        $fastcgi_script_name;
        fastcgi_buffer_size 16k;
        fastcgi_buffers 4 16k;
    }

Я тогда сделал service nginx restart. Но ошибка 502 сохраняется.

После проверки журнала ошибок я получаю:

2014/03/30 14:16:37 [error] 1451#0: *21 connect() failed (111: Connection refused) while connecting to upstream, client: 81.107.86.251,, server: www.harryg.me, request: "GET / HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "harryg.me"

Итак, похоже, что php-fpm пытается передать материал в fastcgi://127.0.0.1:9000. Почему он не подчиняется изменению файла конфигурации?

редактировать:

Мой /etc/php5/fpm/pool.d/www.conf имеет listen = /var/run/php5-fpm.sock в этом.

У меня тоже была эта проблема, и я решил ее с помощью TCP-соединений. Цитируя этот ответ Ошибка 502 в nginx + php5-fpm (найдено по ссылке с сайта данмаш):

Проблема в самом сокете, его проблемы на высоких нагрузках хорошо известны. Пожалуйста, подумайте об использовании TCP \ IP-соединения вместо unix-сокета, для этого вам необходимо внести следующие изменения:

  • в конфигурации пула php-fpm заменить listen = /var/run/php5-fpm.sock с участием listen = 127.0.0.1:7777
  • в / etc / nginx / php_location заменить fastcgi_pass unix:/var/run/php5-fpm.sock; с участием fastcgi_pass 127.0.0.1:7777;

В вашем случае это было бы 127.0.0.1:9000.

Ошибка Nginx 502 означает, что прокси-сервер не работает или не вернул какие-либо данные или действительные данные. Убедитесь, что сам код без nginx или прокси работает нормально. Для получения подробных объяснений проверьте журнал nginx и php по запросу.