PHP больше не работает на Centos после установки phpMyAdmin

Я думаю, что я убил свой сервер LAMP!

Сервер CentOS 6.6 с установленными Apache 2.2 и PHP 5.4. Изначально я ничего не устанавливал - это было предоставлено моим хостинг-провайдером.

На сервере все работало нормально, пока я не попытался установить phpMyAdmin. Я выполнил следующие команды:

sudo rpm -ivh epel-release*

sudo yum install phpmyadmin

Затем я перезапустил Apache, но когда я попытался перейти к своему приложению PHP (которое работало нормально), я получил 500 Internal Server Error. Я проверил журнал ошибок Apache и увидел следующее:

[Thu Nov 06 22:37:35 2014] [notice] Apache/2.2.27 (Unix) mod_ssl/2.2.27 OpenSSL/1.0.1e-fips mod_bwlimited/1.4 configured -- resuming normal operations
[Thu Nov 06 22:37:38 2014] [error] [client 124.170.80.18] PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/mcrypt.so' - libmcrypt.so.4: cannot open shared object file: No such file or directory in Unknown on line 0
[Thu Nov 06 22:37:38 2014] [error] [client 124.170.80.18] Premature end of script headers: index.php

Я проверил /etc/php.d/mcrypt.ini и он имеет следующее:

; Enable mcrypt extension module
extension=mcrypt.so

Я думал, что это мог быть какой-то конфликт версий в том, что установленная версия PHP была 5.4, но phpMyAdmin ожидал 5.3.

#php -v

PHP 5.4.28 (cli) (built: May  7 2014 13:54:44)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2014 Zend Technologies

С тех пор я удалил phpMyAdmin и попытался переустановить PHP, но я думаю, что полностью сбил с толку свой сервер!

Это (хм) производственная среда, и теперь, похоже, ничего не работает.

Буду признателен за любую поддержку / совет.

2 ответа

Оказывается, phpMyAdmin уже был установлен (и был доступен через cPanel). Я попросил хостинг-провайдера исследовать проблему PHP, и он выполнил перестройку EasyApache через WHM, и это решило проблемы.

  1. Я согласен с утверждением Майкла Хэмптона о том, что на производственном сервере не должно быть установлено phpMyAdmin.

  2. Я предпочитаю устанавливать phpMyAdmin через git checkout, а не их пакет. Это дает вам контроль над именем хоста, добавляя аутентификацию.htpasswd, ssl и т. Д. (Я уверен, что все, что можно сделать с помощью пакета, но зачем беспокоиться о том, чтобы делать это по-другому, когда вы уже настраиваете сайты и уже есть способ для этого?). Репозиторий для phpMyAdmin можно найти по адресу https://github.com/phpmyadmin/phpmyadmin и его можно клонировать как сайт, что позволяет обновлять его так часто, как вы хотите, с помощью простого git pull,

  3. Лучше, чем phpMyAdmin, было бы установить что-то вроде MySQL Workbench ( http://dev.mysql.com/downloads/workbench/) и настроить сервер для связи через порт 3306 только с вашим ip (через правила безопасности в AWS или iptables/firewall)., так далее).

  4. Даже лучше, чем использование MySQL Workbench, было бы подключиться к серверу через ssh и запустить команды mysql через CLI. Локально, без внешнего общения.


Теперь, когда я сказал все это, в вашем сообщении упоминается ошибка Unable to load dynamic library... Это означает, что вы пропустили посылку. В твоем случае это mcrypt.

@note: все команды выполняются от имени пользователя root. Вы также можете sudo каждую команду ниже.

Первый шаг - выяснить, какую версию php вы установили:

# yum list installed | grep php

Это должно дать вам ответ, такой как:

...
php55.x86_64                         5.5.18-1.92.amzn1             @amzn-updates
...

В моем сценарии у меня установлен php55 (у вас может быть просто php.x86_64 или php54.x86_64). Теперь я знаю, что мне нужно найти mcrypt и установить его:

# yum search php55-mcrypt

выходы:

php55-mcrypt.x86_64 : Standard PHP module provides mcrypt library support

Пакет найден! (Причина, по которой я ищу, иногда заключается в том, что имена пакетов не соответствуют вашим ожиданиям, поэтому вам, возможно, придется искать только mcrypt, например, и просматривать результаты, которые вам нужны.

Наконец, установите и перезапустите httpd:

# yum install php55-mcrypt
# service httpd restart

Если при попытке перезапустить httpd вы получили похожую ошибку для другого пакета, промойте и повторите.

Другие вопросы по тегам