为什么我总是使用phpMyAdmin获得403错误?

我正在运行Ubuntu 14.04 LTS服务器,我正在尝试让phpMyAdmin工作。 每当我打开192.168.0.xxx/phpmyadmin它会给我403错误。 我也安装了Wordpress,我可以毫无问题地访问它。

我试过了:

  • 将所有权设置为Apache
  • 重新启动我的计算机/服务器
  • 使用不同的电脑
  • 卸载/重新安装(包括uninstallinstallpurgeinstall ,并install --reinstall
  • 阅读了很多关于如何解决这个问题的教程/ AU问题/post/博客,但他们都没有向我展示有效的解决方案。

我在查看网站的“主页”时发现了一件奇怪的事情(即最后没有/foobar ),它显示了一个文件浏览器。 但是,它不显示phpMyAdmin。 此外,它几天前工作,我不记得改变什么。 唯一看起来很奇怪的是,通常有/serv IIRC的东西,但这可能就像我在另一台服务器上使用它一样……

注意: /usr/share/phpmyadmin文件夹中没有.htaccess文件。 我看过一些文章暗示应该有一个,但我找不到明确的答案。

/etc/phpmyadmin/apache.conf文件:

 # phpMyAdmin default Apache configuration Alias /phpmyadmin /usr/share/phpmyadmin  Options FollowSymLinks DirectoryIndex index.php order deny,allow #deny from all allow from all  AddType application/x-httpd-php .php php_flag magic_quotes_gpc Off php_flag track_vars On php_flag register_globals Off php_value include_path .   # Authorize for setup   AuthType Basic AuthName "phpMyAdmin Setup" AuthUserFile /etc/phpmyadmin/htpasswd.setup  Require valid-user  #Disallow web access to directories that don't need it  Order Deny,Allow Deny from All   Order Deny,Allow Deny from All  

Apache配置文件:

 # The accept serialization lock file MUST BE STORED ON A LOCAL DISK. # Mutex file:${APACHE_LOCK_DIR} default # PidFile: The file in which the server should record its process # identification number when it starts. # This needs to be set in /etc/apache2/envvars # PidFile ${APACHE_PID_FILE} # Timeout: The number of seconds before receives and sends time out. # Timeout 300 KeepAlive On # MaxKeepAliveRequests: The maximum number of requests to allow # during a persistent connection. Set to 0 to allow an unlimited amount. # We recommend you leave this number high, for maximum performance. # MaxKeepAliveRequests 100 # KeepAliveTimeout: Number of seconds to wait for the next request from the # same client on the same connection. # KeepAliveTimeout 5 # These need to be set in /etc/apache2/envvars User ${APACHE_RUN_USER} Group ${APACHE_RUN_GROUP} # HostnameLookups HostnameLookups Off # ErrorLog: The location of the error log file. ErrorLog ${APACHE_LOG_DIR}/error.log # LogLevel: Control the severity of messages logged to the error_log. # Available values: trace8, ..., trace1, debug, info, notice, warn, # error, crit, alert, emerg. # It is also possible to configure the log level for particular modules, eg # "LogLevel info ssl:warn" # LogLevel warn # Include module configuration: IncludeOptional mods-enabled/*.load IncludeOptional mods-enabled/*.conf # Include list of ports to listen on Include ports.conf # Sets the default security model of the Apache2 HTTPD server. It does # not allow access to the root filesystem outside of /usr/share and /var/www. # The former is used by web applications packaged in Debian, # the latter may be used for local directories served by the web server. If # your system is serving content from a sub-directory in /srv you must allow # access here, or in any related virtual host.  Options FollowSymLinks AllowOverride None Require all denied   Options Indexes FollowSymLinks AllowOverride All Require all granted  # AccessFileName: The name of the file to look for in each directory # for additional configuration directives. See also the AllowOverride # directive. # AccessFileName .htaccess # The following lines prevent .htaccess and .htpasswd files from being # viewed by Web clients. #  Require all denied  # The following directives define some format nicknames for use with # a CustomLog directive. # # These deviate from the Common Log Format definitions in that they use %O # (the actual bytes sent including headers) instead of %b (the size of the # requested file), because the latter makes it impossible to detect partial # requests. # # Note that the use of %{X-Forwarded-For}i instead of %h is not recommended. # Use mod_remoteip instead. # LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined LogFormat "%h %l %u %t \"%r\" %>s %O" common LogFormat "%{Referer}i -> %U" referer LogFormat "%{User-agent}i" agent # Include of directories ignores editors' and dpkg's backup files, # see README.Debian for details. # Include generic snippets of statements IncludeOptional conf-enabled/*.conf # Include the virtual host configurations: IncludeOptional sites-enabled/*.conf # vim: syntax=apache ts=4 sw=4 sts=4 sr noet Include /etc/phpmyadmin/apache.conf 

(我为在这里倾倒大量文本而道歉,但我已经在这上工作了大约三个小时,我无法弄清楚如何解决这个问题。如果需要,我很乐意提供更多文件,只需发表评论。)

造成这种情况的原因是什么?如何解决?

/etc/phpmyadmin/apache.conf更改以下几行:

  Options FollowSymLinks DirectoryIndex index.php order deny,allow #deny from all allow from all 

对此:

  Options Indexes FollowSymLinks MultiViews DirectoryIndex index.php AllowOverride all Require all granted 

您的Apache是​​2.4+,因此它使用Require all granted而不是Allow from all

这里还有另一个提示:你可以看看你的Apache error.log文件,找出你被拒绝的原因(403错误),这可以给出问题的线索。 error.log文件通常位于根目录(通常是/ var / www / html)中。