【问题标题】:Forbidden error in apache virtual host setupapache虚拟主机设置中的禁止错误
【发布时间】:2013-04-28 10:17:38
【问题描述】:

您好,我一直在寻找互联网文章论坛来解决我的问题,但到目前为止无济于事。我正在尝试在 localhost 上为我的 FuelPHP 开发设置一个 Apache 虚拟主机,但我一直受到错误 403 消息的抨击。这是我目前的设置。

#/etc/apache2/sites-enabled/000-default
NameVirtualHost *:80
<VirtualHost *:80>
    ServerAdmin webmaster@example.com
    DocumentRoot "/home/supercomputer/Desktop/PHP/fuelProject/public"
    ServerName   localhost.home
    <Directory "/home/supercomputer/Desktop/PHP/fuelProject/public" >
        Options Indexes FollowSymLinks MultiViews Includes ExecCGI
        AllowOverride All
        Order Allow,Deny
        Allow from all
        Require all granted
    </Directory>
</VirtualHost>

我已将我的 Docroot 指向我的fuelProject 中的公用文件夹。另外,为了确保 Apache 可以访问服务器文件,我将所有文件的权限设置为递归地读取、写入和执行,以确保 100% 安全。关于还有什么可能出错的任何线索?

PS:我正在运行 ubuntu raring (13.04)

PSS:我正在尝试访问 localhost.home 和 localhost.home/index.php。重新启动服务器时,我还会收到以下警告

* Restarting web server apache2                                                apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
[Fri May 03 15:46:58 2013] [warn] NameVirtualHost *:80 has no VirtualHosts
 ... waiting apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
[Fri May 03 15:46:59 2013] [warn] NameVirtualHost *:80 has no VirtualHosts

【问题讨论】:

  • 请发布您的 Apache 日志以便我们可以提供适当的帮助,我猜到了可能是什么问题,所以您通过验证将问题发回
  • 离题。试试 serverfault.com。
  • @user1000232 解决了您的问题,如果是这样,请接受您知道必须接受某些答案的 SO 规则的答案。如果没有,请发布您的问题。

标签: apache ubuntu apache2 fuelphp


【解决方案1】:

在 Ubuntu 14.04 上测试:我做了以上所有操作,但没有工作。我错过了允许访问我的 apache2.conf 中的目录。如果您不使用 /var/www 或 /usr/share/ 之类的标准目录,则需要这样做。

<Directory /usr/local/vufind>
    Options Indexes FollowSymLinks
    AllowOverride All 
    Require all granted
</Directory>

这在 4 默认 PHP 站点上有所提及。值得一读!

【讨论】:

    【解决方案2】:

    我发布的配置工作正常。问题出在权限上。我只将包含燃料项目的文件夹设置为权限 777,但出于某种原因,apache 想要访问几乎所有包含它的文件夹。我知道很奇怪,但是将所有权限设置为 777,它起作用了。阅读该死的 apache 日志确实有帮助。如果您遇到类似的问题,我建议您找到 apache 日志并实际阅读

    【讨论】:

    • 这里相同...新上传的文件没有读取权限...设置 777 后一切正常
    • 我希望人们不要在他们的生产环境中这样做。
    【解决方案3】:

    这是为fuelphp应用程序或任何其他php应用程序添加Vhost的正确方法

    <VirtualHost *:80>
        ServerName localhost.home
        DocumentRoot /home/supercomputer/Desktop/PHP/fuelProject/public
        ServerAdmin webmaster@localhost
        <Directory /home/supercomputer/Desktop/PHP/fuelProject/public>
            DirectoryIndex index.php
            AllowOverride All
            Order allow,deny
            Allow from all
        </Directory>
    </VirtualHost>
    

    而且下面这行不是必需的,我不知道你为什么要添加

    NameVirtualHost *:80
    

    在完成上述所有操作后,将主机条目添加到您的计算机以执行此操作

    sudo vi /etc/hosts
    

    添加虚拟主机的入口

    127.0.0.1  localhost.home
    

    做完这些事情

    通过运行重新启动 Apache

    sudo /etc/init.d/apache2 restart 
    

    只需在您的浏览器中加载http://localhost.home,您应该能够看到您的网站启动并运行。

    如果您仍然遇到禁止错误。您需要授予整个应用程序文件夹的权限

    按照这些命令执行此操作

    sudo chown -R www-data:www-data /home/supercomputer/Desktop/PHP
    
    sudo chmod -R 775 /home/supercomputer/Desktop/PHP
    

    最后将自己加入 www-data 组

    sudo adduser yourUserName www-data
    

    【讨论】:

    • 在将我的 DocumentRoot 从默认的 /var/www 更改为自定义内容并在我的 Apache 配置文件中添加适当的目录规则后,我在 localhost 上遇到了禁止错误。将您建议的条目添加到 /etc/hosts 并重新启动 Apache 为我修复了它。
    猜你喜欢
    • 2019-10-01
    • 2013-07-14
    • 2013-07-12
    • 2015-08-26
    • 2017-05-30
    • 2013-07-31
    • 2015-12-30
    • 2015-09-16
    • 2017-05-27
    相关资源
    最近更新 更多