2

所以我按照本教程在本地设置了我的 wordpress 项目:http: //jason.pureconcepts.net/2012/10/install-apache-php-mysql-mac-os-x/

然而,它给了我一个

Forbidden You don't have permission to access / on this server.

错误。我什至尝试将我的项目的权限更改为777,但没有任何效果。我现在应该运行 Apache、MySQL 和 PHP。这是我的/etc/apache2/extra/httpd-vhosts.conf文件:

    <VirtualHost *:80>
        DocumentRoot "/Users/emai/Documents/wordpress_projects/ahrf"
        ServerName ahrf.local
        ErrorLog "/private/var/log/apache2/dummy-host2.example.com-error_log"
        CustomLog "/private/var/log/apache2/dummy-host2.example.com-access_log" common

        <Directory "/Users/emai/Documents/wordpress_projects/ahrf">
            AllowOverride All
            Order allow,deny
            Allow from all
        </Directory>
    </VirtualHost>

我的 /etc/hosts127.0.0.1 ahrf.local添加了这一行。所以看起来我的 apache config + hosts 文件配置正确。我什至尝试将默认的_wwwapache 用户添加到staff我的 mac 上的组中。

有谁知道如何解决这一问题?

4

3 回答 3

2

虽然与 Linux 和 Unix 相比,Mac 非常简单和笨拙,但在尝试像通常配置 Unix 或 Linux 系统一样将 Mac 配置为服务器方面,Apple 增加了更多开销。他们正在运行自己的自定义系统,例如 Rendezvous,因此需要进行更多配置和故障排除。话虽如此,这里有几件事:

  1. 您应该能够使用 IP 地址连接到系统并查看网站。如果您没有运行 DNS 服务器,那么系统将不会发布该ahrf.local名称。您需要编辑任何尝试使用该名称进行连接的系统的主机文件。因此,在计算机 2 上,您将编辑主机文件以查看ahrf.local192.168.x.x当然,使用 Web 服务器的正确 IP 地址)。
  2. 如果您安装 BIND,您将需要让所有其他本地机器首先检查 DNS 服务器以查看系统是否存在。
  3. 将文件夹中的权限递归更改为755. 您永远不应该允许777,因为这允许“每个人”对盒子进行写访问。Wordpress 有很多漏洞,可以通过搜索“Wordpress Hacked”在线找到。
  4. 在 Mac 上,使用.local域存在问题。.local为集合点保留。虽然它将使用此命名约定共享文件,但它并不是真正发布的“域名”,如果您尝试在 DNS 中使用它,它将与集合点发生冲突。
  5. 确保(如果您在安全性下启用了防火墙)在防火墙中允许通过端口 80 进行连接。
  6. 在较新版本的 Mac OS 下有一个网络共享选项。根据我的经验,GUI 中的许多系统实际上会覆盖一些命令行添加。您需要专门使用 GUI 或专门使用命令行,然后尝试查找 GUI 中阻止系统加载页面的任何问题。
  7. 您不需要以任何其他名称或在默认值以外的任何其他组中运行 Apache,因为它只需要读取和执行权限即可显示内容。文件夹和文件应具有为您用于创建文件的用户设置的权限。您不想让 Apache 拥有这些文件,否则您会在更新系统时遇到问题。用户可能上传图像等文件的任何文件夹都需要其他权限,但主文件夹不需要。Wordpress 在安装时配置这些设置。

如果您想将 Mac 作为“生产服务器”运行,Apple 有一个“服务器”,您可以从应用商店获取“服务器”应用程序,它基本上是另一个 GUI 界面,用于安装通常可用于 Unix 和 Linux 的所有内容选项。它很便宜。这将允许您运行自己的DNS服务器(它的界面比编辑 BIND 更简单)。

还可以尝试从 VirtualHost 中提取目录声明。在所有文档示例中,它们都是分开的。

<Directory "/Users/emai/Documents/wordpress_projects/ahrf">
    Options -FollowSymLinks
    AllowOverride All
    Order allow,deny
    Allow from all
</Directory>

<VirtualHost *:80>
    DocumentRoot "/Users/emai/Documents/wordpress_projects/ahrf"
    ServerName ahrf.home
    ErrorLog "/private/var/log/apache2/dummy-host2.example.com-error_log"
    CustomLog "/private/var/log/apache2/dummy-host2.example.com-access_log" common
</VirtualHost>

还要记住在更改.conf文件后需要重新启动 Apache。.htaccess每次更改后不必重新启动。

于 2013-06-19T16:09:56.623 回答
2

我知道这有点老了。但是我在我的 Mac 机器上遵循相同的教程来启用 apache2 的开发并面临同样的情况。

为了解决这个问题,我在我的虚拟主机目录中添加了以下行。之后当我访问一个目录时,apache没有给我一个禁止的错误。

Options Indexes FollowSymLinks MultiViews 

添加以上行后,我的虚拟主机配置如下所示。

   <Directory "/Users/uiroshan/development/php">
      Options Indexes FollowSymLinks MultiViews 
      AllowOverride All 
      Order allow,deny 
      Allow from all 
  </Directory>

另请参阅 apache 文档中的相关部分。 http://httpd.apache.org/docs/current/mod/core.html#options

索引 如果请求映射到目录的 URL,并且该目录中没有 DirectoryIndex(例如 index.html),则 mod_autoindex 将返回目录的格式化列表。

还可以从您的 httpd.conf 文件中启用“精美目录列表”配置文件。

Include /private/etc/apache2/extra/httpd-autoindex.conf

希望这可以帮助。

于 2014-02-22T07:19:05.343 回答
0

我发现最简单的解决方案是符号链接。

默认情况下 DocumentRoot 在 /Library/WebServer/Documents

cd /Library/WebServer/

sudo mv Documents Documents-old

sudo ln -s <sourcedir> ./Documents

不要弄乱 OSX Apache 配置并打破你的头脑。不值得!

于 2014-09-18T23:50:06.463 回答