我刚刚安装了Mac OS X Yosemite fresh。我配置了Apache,并将"users/user/Sites“改为755。当我点击localhost时,我收到一个403 Forbidden "You don't have permission to access / on this server"
。同样的事情也发生在我添加到主机文件中的任何其他站点上。
我尝试在的帮助下配置用户目录。这个上的人知道有一个Apache问题,但没有提供太多建议。
我的目录权限如下所示
drwxr-xr-x 29 root wheel 1054 Aug 11 07:30 /
drwxr-xr-x 6 root admin 204 Aug 11 07:29 /Users/
drwxr-xr-x+ 26 zachshallbetter staff 884 Aug 11 11:57 /Users/zachshallbetter/
0: group:everyone deny delete
drwxr-xr-x 5 zachshallbetter staff 170 Aug 11 10:16 /Users/zachshallbetter/Sites
有人能提供任何建议或帮助吗?下面是指向我的和文件以及的链接,以供参考。
发布于 2014-10-17 23:01:08
您不希望将整个硬盘驱动器开放给web服务器进程。实际上,httpd.conf
的第215-217行说:
# Deny access to the entirety of your server's filesystem. You must
# explicitly permit access to web content directories in other
# <Directory> blocks below.
Apache2.4(OSX10.10Yosemite)具有与Apache2.2(OSX10.9)不同的Directory directive in Module mod_authz_core结构。
编辑:如果你从一开始就安装Apache,请按照在osx10.10yosemite上安装apache和php。
假设您已经启用了mod_userdir.so
,您的问题出在您的用户.conf文件(/etc/apache2/users/username.conf
)中,请编辑(或添加)以下内容。
Apache 2.2:
<Directory "/Users/jnovack/Sites/">
Options Indexes MultiViews
AllowOverride All
# OSX 10.9 / Apache 2.2
Order from deny, allow
</Directory>
Apache 2.4
<Directory "/Users/jnovack/Sites/">
Options Indexes MultiViews
AllowOverride All
# OSX 10.10 / Apache 2.4
Require all granted
</Directory>
发布于 2014-10-17 19:41:41
编辑文件: /private/etc/apache2/httpd.conf
在第250行(在Yosemite中)上更改:
Options FollowSymLinks Multiviews
至:
Options FollowSymLinks Multiviews Indexes
然后在终端运行中:
sudo apachectl restart
发布于 2015-02-01 06:10:16
这可能是非常晚的答案,但我确实遵循了大多数Stack Overflow解决方案,由于各种原因,它们都没有帮助我。所以我把我的设备重置为新的Yosemite操作系统,让这个本地主机在Mac Yosemite (也有Symlink)上工作。
我所做的步骤如下:
sudo nano /etc/apache2/httpd.conf
取消对以下行的注释:
#LoadModule php5_module libexec/apache2/libphp5.so
to
LoadModule php5_module libexec/apache2/libphp5.so
#LoadModule userdir_module libexec/apache2/mod_userdir.so
to
LoadModule userdir_module libexec/apache2/mod_userdir.so
#Include /private/etc/apache2/extra/httpd-userdir.conf
to
Include /private/etc/apache2/extra/httpd-userdir.conf
保存并退出(Ctrl+X按Enter键,然后按Y键并再次按enter键)
sudo nano /etc/apache2/extra/httpd-userdir.conf
并在第16行取消注释以下行:
#Include /private/etc/apache2/users/*.conf
to
Include /private/etc/apache2/users/*.conf
保存并退出(Ctrl+X按Enter键,然后按Y键并再次按enter键)。
现在转到apache用户文件夹,检查您的配置文件是否存在
cd /etc/apache2/users/
如果此文件夹中没有配置文件,请通过以下方式创建一个
sudo nano /etc/apache2/users/<**YOUR USERNAME**>.conf
将<YOUR USERNAME>
替换为您的计算机的名称(在终端中键入whoami
并输入该名称)。
创建.conf文件后,将以下行复制到该文件中
<Directory "/Users/<YOUR USERNAME>/Sites/">
AddLanguage en .en
LanguagePriority en fr de
ForceLanguagePriority Fallback
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from localhost
Require all granted
</Directory>
保存并退出
现在重新启动您的apache
sudo apachectl restart
现在转到您的浏览器并输入localhost,它应该可以按预期工作,
只需注意:如果在重新启动计算机后仍无法正常工作
将index.html创建为您应该在此处找到的index.html.en:
open /Library/Webserver/Documents/
右键单击index.html.en并将其复制到index.html,保持原始状态不变
在浏览器中重试,如果成功,则可以删除复制的文件
为了清楚起见,请将原始文件index.html.en
留在原处,在整个步骤中保持不变和不受损害。
不知道为什么我必须走这条神秘的弯路--可能是我的机器本地的东西,但如果你在遵循上面的指南后遇到了问题,看看它是否有帮助。
SymLinks:
如果您成功了,在浏览器中应该会看到
It works!
现在创建指向任何项目的符号链接。
ln -s <Path_to_your_Project(index_file)> <Path_to_webroot>
例如,如果您的Documents文件夹中有项目文件夹,则通过以下方式将webroot指向索引文件
ln -s /Users/<YOUR USERNAME>/Documents/project/ /Library/Webserver/documents/projectlink
您可能需要权限才能创建symlink (将上述命令与Sudo一起使用)
将apache配置为跟随符号链接(多亏了tomvon,我没有足够的积分来投票给你)
sudo nano /private/etc/apache2/httpd.conf
在第250行(在Yosemite中)上更改:
Options FollowSymLinks Multiviews
至:
Options FollowSymLinks Multiviews Indexes
然后在终端运行中:
sudo apachectl restart
现在转到localhost/projectlink
查看您的项目索引文件是否显示在浏览器上。
快乐的编码..
https://stackoverflow.com/questions/25250566
复制相似问题