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

Mac OS X 中默认有两个目录可以直接运行你的 Web 程序,
一个是系统级的 Web 根目录:/Library/WebServer/Documents/
此根目录我们平常使用地址http://localhost来访问

另一个是用户级的根目录,根目录(也是站点目录)是:~/Sites
此根目录我们常常会配置好站点,然后输入站点地址来访问
方法一

下面介绍具体的实现步骤
1.创建Sites目录(如果你的家目录下有这个目录就免了)

2.修改”你的用户名.conf”这个文件(文件位于/etc/apache2/users/)。
1>如果没有,那么你需要创建一个,取名为”你的用户名.conf”
2>编辑文件
sudo vi /etc/apache2/users/你的用户名.conf
然后将下面内容写到上面打开的文件中

Options Indexes MultiViews
AllowOverride All
Order allow,deny
Allow from all

(请将username改成你的用户名)

3>文件保存(:wq)之后,给它赋予相应的权限:
sudo chmod 755 /etc/apache2/users/你的用户名.conf
运行下面的命令来改变文件的用户和用户组(root和wheel)
sudo chown root:wheel /etc/apache2/users/你的用户名.conf
3.修改apache的httpd.conf文件
先进入相应目录: cd /etc/apache2/
再使用vim编辑器打开文件: sudo vim httpd.conf
然后找到以下信息,将其前面的#去掉:
LoadModule php5_module libexec/apache2/libphp5.so LoadModule authz_core_module libexec/apache2/mod_authz_core.so LoadModule authz_host_module libexec/apache2/mod_authz_host.so LoadModule userdir_module libexec/apache2/mod_userdir.so Include /private/etc/apache2/extra/httpd-userdir.conf
LoadModule rewrite_module libexec/apache2/mod_rewrite.so (如果你需要重定向)

4.修改/etc/apache2/extra/httpd-userdir.conf
sudo vim /etc/apache2/extra/httpd-userdir.conf
找到下面信息,将其前面的#去掉:
Include /private/etc/apache2/users/*.conf

5.此时访问http://localhost/~username/,
重新打开httpd.conf文件,
sudo vim /etc/apache2/httpd.conf
找到
AllowOverride none Require all denied
修改为:
AllowOverride none Require all granted

6.重启apache: sudo apachectl restart
7.浏览器输入:localhost/~username/ 进行访问
上面的username换成你自己的名字
方法二

1.创建Sites目录,同方法一种一样
2.修改apache配置文件
打开文件
sudo vi /etc/apache2/httpd.conf
找到下面的文字并去掉前面的“#”,保存并退出。
“#Include /private/etc/apache2/extra/httpd-vhosts.conf”,
重启apache,开启虚拟主机配置功能: sudo apachectl restart
3.修改虚拟主机配置文件
打开虚拟主机配置文件
sudo vi /etc/apache2/extra/httpd-vhosts.conf
将以前的虚拟主机配置文件注释掉,以供参考,在它们每行前面加上#就可以了
然后增加如下配置:

DocumentRoot "/Library/WebServer/Documents"
ServerName localhost
ErrorLog "/private/var/log/apache2/localhost-error_log"
CustomLog "/private/var/log/apache2/localhost-access_log" common


DocumentRoot "/Users/username/work"
ServerName mysites
ErrorLog "/private/var/log/apache2/sites-error_log"
CustomLog "/private/var/log/apache2/sites-access_log" common

Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order deny,allow
Allow from all


同样上面的username换成你自己的名字

保存(:wq)退出,并重启Apache, sudo apachectl restart
4.修改hosts配置文件
打开hosts配置文件
sudo vi /etc/hosts
加入"127.0.0.1 dev.yoursites.com",
另外提一种利用软连接来快速访问一个目录的方法

使用场景是在桌面创建一个practice 文件夹,里面会分类放一些平时简单小练习和测试用代码。

具体的步骤:((下面用到username的地方都改为你自己的名字))
  1.在桌面创建一个新的文件夹practice: mkdir /Users/username/Desktop/parctice
  2.更改practice文件的权限 chmod 755 /Users/username/Desktop
  3.进入apache的根目录中 cd /Library/WebServer/Documents
  4.创建一个project文件夹 mkdir project
  5.更改该文件夹的权限 sudo chown username:staff project
  6.进入该文件件下 cd project
  7.建立一个通往桌面的软连接: ln -s /Users/username/Desktop/practice .
  8.在桌面的practice文件夹中写一个test.php文件,在浏览器中打开 http://localhost/project/test.php

另外由于权限问题,我们需要更改下apache配置文件中的所属用户组

User yourusername

Group staff

你可能感兴趣的:(PHP You don't have permission to access / on this server.)