31

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

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

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

谢谢

编辑(感谢克里斯特安德森的回答)

适用于 Mac OSX 10.10 优胜美地

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

在“/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 行,将“Require all denied”设置为“Require all grant”

在终端中,通过键入“sudo apachectl restart”重新启动 apache。

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

4

2 回答 2

43

我刚刚安装了优胜美地,我设法改变了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文件覆盖。

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

另一种方法是设置虚拟主机。首先确保在您的/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>

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

sudo apachectl restart
于 2014-10-21T15:36:21.260 回答
10

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

于 2015-11-03T18:54:49.937 回答