安装 VestaCP 控制面板后尝试访问 phpMyAdmin 时出现 500 内部服务器错误

安装 VestaCP 控制面板后尝试访问 phpMyAdmin 时出现 500 内部服务器错误

我刚刚安装了 LAMP 和 VestaCP,没有安装其他任何东西。

检查这些行中的错误日志后,我还看到:

AH00558: apache2: Could not reliably determine the server's fully qualified domain
  name, using 1st.example.com.
  Set the 'ServerName' directive globally to suppress thi$

AH00558: apache2: Could not reliably determine the server's fully qualified domain
  name, using 127.0.1.1.
  Set the 'ServerName' directive globally to suppress this mess$

这也是完整的粘贴箱错误日志文件https://pastebin.com/dhAHiGb7

答案1

不幸的是,据我所知,没有关于安装 LAMP 的单一指南;但是,由于您没有手动编辑 .htaccess 文件,我的有根据的猜测是,在主配置文件中(或在虚拟主机配置文件中),该指令AllowOverride AuthConfig丢失了。

棘手的部分是找到正确的文件。对于 VestaCP (https://vestacp.com/docs/#config-log-location-debian-ubuntu)您有以下默认配置:

  • /etc/apache2/apache2.conf
  • /etc/apache2/conf.d/*
  • /home/$用户/conf/web/apache2.conf
  • /home/$用户/conf/web/sapache2.conf

您必须找到包含 PHPMyAdmin 指令的配置。

尝试类似

grep -r phpmyadmin /etc/apache2/*

在相应的文件中你应该找到

<Directory /usr/share/phpmyadmin>
...
</Directory>

如果是这样,你可以添加

AllowOverride AuthConfig

<Directory ..> </Directory>部分内并重新启动 apache2 服务。

答案2

如何找到当前的 apache 网络服务器配置:

  1. 找到主要的 httpd 进程ps axuww | grep 'root.*http[d]',它应该产生类似的结果

根 1480 0.0 0.0 90788 7756 - SsJ 20:25 0:00.03 /usr/local/sbin/httpd

查找命令,注意是否有任何配置文件,例如/usr/sbin/httpd -f /etc/apache2/conf/httpd.conf

  1. 如果没有引用启动配置文件-f,我们必须找到默认配置目录:
/usr/sbin/httpd -V
Server version: Apache/2.4.25
...
 -D HTTPD_ROOT="/usr/local"
 -D SERVER_CONFIG_FILE="etc/apache24/httpd.conf"

我们正在寻找编译时变量 HTTPD_ROOT 和 SERVER_CONFIG_FILE。如果后者不是绝对文件路径(如上所述),则由 HTTPD_ROOT 目录路径扩展;如果 SERVER_CONFIG_FILE 为空,则默认为$HTTPD_ROOT/conf/httpd.conf

  1. 解析主配置文件

我们应该已经找到运行时配置文件,现在正在解析相关指令。其中包括

  • 服务器根目录
  • 包括或包括可选
  • 文档根目录
  • 别名/ScriptAlias
  • 以及所有和容器

首先,我们必须找到 phpmyadmin 的目录容器。因此,解析“php”的 Include 指令引用的所有配置文件。在过去,您有一个 Alias/ScriptAlias 指令和一个相应的 PHP 容器以及一个SetHandler指令。如今,您可以在系统上运行一个通过 proxy_fcgi 连接的 php-fpm 守护程序。

相关内容