Настройка nginx(построена из исходного кода) с помощью php5-fpm
Так что я новичок в nginx. В Ubuntu я установил nginx, используя "sudo apt-get install nginx", затем установил php5-fpm sudo apt get install php5-fpm
, Я следовал за шагами в: https://www.digitalocean.com/community/tutorials/how-to-install-linux-nginx-mysql-php-lemp-stack-on-ubuntu-12-04 и заставил nginx работать хорошо с php5-fpm
,
Это соответствующий раздел из моего файла конфигурации nginx для включения прокси fastCGI.
location ~ \.php$ {
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
Это прекрасно работает, и php-файлы работают так, как они должны.
Затем я скачал nginx-1.7.3.tar.gz и собрал if from source:
--configure --prefix=/usr/local/nginx-1.7.3 make sudo make install
Так что сейчас у меня будет две установки nginx. Первый, использующий apt-get install nginx
и этот, который был построен из источника. Я могу управлять каждым по-разному sudo service nginx start
управляет apt-get install version
а также sudo /usr/local/nginx-1.7.3/sbin/nginx
запускает версию, созданную из исходного кода.
Чтобы включить прокси fastCGI для "встроенной исходной" версии, я подумал, что это то же самое, что и первая установка nginx, поэтому блок расположения файла nginx.conf для быстрого прокси cgi идентичен первому.
НО
Версия, созданная из исходного кода, похоже, не взаимодействует с php5-fpm
так я получаю ошибку:
Произошла ошибка
Извините, страница, которую вы ищете, в данный момент недоступна. Пожалуйста, попробуйте позже.
И журнал ошибок для nginx гласит: 2014/08/03 01:31:24 [crit] 8566#0: *1 connect() to unix:/var/run/php5-fpm.sock failed (13: Permission denied) while connecting to upstream, client: 127.0.0.1, server: localhost, request: "GET /test.php HTTP/1.1", upstream: "fastcgi://unix:/var/run/php5-fpm.sock:", host: "localhost"
Из-за недостатка знаний я подозреваю, что я делаю что-то действительно глупое, но я не могу этого понять. Почему версия "построена из исходного кода" выдает эту ошибку при попытке подключиться к файлам, заканчивающимся на.php?
2 ответа
Как указал Женек, у вас, скорее всего, есть проблема с владельцем / разрешениями для вашего файла сокетов (/var/run/php5-fpm.sock).
В вашем fpm-config (например, /etc/php5/fpm/pool.d/www.conf) попробуйте следующее:
listen.owner = www-data
listen.group = www-data
listen.mode = 0660
ЗАДАЧА РЕШЕНА:
мой /etc/nginx/nginx.conf
которая является конфигурацией для nginx, загруженной с sudo apt-get install nginx
пользователь установил как user www-data;
так что он может общаться с php5-fpm
в то время как nginx-1.7.3 построен из источника, расположенного в /usr/local/nginx-1.7.3/conf/nginx.conf
пользователь настроен на user nobody;
,
Путем изменения user nobody;
в user www-data;
он начал общаться с php-fpm.