phpMyAdmin 尝试安装 Apache

phpMyAdmin 尝试安装 Apache

我正在尝试在我的服务器上安装新的环境,Nginx 网络服务器与 HHVM 结合。

我安装了两者,然后来到 MariaDB 并安装了它。我可以通过输入 IP 地址来确认服务器是否正常工作:欢迎使用 nginx!

然后我需要安装一个基于 Web 的客户端来管理数据库。我知道 phpMyAdmin 与 Apache 和 Litespeed 配合得很好,但是当我阅读了许多关于在 Nginx 之外安装 phpMyAdmin 的文章时,步骤几乎相同。

但问题是这样做apt-get install phpmyadmin也会安装 Apache:

The following extra packages will be installed:
  apache2 apache2-bin apache2-data dbconfig-common libapache2-mod-php5 libapr1
  libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap libjs-codemirror
  libjs-jquery libjs-jquery-cookie libjs-jquery-event-drag
  libjs-jquery-metadata libjs-jquery-mousewheel libjs-jquery-tablesorter
  libjs-jquery-ui libjs-underscore php-gettext php5 php5-common php5-json
  php5-mcrypt php5-mysql

通过确认安装,它将安装并启用 Apache 模块:

[...]
Enabling module mpm_event.
Enabling module authz_core.
Enabling module authz_host.
Enabling module authn_core.
Enabling module auth_basic.
Enabling module access_compat.
Enabling module authn_file.
Enabling module authz_user.
Enabling module alias.
Enabling module dir.
Enabling module autoindex.
Enabling module env.
Enabling module mime.
Enabling module negotiation.
Enabling module setenvif.
Enabling module filter.
Enabling module deflate.
Enabling module status.
[...]

然后抛出 Apache 无法启动的错误:

* Starting web server apache2                                                              AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using vultr.guest. Set the 'ServerName' directive globally to suppress this message
(98)Address already in use: AH00072: make_sock: could not bind to address [::]:80
(98)Address already in use: AH00072: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
AH00015: Unable to open logs
Action 'start' failed.
The Apache error log may have more information.
 *
 * The apache2 instance did not start within 20 seconds. Please read the log files to discover problems
invoke-rc.d: initscript apache2, action "start" failed.
Setting up dbconfig-common (1.8.47+nmu1) ...

我正在从 Apache 迁移到 Nginx,这意味着我不再需要 Apache!这是 phpMyAdmin 的默认行为吗?有没有办法使用最新版本的 Nginx 和 HHVM 运行 phpMyAdmin?

答案1

出现这种行为的原因是phpmyadmin(至少在中Debian,并且我认为在中非常相似Ubuntu)的依赖关系:

# apt-cache show phpmyadmin | grep Depends:
libapache2-mod-php5 | libapache2-mod-php5filter | php5-cgi | php5-fpm | php5, php5-mysql | php5-mysqli | php5-mysqlnd, php5-mcrypt, php5-json, perl, debconf (>= 0.5) | debconf-2.0, libjs-sphinxdoc (>= 1.0), dbconfig-common, php-gettext, ucf (>= 0.28)

# apt-cache show libapache2-mod-php5 | grep Depends:
libbz2-1.0, libc6 (>= 2.15), libcomerr2 (>= 1.01), libdb5.3, libgssapi-krb5-2 (>= 1.6.dfsg.2), libk5crypto3 (>= 1.6.dfsg.2), libkrb5-3 (>= 1.6.dfsg.2), libonig2 (>= 5.9.5), libpcre3 (>= 1:8.35), libqdbm14 (>= 1.8.74), libssl1.0.0 (>= 1.0.1), libstdc++6 (>= 4.1.1), libxml2 (>= 2.9.0), zlib1g (>= 1:1.1.4), apache2-api-20120211, apache2 (>= 2.4), mime-support, php5-common (= 5.6.14+dfsg-0+deb8u1), php5-cli, php5-json, libmagic1, ucf, tzdata

在第二个所需软件包列表中,您将找到apache2,它将安装此软件包。因此,没有太多的魔法。

如果你phpmyadmin像之前那样安装,之后就无法清除apache2。清除之后也会被删除phpmyadmin,因为依赖关系不再满足。

那么...如果您想安装phpmyadmin,但同时又不想安装,该怎么办apache2? 也不难:

phpmyadmin依赖于提供php5解释器/库/模块的几个软件包。由于有多个选项,您可以自行选择。您不需要所有这些软件包,它更像是“这个软件包OR这个软件包OR那个”。(请注意|所需软件包列表中的phpmyadmin。)

所以,你必须第一的php5安装未连接到的所需软件包apache2,以及然后安装phpmyadmin

# apt-get install php5-fpm
[...]
The following NEW packages will be installed:
   libonig2 libqdbm14 php5-common php5-fpm

# apt-get install phpmyadmin
[...]
The following NEW packages will be installed:
   dbconfig-common libltdl7 libmcrypt4 libmysqlclient18 mysql-common php5-mcrypt php5-mysql phpmyadmin

如果您还有其他问题或需要进一步的帮助,请告诉我。

编辑:关于您对其他基于 Web 的数据库管理系统的评论:您可以看看管理员。引用项目网站(我自己无法判断):

用 Adminer 替换 phpMyAdmin,您将获得更整洁的用户界面、更好的 MySQL 功能支持、更高的性能和更高的安全性。

Ubuntu套餐可用的也一样。

答案2

我使用和你相同的堆栈(因此不涉及 Apache)。我喜欢使用

apt-get --no-install-recommends install phpmyadmin

这将只安装 phpmyadmin,而不安装 apache

相关内容