【问题标题】:Change localhost directory for Yosemite Apache 2.4更改 Yosemite Apache 2.4 的 localhost 目录
【发布时间】:2014-12-16 16:23:16
【问题描述】:

我已经干净安装了 Mac OSX Yosemite,但我无法像在旧 OSX 版本上那样配置 Apache 2.4。

这是我想做的:将“localhost”目录设置为“/Users/username/Public/”。 但是,我尝试的一切都不起作用,我总是得到“禁止,无法访问 /”,或者我得到默认的“它有效!”页面...

如何简单地重新启动我的本地主机?

谢谢

编辑(感谢 Krister Andersson 的回答)

适用于 Mac OSX 10.10 Yosemite

我还发布了我必须做的更改以保持运行。

在“/etc/apache2/users/”中,我创建了一个以我的用户名命名的文件,例如“myUsername.conf”。

您可以通过在终端中输入“id”来获取您的用户名。您应该在“uid=501(myUsername)”的开头找到您的用户名。

在这个新的“myUsername.conf”文件中,复制过去:

<Directory "/Users/myUsername/Sites/">
    AllowOverride All
    Options Indexes MultiViews
    Options +FollowSymLinks
    Require all granted
</Directory>

不要原谅更改 myUsername 值。

然后,在“/etc/apache2/httpd.conf”文件中,取消所有这两行的注释:

167 #LoadModule userdir_module libexec/apache2/mod_userdir.so
169 #LoadModule php5_module libexec/apache2/libphp5.so

第 236 行,将“DocumentRoot”的目录更改为您想要的任何目录。 第 250 行,将“Options”设置为“Options”Options Indexes FollowSymLinks Multiviews。 第 258 行,将“AllowOverride None”设置为“AllowOverride All”。 第 263 行,将“要求全部拒绝”设置为“要求全部授予”

在终端中,输入“sudo apachectl restart”重启apache。

它适用于 Mac OS X 10.10 Yosemite 全新安装。

【问题讨论】:

标签: macos apache apache2 osx-yosemite apache2.4


【解决方案1】:

我刚刚安装了 Yosemite,我成功地更改了 DocumentRoot,没有任何问题。首先我在/private/etc/apache2/httpd.conf中修改了以下几行:

DocumentRoot "/Library/WebServer/Documents"
<Directory "/Library/WebServer/Documents">
Options FollowSymLinks Multiviews

AllowOverride None
</Directory>

到:

DocumentRoot "<CUSTOM_PATH>"
<Directory "<CUSTOM_PATH>">
Options Indexes FollowSymLinks Multiviews

AllowOverride All
</Directory>

上面将设置一个自定义DocumentRoot,启用目录列表并允许.htaccess文件覆盖配置。

然后我通过执行sudo apachectl restart重新启动了apache。

另一种方法是设置虚拟主机。首先确保在您的/private/etc/apache2/httpd.conf 文件中取消注释以下行:

# Virtual hosts
#Include /private/etc/apache2/extra/httpd-vhosts.conf

然后您可以在httpd-vhosts.conf文件中添加以下内容:

<VirtualHost *:80>
   ServerAdmin webmaster@example.local
   DocumentRoot "/Library/WebServer/Documents"
   ServerName example.local
   ErrorLog "/private/var/log/apache2/example.local-error_log"
   CustomLog "/private/var/log/apache2/example.local-access_log" common

   <Directory "/Library/WebServer/Documents">
     Options Indexes FollowSymLinks Multiviews
     AllowOverride All
     Order allow,deny
     Allow from all
   </Directory>
</VirtualHost>

以上将为名为@9​​87654332@ 的新虚拟主机设置一个文档根目录,并启用目录列表并允许.htaccess 文件覆盖配置。当然,您还需要重新启动 apache 才能使更改生效:

sudo apachectl restart

【讨论】:

  • 不错!它也适用于我。我在“服务器配置”方面很糟糕。非常感谢,我也回答了我的问题以发布我的配置(我从其他来源添加了一些更改)。奖励:您知道如何将 localhost 设置为 root "/" 仅适用于 127.0.0.1 和从外部请求的 127.0.0.1 重定向到另一个文件夹吗?
  • @Jordan - 我可能会提供帮助,但由于这似乎是一个不同的问题,我认为您首先应该创建一个新问题,并且您还应该尝试添加有关您的内容的更清晰的信息正在尝试做。
  • 这在 Apache 2.4 下不再适合我了。出于某种原因,它似乎没有尊重 DocumentRoot。
  • @Shavais - 你重启 apache 了吗?您确定您正在编辑正确的配置文件吗?
  • 嗯,好吧,不要我的 cmets。它现在正在工作。我注意到访问日志显示 index.html 的 304,所以我转储了浏览器缓存 - 我正在查看 index.html 的缓存版本。我的配置的前一次迭代为我的其他文件提供了 404,所以我认为问题出在 DocumentRoot 上,但显然不是这样,当前的迭代(包括权限更改等)已经解决了这个问题。
【解决方案2】:

在 El Capitan 上,您应该使用“-k”标志重新启动 apache: sudo apachectl -k 重启

【讨论】:

  • 这解决了我的根目录不更新的问题:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-07-18
  • 1970-01-01
  • 2015-02-03
  • 2020-10-03
  • 1970-01-01
  • 1970-01-01
  • 2015-04-03
相关资源
最近更新 更多