http://digitalshore.io/local-web-development-environment-apache-macos-sierra-10-12这是我用来设置apache服务器的指南。
我做了所有必要的事情,但我无法运行此命令
$ sudo cp httpd-userdir.conf httpd-userdir.conf.bak
来自终端的答案是"访问被拒绝"
所以,我决定不制作备份文件。当我完成进程时,我在浏览器中输入了这个进程
http://localhost/~username
,其中username是我的实际用户名。
得到了这个回应
禁止
您无权访问此服务器上的/〜用户名。
我跑了apachectl configtest
。得到了这个:
警告:DocumentRoot [/usr/docs/dummy-host.example.com]不存在 AH00112:警告:DocumentRoot [/usr/docs/dummy-host2.example.com]不存在 AH00557:http:apr_sockaddr_info_get()因MacBook-Pro-Tim.local而失败 AH00558:httpd:无法使用127.0.0.1可靠地确定服务器的完全限定域名。设置' ServerName'全局指令抑制此消息语法确定
我该怎么办?
答案 0 :(得分:9)
尝试http://localhost/directory/其中directory是您的sites文件夹中的文件夹。出于某种原因,在Seirra之前,这对我有用,http://localhost/~username/directory没有(很可能是我配置它的方式,不记得我是怎么做的,只是为了以防尝试)。
如果两者都不起作用,请在终端中尝试以下操作。
sudo nano /etc/apache2/users/username.conf;
在文件中添加此项。 旁注:此答案的下方和其他任何位置的用户名应为您的计算机用户名。
<Directory "/Users/username/Sites/">
AllowOverride All
Options Indexes MultiViews FollowSymLinks
Require all granted
</Directory>
保存更改。然后sudo chmod 644 username.conf
下一页:sudo nano /etc/apache2/httpd.conf
取消注释以下行(即删除每行前面的#,如果有的话)
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
LoadModule include_module libexec/apache2/mod_include.so
LoadModule rewrite_module libexec/apache2/mod_rewrite.so
LoadModule php5_module libexec/apache2/libphp5.so
Include /private/etc/apache2/extra/httpd-userdir.conf
然后sudo nano /etc/apache2/extra/httpd-userdir.conf
并取消注释第Include /private/etc/apache2/users/*.conf
行
保存并重启apache。 sudo apachectl restart
然后应该可以访问http://localhost/~username/。我刚刚完成了这些步骤,它对我有用。
参考:https://coolestguidesontheplanet.com/get-apache-mysql-php-and-phpmyadmin-working-on-macos-sierra/