美文网首页
PHP You don't have permissio

PHP You don't have permissio

作者: 30213be71330 | 来源:发表于2019-01-04 12:42 被阅读12次

    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
    然后将下面内容写到上面打开的文件中
    <Directory "/Users/username/Sites/">
    Options Indexes MultiViews
    AllowOverride All
    Order allow,deny
    Allow from all
    </Directory>
    (请将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
    找到
    <Directory /> AllowOverride none Require all denied </Directory>
    修改为:
    <Directory /> AllowOverride none Require all granted </Directory>

    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
    将以前的虚拟主机配置文件注释掉,以供参考,在它们每行前面加上#就可以了
    然后增加如下配置:
    <VirtualHost *:80>
    DocumentRoot "/Library/WebServer/Documents"
    ServerName localhost
    ErrorLog "/private/var/log/apache2/localhost-error_log"
    CustomLog "/private/var/log/apache2/localhost-access_log" common
    </VirtualHost>

    <VirtualHost *:80>
    DocumentRoot "/Users/username/work"
    ServerName mysites
    ErrorLog "/private/var/log/apache2/sites-error_log"
    CustomLog "/private/var/log/apache2/sites-access_log" common
    <Directory />
    Options Indexes FollowSymLinks MultiViews
    AllowOverride None
    Order deny,allow
    Allow from all
    </Directory>
    </VirtualHost>
    同样上面的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 permissio

          本文链接:https://www.haomeiwen.com/subject/ihdtbftx.html