LINUX.ORG.RU

phpMyAdmin

 , ,


0

1

Доброго времени суток.
Не могу поднять phpMyAdmin - nginx'ом.
Выдает при заходе на домен/phpmyadmin - 404 ошибку
Как правильно поставить?
Заранее спасибо.

Ответ на: комментарий от dvrts

Логи nginx:

2016/02/24 05:12:58 [crit] 8324#0: *1 connect() to unix:/var/run/php5-fpm.sock failed (2: No such file or directory) while connecting to upstream, client: 185.44.239.11, server: _, request: "GET /phpmyadmin/ HTTP/1.1", upstre$
2016/02/24 05:12:58 [error] 8324#0: *1 open() "/usr/share/nginx/html/50x.html" failed (2: No such file or directory), client: 185.44.239.11, server: _, request: "GET /phpmyadmin/ HTTP/1.1", upstream: "fastcgi://unix:/var/run/$

Конфиг nginx:
gist

continue ()

Покажите вывод файла /etc/php/fpm-php{YOUR_VERSTION}/php-fpm.conf. В нем точно слушается то что нужно? Т.е.:

listen = /var/run/php5-fpm.sock

znenyegvkby ()
Ответ на: комментарий от continue

Значит у php-fpm нет прав для создания файла. Иначе он бы его создал. Для этого есть опция

listen.mode = 0666;
Только нужно чтобы user и group указанный в конфиге, имели на это права.
Лучше покажите всю конфигурацию php-fpm, пожалуйста.

znenyegvkby ()
Ответ на: комментарий от znenyegvkby

Ой блин, сори. Прав 660, конечно же более чем достаточно. За 666 меня сейчас предадут здесь анафеме :)

znenyegvkby ()
Ответ на: комментарий от continue
include=/etc/php-fpm.d/*.conf

А там что? Пользователя и группу то я не вижу. Смотрите что указано в user и group в подключаемых конфигах и делайте так

listen.owner = YOUR_USER
listen.group = YOUR_GROUP
listen.mode = 0660
И не забудьте перезапустить php-fpm после этого :)

znenyegvkby ()
Ответ на: комментарий от znenyegvkby

Нашел его на SO. Пробуйте, все должно работать. В ответе также прилагается ссылка на этот баг. Серьезная дыра как для 2014 была :) http://stackoverflow.com/questions/23443398/nginx-error-connect-to-php5-fpm-sock-failed-13-permission-denied/23487409#23487409

znenyegvkby ()
Ответ на: комментарий от continue

Конфиг

Так, стоп. А до этого какой конфиг вы мне скидывали?! Вы же изначально хотели через сокет

listen = /var/run/php5-fpm.sock
А сейчас у вас уже прослушка на простом tcp порту стоит
listen = 127.0.0.1:9000 
Или tcp порт на прослушку стоит уже в каком то подключаемом файле из директории /etc/php-fpm.d? Если да, то тогда выберете уже что-нибудь одно, и установите. Лучше удалите все эти listen из основного файла, и создайте в директории /etc/php-fpm.d файл web.conf, например, куда и складывайте все web-параметры.
По поводу

Failed to restart php5-fpm.service: Unit php5-fpm.service failed to load: No such file or directory.

Не страшно, я если честно нуб в centOS. Попробуйте service php-fpm restart просто, без указания версии (5).

znenyegvkby ()
Ответ на: комментарий от continue

И с этим тоже не ясно. На listen.* вешаете www-data, а юзаете от юзера apache, вас это не смущает? :)

listen.owner = www-data
listen.group = www-data
listen.mode = 0660
; Unix user/group of processes
; Note: The user is mandatory. If the group is not set, the default user's group
;       will be used.
; RPM: apache Choosed to be able to access some dir as httpd
user = apache
; RPM: Keep a group allowed to write in log dir.
group = apache

znenyegvkby ()
Ответ на: комментарий от continue

Вот какой должен быть файл для вас, если хотите через сокеты и работать от пользователя apache. Создать файл web.conf, положить в директорию /etc/php-fpm.d/
Важно, все используемые в файле параметры (listen/user/etc удалить/закомментить во всех файлах конфигураций (для вас это php-fpm.conf + все .conf файлы в /etc/php-fpm.d/)
Делал для вашего юзера (apache)

    user = apache
    group = apache
    listen = /var/run/php5-fpm.sock
    listen.owner = apache
    listen.group = apache
    listen.mode = 0660
После этого сделать рестарт для php-fpm (загуглить как делать рестарт на centOS).

znenyegvkby ()
Ответ на: комментарий от continue

А, ну вот удалите/закомментируйте все user/group/listen/listen.owner/listen.group/listen.mode параметры из этих трех файлов. После этого создайте файл назовите_как_хотите.conf в /etc/php-fpm.d/ с содержимым из моего последнего ответа, и рестарните php-fpm. Вот возможные варианты рестарта :)

znenyegvkby ()
Ответ на: комментарий от continue

Feb 24 22:22:20 localhost.localnet php-fpm[10759]: [24-Feb-2016 22:22:20] ERROR: [/etc/php-fpm.d/web.conf:1] unknown entry 'user'

Да, сори я блок второпях забыл в начале поставить :) Вот целиком

[web]
    user = apache
    group = apache
    listen = /var/run/php5-fpm.sock
    listen.owner = apache
    listen.group = apache
    listen.mode = 0660
После этого еще раз рестарт.

znenyegvkby ()
Ответ на: комментарий от znenyegvkby

Только лучше блок по имени пользователя назовите, чтобы не путаться потом, если еще будете создавать. То есть

[apache]
   ...

znenyegvkby ()
Ответ на: комментарий от continue

Feb 24 22:41:05 localhost.localnet php-fpm[10886]: [24-Feb-2016 22:41:05] ALERT: [pool web] the process manager is missing (static, dynamic or ondemand)

Ешкин-макарешкин. Вы когда удаляли из других .conf файлов параметры, и pm-параметр зацепили? :) Добавьте в этот же файл

pm = dynamic
Вроде dynamic, ЕМНИП идет по умолчанию, но можете использовать ondemand/static - как хотите.

znenyegvkby ()
Ответ на: комментарий от znenyegvkby

И предвосхищая ваши последующие ошибки (может быть вы еще что-либо удалили из .conf файлов окромя process manager параметров):

  1. Откатываете все файлы назад
  2. Создаете директорию в /etc/php-fpm.d/, называете, например - test.d
  3. Файл web.conf переносите (mv), не копируете! (cp) в созданную директорию
  4. В конце главного конфигурационного файла php-fpm.conf в самом конце отдельно подключаете web.conf - include=/etc/php-fpm.d/test.d/*.conf
znenyegvkby ()
Ответ на: комментарий от continue

Из документации PHP:

Выбор того, как менеджер процессов будет контролировать создание дочерних процессов. Возможные значения: static, ondemand, dynamic. Этот параметр является обязательным.

static - фиксированное число дочерних процессов (pm.max_children).

ondemand - число процессов, порождающихся по требованию (когда появляются запросы, в отличии от опции dynamic, когда стартует определенное количество процессов, равное pm.start_servers, вместе с запуском службы.

dynamic - динамически изменяющееся число дочерних процессов, задается на основании следующих директив: pm.max_children, pm.start_servers, pm.min_spare_servers, pm.max_spare_servers.

znenyegvkby ()
Ответ на: комментарий от znenyegvkby

Вроде все сделал, но:

Feb 24 23:07:18 localhost.localnet php-fpm[11228]: [24-Feb-2016 23:07:18] ALERT: [pool www] user has not been defined
Feb 24 23:07:18 localhost.localnet php-fpm[11228]: [24-Feb-2016 23:07:18] ERROR: failed to post process the configuration
Feb 24 23:07:18 localhost.localnet php-fpm[11228]: [24-Feb-2016 23:07:18] ERROR: FPM initialization failed
Feb 24 23:07:18 localhost.localnet systemd[1]: php-fpm.service: main process exited, code=exited, status=78/n/a
Feb 24 23:07:18 localhost.localnet systemd[1]: Failed to start The PHP FastCGI Process Manager.

continue ()
Ответ на: комментарий от continue

Feb 24 23:07:18 localhost.localnet php-fpm[11228]: [24-Feb-2016 23:07:18] ALERT: [pool www] user has not been defined

Эх. Блок www где находится? Правильно, в вашем файле etc/php-fpm.d/ww_w.conf, что вы уже скидывали. Там у вас стоит пользователь apache, все верно? Что это за пользователь apache и почему вы вообще от него запускаете? Ему позволено выполнять root-действия от sudo? Если user has not been defined, то либо пользователя нет вообще, либо он не в root-группе. Одно из двух. Почему вы не стартуете от стандартного пользователя www-data? Все равно у вас мастер-процесс будет от root'а, а все дочерние от указанного пользователя. Стартуйте от www-data (группа та же), тем паче что у вас и nginx от него пашет
https://gist.github.com/KennyDalglish/74c44a4b3e7c34e0cf28

znenyegvkby ()
Ответ на: комментарий от znenyegvkby

И в файле что создавали (если будете подключать), тоже запилите пользователя web-data вместо apache. Я конечно не работал с centOS, но не думаю что там совершенно другие дебри. У меня на всех debian-way в /etc/passwd пользователь web-data есть, web - есть, но никаких apache сроду не было :) Вот мне и интересно, откуда вы этого пользователя вообще взяли? :)

znenyegvkby ()
Ответ на: комментарий от continue

Да, и если созданный файл web.conf подключаете, там тоже все user/group/listen.owner/listen/group тоже на www-data не забудьте. После этого перезапускайте php-fpm.

znenyegvkby ()
Ответ на: комментарий от znenyegvkby
[root@localhost php-fpm.d]# cat /etc/php-fpm.d/test.d/web.conf 
[web]
    user = www-data
    group = www-data
    listen = /var/run/php5-fpm.sock
    listen.owner = www-data
    listen.group = www-data
    listen.mode = 0660
-- Unit php-fpm.service has begun starting up.
Feb 25 00:01:22 localhost.localnet php-fpm[12030]: [25-Feb-2016 00:01:22] ALERT: [pool www] no listen address have been defined!
Feb 25 00:01:22 localhost.localnet php-fpm[12030]: [25-Feb-2016 00:01:22] ERROR: failed to post process the configuration
Feb 25 00:01:22 localhost.localnet php-fpm[12030]: [25-Feb-2016 00:01:22] ERROR: FPM initialization failed
Feb 25 00:01:22 localhost.localnet systemd[1]: php-fpm.service: main process exited, code=exited, status=78/n/a
Feb 25 00:01:22 localhost.localnet systemd[1]: Failed to start The PHP FastCGI Process Manager.
-- Subject: Unit php-fpm.service has failed

continue ()
Ответ на: комментарий от continue

Так, с www блокм решил, теперь с web:

Feb 25 00:02:55 localhost.localnet php-fpm[12139]: [25-Feb-2016 00:02:55] ALERT: [pool web] the process manager is missing (static, dynamic or ondemand)
Feb 25 00:02:55 localhost.localnet php-fpm[12139]: [25-Feb-2016 00:02:55] ERROR: failed to post process the configuration
Feb 25 00:02:55 localhost.localnet php-fpm[12139]: [25-Feb-2016 00:02:55] ERROR: FPM initialization failed
Feb 25 00:02:55 localhost.localnet systemd[1]: php-fpm.service: main process exited, code=exited, status=78/n/a
Feb 25 00:02:55 localhost.localnet systemd[1]: Failed to start The PHP FastCGI Process Manager.

continue ()
Ответ на: комментарий от continue

Я думаю вы решили тем, что раскомментировали listen параметр? У вас же там прослушка на tcp порту висит (127.0.0.1:9000). Так вам все-таки без разницы что использовать и на сокет по-барабану? Тогда удалите вообще web.conf который создали, ну и в конфиге nginx'а не забудьте поменять

fastcgi_pass 127.0.0.1:9000;
тогда уж.

znenyegvkby ()
Ответ на: комментарий от znenyegvkby

Все с web решил - проблему. Теперь вот такая беда с настройками nginx:

2016/02/25 00:10:30 [crit] 12494#0: *1 connect() to unix:/tmp/wwwpool.sock failed (2: No such file or directory) while connecting to upstream, client: my_ip, server: , request: "GET /test.php HTTP/1.1", upstream: "fas$

continue ()
Ответ на: комментарий от continue

*1 connect() to unix:/tmp/wwwpool.sock

Ну да, приехали. Вам обязательно нужен сокет сейчас? Может вы поставите простой tcp порт? Я выше написал - в конфиге nginx

fastcgi_pass 127.0.0.1:9000;
В вашем файле php-fpm.conf ведь listen=127.0.0.1:9000. И усе.
Если все-таки нужен сокет - в nginx конфиге что-нибудь меняли? Откуда unix:/tmp/wwwpool.sock это взялось?

znenyegvkby ()
Ответ на: комментарий от znenyegvkby

А у Вас есть другие мысли по этому поводу?
Ибо если listen в http://www.conf - не указан, будут идти ошибки:

Feb 25 00:16:57 localhost.localnet php-fpm[12576]: [25-Feb-2016 00:16:57] ALERT: [pool www] no listen address have been defined!
Feb 25 00:16:57 localhost.localnet php-fpm[12576]: [25-Feb-2016 00:16:57] ERROR: failed to post process the configuration
Feb 25 00:16:57 localhost.localnet php-fpm[12576]: [25-Feb-2016 00:16:57] ERROR: FPM initialization failed
Feb 25 00:16:57 localhost.localnet systemd[1]: php-fpm.service: main process exited, code=exited, status=78/n/a
Feb 25 00:16:57 localhost.localnet systemd[1]: Failed to start The PHP FastCGI Process Manager.

continue ()
Ответ на: комментарий от continue

Конечно будут ошибки. Что он слушать то должен? :D
Поставьте вы уже простой tcp порт. Еще раз:

  • Забудьте про web.conf удалите все это к фигам собачьим.
  • В http://www.conf расскоментируйте строку listen, пусть там стоит 127.0.0.1:9000
  • В конфиге nginx так же - fastcgi_pass 127.0.0.1:9000;
znenyegvkby ()
Ответ на: комментарий от continue

Видите там для debian дистрибутива. А вы просто команды копируете от туда, как я понял.
P.S.: мельком пробежал статью, увидел откуда вы это все берете :)

;listen = 127.0.0.1:9000
listen = /tmp/wwwpool.sock

znenyegvkby ()
Ответ на: комментарий от continue

Просто сделайте прослушку через tcp порт, и проблем не будет. Вы копируете команды, а мне очень сложно объяснить вам что делает каждый конкретный параметр в той или иной конфиге или каждая конкретная команда.

znenyegvkby ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.