安装phpMyAdmin后,PHP不再在Centos上工作

我想我已经杀死了我的LAMP服务器!

服务器是CentOS 6.6,安装了Apache 2.2和PHP 5.4。 我本来没有安装任何东西 – 这是由我的托pipe服务提供商提供的。

在我尝试安装phpMyAdmin之前,一切都在服务器上正常工作。 我执行了以下命令:

sudo rpm -ivh epel-release* sudo yum install phpmyadmin 

然后我重新启动Apache,但是当我试图浏览到我的PHP应用程序(这一直工作正常),我得到了500内部服务器错误。 我检查了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,但我想我已经完全惹了我的服务器!

这是(ahem)一个生产环境,现在似乎没有任何工作。

将不胜感激任何支持/build议。

  1. 我同意迈克尔汉普顿的声明,你不应该在生产服务器上安装phpMyAdmin。

  2. 我更喜欢通过git checkout安装phpMyAdmin而不是他们的软件包。 这使您可以控制主机名是什么,添加.htpasswd身份validation,ssl等(我相信所有这些都可以通过软件包来完成,但是为什么还要以另一种方式来做,而您已经设置了网站并且已经有一个这样做的方法?)。 phpMyAdmin的回购可以在https://github.com/phpmyadmin/phpmyadminfind,并且可以作为网站克隆,允许您通过简单的git pull来随时更新。

  3. 比phpMyAdmin更好的是安装MySQL Workbench( http://dev.mysql.com/downloads/workbench/ ),并将服务器configuration为仅在端口3306上与您的ip进行通信(通过AWS或iptables / firewall中的安全规则等等)。

  4. 甚至比使用MySQL Workbench更好的方法是将ssh放入服务器并通过CLI运行mysql命令。 本地,没有外部的沟通。


现在我已经说了所有,你的post提到了一个错误Unable to load dynamic library...这意味着你缺less一个包。 在你的情况下,这是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)。 我现在知道我需要searchmcrypt并安装它:

 # yum search php55-mcrypt 

收益率:

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

发现包! (为什么我search的原因有时包名不是你所期待的,所以你可能需要search例如mcrypt,并查看所需的结果。

最后,安装并重新启动httpd:

 # yum install php55-mcrypt # service httpd restart 

如果试图重新启动httpd,你会得到另一个包的类似错误,冲洗并重复。

事实certificate,phpMyAdmin已经安装(可以通过cPanel访问)。 我得到了主机提供商调查PHP问题,他们通过WHM执行EasyApache重build,并解决了这个问题。