安装 phpMyAdmin 后,PHP 不再在 Centos 上运行

安装 phpMyAdmin 后,PHP 不再在 Centos 上运行

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

服务器是 CentOS 6.6,安装了 Apache 2.2 和 PHP 5.4。我最初没有安装任何东西 - 它是由我的托管服务提供商以这种方式提供的。

在我尝试安装 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,但我认为我已经完全搞砸了我的服务器!

这是(咳咳)一个生产环境,现在似乎什么都不起作用。

如有任何支持/建议我将不胜感激。

答案1

  1. 我同意 Michael Hampton 的说法,不应在生产服务器上安装 phpMyAdmin。

  2. 我更喜欢通过 git checkout 而不是他们的软件包来安装 phpMyAdmin。这样您就可以控制主机名,添加 .htpasswd 身份验证、ssl 等。(我确信所有这些都可以通过软件包完成,但是当您已经设置了网站并且已经有了这样做的方法时,为什么还要用另一种方式来做呢?)。phpMyAdmin 的 repo 可以在以下位置找到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 进入服务器并通过 CLI 运行 mysql 命令。本地运行,无需外部通信。


既然我已经说了这么多,你的帖子提到了一个错误,Unable to load dynamic library... 这意味着你缺少一个包。在你的情况下,它是 mcrypt。

@注意:所有命令都以 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 时您遇到另一个包的类似错误,请重复此操作。

答案2

事实证明 phpMyAdmin 已经安装(并且可以通过 cPanel 访问)。我让托管服务提供商调查了 PHP 问题,他们通过 WHM 执行了 EasyApache 重建,这解决了问题。

相关内容