因为自己需要使用服务器环境,mac自带了apache所以就配置一下,因为默认工作目录是根目录下的/Library/WebServer/Documents/,所以我就想把他配置到用户目录下:
然后就照着网上的教程一步步配置完成
下面是网上大多数的配置教程
1.vi /etc/apache2/httpd.conf
找到与下面对应的代码行并去掉前面的#
LoadModulephp5_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
2.vi /etc/apache2/extra/httpd-userdir.conf
找到如下所示代码去掉前面的#
Include /private/etc/apache2/users/*.conf
3.vi /etc/apache2/httpd.conf
找到如下所示代码:
<Directory ></Directory>
AllowOverride none
Require all denied
</Directory>
修改成如下所示:
<Directory ></Directory>
AllowOverride none
Require all granted
</Directory>
4.创建用户配置文件(此文件有可能已经存在,但是最好还是检查下权限及内容)
cd /etc/apache2/users 进入到这个目录下创建用户配置文件,执行下面的命令:
vi username.conf (注意:username对应你自己的用户名)
请务必保证该文件具有执行权限
可以用sudo chmod 755 username.conf 设置权限
文件写入以下内容:
<Directory "/Users/donghao/Sites/">
Options FollowSymLinks Indexes MultiViews
AllowOverride All
Order allow,deny
Allow from all
</Directory>
5.创建用户目录
mkdir ~/Sites
在这个目录下创建一个测试页面index.html
写入一些内容,在这里我写的是‘123’
6.重启apache
重启apache:sudo apachectl restart
访问:http://localhost/~username/ , 显示:“123”,说明配置成功!
7.下面是我遇到的问题
按照上面的步骤我修改好了配置文件之后,发现还是不行,提示服务器拒绝了我的请求,然后查了半天资料,终于找到一个有用的命令:apachectl configtest
我这里运行结果如下图:
然后查看找不到文件的目录,发现确实没有这个文件,但是有一个名字和这个类似的文件 libphp7.so
然后再回过头去看httpd.conf找到引用libphp5.so的这行,正好是我在第一步去掉注释的一行,第一行是原来的,第二行是修改后的然后重启apache,成功运行
#LoadModule php5_module libexec/apache2/libphp5.so
LoadModule php7_module libexec/apache2/libphp7.so
,我们修改它:
值得注意的是:有可能有时候配置明明是对的,但是重启了,还是不行,可以多重启几次。