使用 Apache 设置 phpmyadmin 虚拟主机时遇到问题

使用 Apache 设置 phpmyadmin 虚拟主机时遇到问题

我已正确安装 lampp 和 wordpress。当我尝试导航到时,http://localhost/phpmyadmin出现 403 权限被拒绝错误。我可以访问我的虚拟主机配置中可用的两个站点。虽然我不完全确定我的虚拟主机配置文件中的所有选项的作用,但我认为它们会弄乱 phpmyadmin。例如,当我导航到 localhost 时,我收到以下错误消息,这可能意味着我做错了什么(没有链接任何 wordpress 安装/var/www/):

“既找不到/etc/wordpress/config-localhost.php/etc/wordpress/config-localhost.php找不到。请确保其中一个存在、可被 Web 服务器读取且包含正确的密码/用户名。”

我的两个站点均可用/var/www/,并且文件系统布局如下:

-site1
---web (public html - symbolic link to /usr/share/wordpress)
---uploads
-site2
---web (public html - symbolic link to /usr/share/wordpress)
---uploads

phpmyadmin 已经通过 Ubuntu 12.04 存储库安装,就像其他所有东西一样,并在安装过程中自动配置(只需导航到就可以使用,http://localhost/phpmyadmin/但我可能在配置其余部分时破坏了它。)

这是我配置虚拟主机的方式(这些设置适用于两个站点,只是域名不同):

<VirtualHost *:80>
    ServerAdmin [email protected]
    ServerName site1.com
    ServerAlias www.site1.com

    ErrorLog /var/log/apache2/site1.com/error.log
    CustomLog /var/log/apache2/site1.com/access.log combined

    DocumentRoot /var/www/site1.com/web
    <Directory />
        Options -Indexes FollowSymLinks
        AllowOverride None
    </Directory>
    <Directory /var/www/>
        Options -Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        allow from all
    </Directory>

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
        AllowOverride None
        Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
        Order allow,deny
        Allow from all
    </Directory>

    #ErrorLog ${APACHE_LOG_DIR}/error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    #CustomLog ${APACHE_LOG_DIR}/access.log combined

    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
        Options -Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>
</VirtualHost>

如果您对该配置有任何意见,除了使 phpmyadmin 工作所需的配置之外,也请告诉我:)

非常感谢大家的帮助!非常感谢!

答案1

我认为您的问题出在行 上DocumentRoot /var/www/site1.com/web。这将根目录设置为 site1.com 中的 web 文件夹,因此无法访问该目录下的任何内容。文档根目录应设置为/var/www,但您可以将其设置为您想要的任何内容。目录通常至少与一个条目匹配,但您可以为更多站点设置更多目录条目。

例如,要添加 site1.com,您可以添加另一个条目,如下所示:

<VirtualHost *:80>
    <Directory /var/www/site1.com/web>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
    </Directory>
    DocumentRoot /var/www/site1.com/web
    ServerName site1.com
</VirtualHost>

该条目可以位于文件末尾,添加到现有条目中

答案2

我解决这个问题的方法是将其更改<Directory /var/www/><Directory /var/www/site1.com/web/>。然后我的两个网站都可以正常工作,甚至 phpmyadmin 也可以正常工作。我想我误解了 的用途<Directory>

我收到的答案并没有帮我解决这个问题,或者我无法正确理解解释,如果是这样的话,我很抱歉。谢谢你的帮助,马蒂!:)

相关内容