502 Плохой шлюз Nginx Mac OS X Yosemite php56 php-fpm

Я создавал PHP, MySQL и Nginx на Mac OS X, но я не могу заставить это работать.

Есть идеи, что я делаю не так?

phpinfo работает

/log/nginx/access.log

127.0.0.1 - - [14/Mar/2015:21:21:16 -0500] "GET /wp/wp-admin/install.php HTTP/1.1" 502 574 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2331.4 Safari/537.36"

/log/virtualhost/error.log

2015/03/14 21:21:16 [error] 82682#0: *59 upstream prematurely closed connection while reading response header from upstream, client: 127.0.0.1, server: localhost, request: "GET /wp/wp-admin/install.php HTTP/1.1", upstream: "fastcgi://unix:/usr/local/var/run/php-fpm/php-fpm.sock:", host: "localhost"

/log/php-fpm.log

[14-Mar-2015 21:21:16] WARNING: [pool www] child 6851 exited on signal 11 (SIGSEGV) after 11147.271614 seconds from start
[14-Mar-2015 21:21:16] NOTICE: [pool www] child 82712 started

Мой Nginx conf /usr/local/etc/nginx/nginx.conf

worker_processes  1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    include sites-enabled/*.conf;
}

Конфигурация виртуального сервера Nginx /usr/local/etc/nginx/sites-available/local.conf

server {
  listen                *:80;
  server_name           localhost;
  error_log            /log/virtualhost/error.log;
  root                 /server;
  location / {
    try_files  $uri  $uri/  /index.php?$args;
    index index.php;
  }
  location ~ \.php$ {
    fastcgi_index   index.php;
    fastcgi_pass    unix:/usr/local/var/run/php-fpm/php-fpm.sock;
    include         fastcgi_params;
    fastcgi_param   SCRIPT_FILENAME    $document_root$fastcgi_script_name;
    fastcgi_param   SCRIPT_NAME        $fastcgi_script_name;
  }
}

Мой php-fpm conf /usr/local/etc/php/5.6/php-fpm.conf

; Unix user/group of processes
; Note: The user is mandatory. If the group is not set, the default user's group
;       will be used.
;user = _www
;group = _www
listen = /usr/local/var/run/php-fpm/php-fpm.sock

person Mao8a    schedule 15.03.2015    source источник


Ответы (3)


У меня была эта проблема, и я решил ее перекомпилировать php с разными параметрами:

brew uninstall php56 && brew install php56 --with-debug --without-apache

Кажется, что-то пошло не так с исходной сборкой, может быть, с этими флагами или, может быть, с цепочкой инструментов. Я, кажется, помню, что он жаловался на отсутствие инструментов xcode cli в первый раз, затем установил их и снова запустил сборку. В любом случае, у меня это сработало.

SIGSEGV в вашем журнале FPM означает "ошибка сегментации", что является ошибкой в ​​err .... внутренности PHP, я думаю, а не конфигурация ... Конечно, кто-то более умный может расширить это ;-)

person BaronVonKaneHoffen    schedule 30.03.2015

У меня было много тупиков, пытаясь разобраться в этом. После попытки решения BaronVonKaneHoffen, все еще без бобов. Прочитал в документации Homebrew после переустановки:

OS X 10.8 и новее поставляются с предустановленным php-fpm, чтобы убедиться, что вы используете версию brew, вам нужно убедиться, что / usr / local / sbin находится перед / usr / sbin в вашем PATH:

ПУТЬ = "/ usr / local / sbin: $ ПУТЬ"

Работал OSX родной php-fpm, а не тот, который был запакован из homebrew.

Я отредактировал файл $ PATH, написав сценарий .bash_profile следующим образом:

В терминале:

cd
touch .bash_profile
nano .bash_profile

Затем напишите в файле:

export PATH=/usr/local/sbin:${PATH}

и сохраните.

Перезагрузите и посмотрите, поможет ли это!

person Cliff    schedule 25.07.2015

Я решил эту проблему, причина в том, что у процесса php нет разрешения на запись для пути к файлу сеанса, поэтому решение:

  1. отредактируйте /usr/local/etc/php/5.6/php.ini и предоставьте session.save_path доступный для записи каталог;
  2. / usr / local / opt / php56 / sbin / php56-fpm reload;
person Amom    schedule 16.05.2016