8

Я установил phpMyAdmin, но не могу открыть его ни в одном браузере: я получаю перенаправление 301(*), если захожу на http://localhost:8080/phpmyadmin . Если я добавлю / в конец адреса, я получу 500 ошибок .

(*) захвачено с помощью Wireshark. Если я использую netcat из терминала на том же хосте, я получаю перенаправление 301 на другой адрес.

Среда - это виртуальная машина, которую я создал для целей разработки / тестирования, где я установил среду LEMP (Linux / Nginx / MySQL / PHP). Это чистая установка CentOS 6 64bit, работающая в качестве гостя на 64-битном хосте Ubuntu 12.04. ВМ работает в режиме NATed с переадресацией портов. Я могу открыть http://localhost:8080 на гостевой машине и увидеть страницу приветствия nginx. Я также могу открыть страницу phpinfo , так что я знаю, что PHP работает.

Я установил пакеты nginx, MySQM, PHP и phpMyAdmin каждый по отдельности. Я использую настройки по умолчанию для phpMyAdmin. После установки MySQL я выполнил команду mysql_secure_installation и, среди других опций, отключил удаленный root-доступ.

Вот мои файлы конфигурации:

  • /etc/php.ini: ссылка
  • /etc/php.d/mysql.ini: ссылка
  • /etc/nginx/nginx.conf: ссылка
  • /etc/nginx/conf.d/default.conf: link (Для запуска сценариев PHP я настроил его, следуя онлайн-учебникам, и я не совсем уверен в том, что я делал.)
  • /etc/phpMyAdmin/config.inc.php: ссылка

3 ответа3

4

Было несколько причин, не позволяющих мне войти в phpMyAdmin:

MBstring

Ошибка 500 генерирует сообщение PHP Fatal error: Call to undefined function mb_detect_encoding() in /usr/share/php/gettext/gettext.inc on line 177 в файле /var/log/php-fpm/www-error.log , Согласно комментарию на http://www.php.net/manual/en/mbstring.installation.php я попытался установить пакет php-mbstring , но он уже присутствовал.

Перезапуск php-fpm service решил ошибку 500.

php сессии

После устранения предыдущей ошибки я получил следующую ошибку:

/etc/phpmyadmin/config.inc.php имеет строку

$ cfg ['Servers'] [$ i] ['auth_type'] = 'cookie';

но переменная session.save_path PHP установлена в несуществующую папку /var/lib/php/session .

Создание папки с надлежащими разрешениями решило эту ошибку, я могу правильно войти в систему.

перенаправление косой черты

Если я пытаюсь получить доступ к любому адресу на этом сервере без завершающей косой черты в конце URL-адреса, nginx добавляет завершающую косую черту и удаляет ее :8080 часть. Этого не произойдет, если я оставлю косую черту.

(Например: http://localhost:8080/example перенаправляется на http://localhost/example/ . Тот факт, что phpMyAdmin запущен как на виртуальной машине, так и на хост-машине, добавил еще больше путаницы, поскольку я вижу логин phpMyAdmin. диалоговое окно, но не в том месте).

Кажется, это распространенная ошибка nginx. Я гуглил и пробовал разные решения безуспешно. Если я найду решение для своего случая, я обновлю этот ответ.

0

Корневые имена входа должны быть разрешены в файле конфигурации /etc/phpmyadmin/config.inc.php .

Добавьте следующую строку:

$ cfg ['Servers'] [$ i] ['AllowRoot'] = TRUE;

0

Проверьте /var/log/nginx/error.log чтобы увидеть, что говорит ошибка 500.

Похоже, вы используете две конфигурации (одна на порту 80, а другая на 8080), которые могут конфликтовать.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .