我想我已经杀死了我的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议。
我同意迈克尔汉普顿的声明,你不应该在生产服务器上安装phpMyAdmin。
我更喜欢通过git checkout安装phpMyAdmin而不是他们的软件包。 这使您可以控制主机名是什么,添加.htpasswd身份validation,ssl等(我相信所有这些都可以通过软件包来完成,但是为什么还要以另一种方式来做,而您已经设置了网站并且已经有一个这样做的方法?)。 phpMyAdmin的回购可以在https://github.com/phpmyadmin/phpmyadminfind,并且可以作为网站克隆,允许您通过简单的git pull来随时更新。
比phpMyAdmin更好的是安装MySQL Workbench( http://dev.mysql.com/downloads/workbench/ ),并将服务器configuration为仅在端口3306上与您的ip进行通信(通过AWS或iptables / firewall中的安全规则等等)。
甚至比使用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,并解决了这个问题。