LINUX.ORG.RU

phpMyAdmin

 , ,


0

1

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

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

...

Unable to open primary script: /var/www/site_archetector/test.php (Permission denied)" while reading response header from upstream, client: 185.44.239.11, server: , request: "GET /test.php HTTP/1.1", upstream: "fastcgi://127.$
2016/02/25 00:29:41 [error] 12701#0: *1 FastCGI sent in stderr: "PHP message: PHP Warning:  Unknown: failed to open stream: Permission denied in Unknown on line 0
Unable to open primary script: /var/www/site_archetector/test.php (Permission denied)" while reading response header from upstream, client: 185.44.239.11, server: , request: "GET /test.php HTTP/1.1", upstream: "fastcgi://127.$
2016/02/25 00:29:45 [error] 12701#0: *1 directory index of "/var/www/site_archetector/" is forbidden, client: 185.44.239.11, server: , request: "GET / HTTP/1.1", host: "91.201.40.26"
2016/02/25 00:29:52 [error] 12701#0: *1 FastCGI sent in stderr: "PHP message: PHP Warning:  Unknown: failed to open stream: Permission denied in Unknown on line 0
Unable to open primary script: /var/www/site_archetector/test.php (Permission denied)" while reading response header from upstream, client: 185.44.239.11, server: , request: "GET /test.php HTTP/1.1", upstream: "fastcgi://127.$

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

Ну вот, уже лучше :) Все работает, только у юзера www-data почему-то нет доступа к var/www/, хотя по логике это должна быть его директория. Показывайте кто владелец директории /var/www/

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

rwx r-x ---

Я совсем не бум-бум в таких правах :) Почему так? Для начала сделайте 755 на директории/подиректории и 644 на все файлы. Т.е.

sudo find /var/www/ -type d -exec chmod 0755 {} \;
sudo find /var/www/ -type f -exec chmod 0644 {} \;
Потом еще раз запусти сайт, и результаты сюда.

znenyegvkby
()
Ответ на: комментарий от znenyegvkby
 [error] 12965#0: *1 FastCGI sent in stde
rr: "PHP message: PHP Warning:  Unknown: failed to open stre
am: Permission denied in Unknown on line 0                  
Unable to open primary script: /var/www/site_archetector/tes
t.php (Permission denied)" while reading response header fro
m upstream, client: 185.44.239.11, server: , request: "GET /
test.php HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", ho
st: "arcontinue.su" 
continue
() автор топика
Ответ на: комментарий от continue

pstream: «fastcgi://127.0.0.1:9000»

Тьфу, я уже сплю за компом, 5 утра как-никак, ничего не вижу :)
Измените и в nginx конфиге, и в http://www.conf порт 9000, на 9001, например. Может быть 9000 уже занят. Не забудьте перезапустить и php-fpm и nginx (service nginx configtest, если все ок - service nginx restart и service php-fpm restart)

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

В www не дает поставить другое значение, пробувал 2 значения. А вот в конфигах nginx поставил, но это не дало искомый результат:

# cat /var/log/nginx/default-error.log                     
2016/02/25 01:24:18 [crit] 13735#0: *1 connect() to 127.0.0.1:9228 failed (13
: Permission denied) while connecting to upstream, client: 185.44.239.11, ser
ver: , request: "GET /test.php HTTP/1.1", upstream: "fastcgi://127.0.0.1:9228
", host: "arcontinue.su"

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

В www не дает

Что значит не дает? listen в /etc/php-fpm.d/w_ww.conf и fastcgi_pass должны совпадать.

/test.php Permission denied

Вы точно изменили права на 755 для всех директории в /var/www/ (включая саму директорию www), и 644 для всех файлов внутри? Если да, то м.б. у нас на centOS какой-нить SELinux или ему подобные стоят?

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

Точно , изменил, ну раз так, то выхлопы:

root@localhost ~]# ls -l /var/www/*                                         
/var/www/htdocs:                                                             
total 0                                                                      
                                                                             
/var/www/site_archetector:                                                   
total 8                                                                      
-rw-r--r--. 1 root     root     3519 Feb 25 00:44 index.html                 
-rw-r--r--. 1 www-data www-data  136 Feb 25 01:56 test.php

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

Что значит не дает? listen в /etc/php-fpm.d/w_ww.conf и fastcgi_pass должны совпадать.

А этот пункт? То что слушает php-fpm и куда ломится nginx у вас совпадает?
И что по поводу SELinux? Если ли подобный софт у вас? Чекните на всякий случай такой командой для nginx'а и отпишите даст что-нибудь или нет

sudo cat /var/log/audit/audit.log | grep nginx | grep denied
И еще такой
sudo cat /var/log/messages | grep nginx | grep denied

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

И еще сделайте сразу

sudo chown -R www-data:www-data /var/www/
А то у вас какие-то файлы принадлежат root'у, какие-то www-data, как-то не комильфо.

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

А если сменить порт в http://www.conf:

-- Unit php-fpm.service has begun starting up.   
Feb 25 07:43:35 localhost.localnet php-fpm[20670]
Feb 25 07:43:35 localhost.localnet php-fpm[20670]
Feb 25 07:43:35 localhost.localnet systemd[1]: ph
Feb 25 07:43:35 localhost.localnet systemd[1]: Fa
-- Subject: Unit php-fpm.service has failed

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

Насчет логов. Вижу. Только осутствует test.php, что ожидалось. Это точно полный лог по grep'у nginx + denied?
Если да, тогда сделайте выполните пару команд ниже, перезапустите еще раз сайт и отпишите результат

sudo chcon -Rt httpd_sys_content_t /var/www/
setsebool -P httpd_can_network_connect 1

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

Эхх, был подключен по SSH с телефона :\ (на данный момент с ноута)
Выхлоп sudo cat /var/log/audit/audit.log | grep nginx | grep denied
Выхлопов от данной команды нет:

sudo cat /var/log/messages | grep nginx | grep denied
Выхлоп journalctl -xe после рестарта php-fpm (journalctl -xe)

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

Что за чудо команды?

Если простыми словами, то chcon это своего рода аналог chown, только она ставит специальные SELinux-метки на файлы/директории. setsebool просто включает отключает правила для SELinux, в данном случае httpd_can_network_connect 1. Все это можно прочитать в документации по SELinux. Я не работал с centOS, и даже не мог предположить что у вас стоит SELinux изначально. Если бы сразу до этого дошли, этот тред имел бы 7 комментариев, вместо 67 :D

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

Вроде бы поставил phpMyAdmin, но при заходе на arcontinue.su/phpmyadmin - возвращает 502, почему так?
И как решить?

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

Скиньте тогда последнюю страницу из access.log
Вы написали «Вроде бы поставил phpMyAdmin» - вроде бы, это как? :) У вас в конфиге nginx стоит

root /usr/share/;
Путь указан как @phpmyadmin@, сл-но, смотрите установлен ли туда phpMyAdmin (/usr/share/phpmyadmin/ должно быть)
Так же, чтобы убедиться что это не SELinux, вы можете повторить ту же команду chcon, но уже для вашей директории
sudo chcon -Rt httpd_sys_content_t /usr/share/phpmyadmin/

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

Ааа, блин. Вы все меняете по несколько раз, как я могу за этим уследить :) У вас изначально была конфига nginx, ссылку на которую вы дали в своем самом первом комментарии в треде. Я по ней ориентируюсь.
Сейчас у вас все по другому.

  1. Конфиг nginx

    Это всего лишь http-конфигурация. Где конфига для самого сайта, который вы тестируете? (та, где находится опция виртуального хоста - server {...})
  2. В /etc/nginx/sites-enabled/ лежит отдельная настройка для phpmyadmin

    Зачем вы ее туда положили? Конфига с location никак не может оказаться в директории для включенных виртуальных хостов.

По порядку

  1. /etc/nginx/sites-available - здесь список доступных виртуальных хостов, созданных вами. Создавайте внутри нужный вам конфигурационный файл для вашего сайта. Называйте arcontinue.su, и заполняйте уже существующей текущей конфигурацией из /etc/nginx/sites-enabled/ (как я понял конфига с опцией server {...} находится у вас сразу же там, просто покажите мне список файлов, я скажу из какого файла нужно скопировать)
  2. После этого создайте нормальный файл phpmyadmin.conf в /etc/nginx/, скопируйте туда все данные из вашего phpmyadmin файла, что вы скинули выше (а его удалите из /etc/nginx/sites-enabled, ему там нечего делать)
  3. После этого в созданном файле из первого пункта (arcontinue.su) - в опции server подключайте phpmyadmin перед всеми location, примерно так
    server {
        listen *:80 default_server;
        server_name arcontinue.su;
        root /var/www/$host;
        index index.html index.htm index.php;
        ...
        include phpmyadmin.conf;
        ...
        location / {...}
        ...
    }
    
  4. После этого изменяете созданный во втором пункте файл phpmyadmin.conf (у вас там сейчас root /var/www/. Зачем, откуда? У вас phpmyadmin там стоит что-ли? По умолчанию, ЕМНИП, это /usr/share/, вот на него и заменяйте везде в файле)
  5. После этого линкуете созданную конфигурацию в /etc/nginx/sites-enabled
    # ln -s /etc/nginx/sites-available/arcontinue.su /etc/nginx/sites-enabled/arcontinue.su
  6. После этого перезапускаете nginx. (service nginx configtest + service nginx restart)

Сongratulations! Вы только что прошли квест стандартного FAQ. В следующий раз, если вы будете что-либо менять в конфигах, попробуйте все снести, и поставить по любому faq-листу. Только выполняйте каждую команду последовательно, шаг за шагом, и если какой-либо шаг не будет работать так, как описано в faq, тогда пишите сюда вместе с логами/ошибками/выводами в консоль.

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

Как раз таки и ставил по статье с хабры
Окей, пройдемся по тому, что есть:
Главная страница сайта - работает[\url]
test.php - работает[\url]
test.cgi (Perl) - не работает[\url]
phpmyadmin - не работает[\url]
Итог: У нас не работает Perl и phpMyAdmin.
Вопрос: Почему и как решить?
Конфиг для сайта (/etc/nginx/sites-available/default):

server {
	# Папка с контентом сайта (удобно, когда совпадает с именем домена)
	root /var/www/site_archetector/;
	# Настройка логов, каждому виртуальному домену - свой лог
	access_log /var/log/nginx/default-access.log;
	error_log /var/log/nginx/default-error.log;

	# Подключаем все шаблоны для проверки, на реальных хостах будем использовать только нужные.
	include /etc/nginx/templates/default;
	include /etc/nginx/templates/php;
	include /etc/nginx/templates/phpmyadmin;
	include /etc/nginx/templates/perlcgi;
}

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

/etc/nginx/templates/phpmyadmin;

Содержимое этого файла скиньте, а то вы до этого скинули phpmyadmin, и сказали что он лежит в /etc/nginx/sites-enabled/.

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

Окей, а вы видите, что по хабравской статье они юзают phpmyadmin из /var/www/? Если вы хотите как у них - перенесите его туда, но сначала, покажите мне где он у вас лежит. Для этого выполните

whereis phpmyadmin
И вывод сюда

znenyegvkby
()
Ответ на: комментарий от znenyegvkby
[root@localhost ~]# whereis phpmyadmin
phpmyadmin:[root@localhost ~]# whereis phpmyadmin
phpmyadmin:[root@localhost ~]# whereis phpmyadmin
phpmyadmin:[root@localhost ~]# whereis phpmyadmin
phpmyadmin:[root@localhost ~]#


Кстати, говоря, phpmyadmin я перенес в /var/www:

[root@localhost phpmyadmin]# pwd
/var/www/phpmyadmin

У меня с версий gist'a прослушка стояла на
fastcgi_pass 127.0.0.1:9030;
заменил на
fastcgi_pass 127.0.0.1:9000;
теперь 502 ошибки нет - но и страницы с авторизацией на phpmyadmin, тоже нет.

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

В access пишет, а вот в error-log пусто (phpmyadmin перенес после выполнения всех chown/chmod/chcon):

ваш_ip - - [25/Feb/2016:21:01:32 +0100] "GET /phpmyadmin/ HTTP/1.1" 500 5 "https://www.linux.org.ru/forum/general/12381299?lastmod=1456429684076" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:$
ваш_ip - - [25/Feb/2016:21:01:36 +0100] "GET /phpmyadmin/ HTTP/1.1" 500 5 "https://www.linux.org.ru/forum/general/12381299?lastmod=1456429684076" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:$
ваш_ip - - [25/Feb/2016:21:06:50 +0100] "GET /phpmyadmin/ HTTP/1.1" 500 5 "https://www.linux.org.ru/forum/general/12381299?lastmod=1456429684076" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:$

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

Кстати, если логов изначально нет (по дефолту они и не пишутся у php-fpm, ЕМНИП) то поставь их сразу. В свой php-fpm.conf, в блок [www] добавь следующие строки где-нибудь снизу

php_admin_value[error_log] = /var/log/php-fpm/E_ALL.log
php_admin_flag[log_errors] = on
php_admin_value[error_reporting] = E_ALL
После этого перезапускай php-fpm, стучись еще раз на свою страницу c phpmyadmin и скидывай сюда логи.
Заодно еще и сами логи php-fpm скинь, они, ЕМНИП, лежат в /var/log/. php5-fpm.log или php-fpm.log.

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

Заодно еще и сами логи php-fpm скинь, они, ЕМНИП, лежат в /var/log/. php5-fpm.log или php-fpm.log.

Нашел ваш старый файл php-fpm.conf на гисте, у вас вот какой error.log

error_log = /var/log/php-fpm/error.log
Оттуда мне логи самого php-fpm и тяните. Но перед этим не забудьте еще параметры выше поставить и сразу оба лога после рестарта сюда.

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

Клик Создается, только error.log - но там ничего путного нет:

[25-Feb-2016 21:43:14] NOTICE: fpm is running, pid 6030
[25-Feb-2016 21:43:14] NOTICE: ready to handle connections
[25-Feb-2016 21:43:14] NOTICE: systemd monitor interval set to 10000ms

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

Ну окей, в php.ini тогда выставите display_errors = On и error_reporting = E_ALL в своем php.ini, судя по вашему phpinfo() - он у вас лежит здесь /etc/php.ini

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

Fatal error: Call to undefined function __() in /var/www/phpmyadmin/libraries/core.lib.php on line 245

Навскидку, вот первый ответ на SO что дает google. Попробуйте, должно сработать. Я сам если честно дырявым phpmyadmin не пользуюсь, и вам не рекомендую :) И лучше конечно все манипуляции с открытыми ошибками делать на локале, а не на сервере, а то сейчас анонимус придет и быстро ваш сервер до рута проапает :)

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

А на счёт рута:

31.173.101.253 - - [25/Feb/2016:11:50:29 +0100] "GET / HTTP/1.1" 403 192 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.116 Safari/537.36"
31.173.101.253 - - [25/Feb/2016:11:51:14 +0100] "GET /test.php HTTP/1.1" 502 580 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.116 Safari/5$
$89v\xD3~\xBEO/iw\x19T^\xA9\x87Kt\xCD]\xEE" 400 166 "-" "-"
37.153.173.10 - - [25/Feb/2016:12:52:26 +0100] "GET / HTTP/1.1" 403 173 "-" "-"
176.77.9.3 - - [25/Feb/2016:13:27:40 +0100] "GET / HTTP/1.1" 403 135 "http://yandex.ru/clck/jsredir?from=yandex.ru%3Bsearch%3Bweb%3B%3B&text=&etext=975.P1B3yixGhQXYEouVRy-d5XdbzqhyD7cyIalxvnb5V3jX$
115.230.124.164 - - [25/Feb/2016:13:50:06 +0100] "GET http://zc.qq.com/cgi-bin/common/attr?id=260714&r=0.9575857420930880 HTTP/1.1" 404 576 "-" "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; $
185.44.239.11 - - [25/Feb/2016:14:00:39 +0100] "GET / HTTP/1.1" 200 1276 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:44.0) Gecko/20100101 Firefox/44.0"
Я так понимаю - уже были попытки взлома?

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

Ну дак я же дал тебе ответ на SO выше

The problem was the wrong permissions for the /etc/phpMyAdmin directory. The web server user, apache, had proper permissions for the session.save_path directory, but apache couldn't read from my config.inc.php file. Changing the owner of /etc/phpMyAdmin to the apache user and changing the permissions to 755 solved the problem.

  • Показывай вывод
    ls -al /var/www/ | grep phpmyadmin
  • Показывай вывод session.save_path из /etc/php.ini, может там не /tmp, а еще что-нить у тебя. После твоих конфигов меня уже ничего не удивит.
znenyegvkby
()
Ответ на: комментарий от znenyegvkby

Дабы избежать потери сервера - предлагаю перейти 1x1 (jabber/skype/vk/telegramm)
Я не поверю, что бы в наше время - человек ничем из этого списка не пользовался :)
После решение проблемы - можете удалить.

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

Хоспаде, this is joke. Relax a bit :)

Я не поверю, что бы в наше время - человек ничем из этого списка не пользовался :)

Поверьте, я ничем не пользуюсь из этого списка :)

После решение проблемы

Вот же. phpMyAdmin (комментарий)

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