Answers:
这是使用终端使用命令行重新启用网页的方法。
首先将其复制并粘贴到Terminal中。enter粘贴后可能需要按一下才能运行它。它将要求您输入密码,因为它正在将文件添加到系统目录中。
USER_DIR=$(basename $(echo ~))
sudo bash -c "cat > /etc/apache2/users/$USER_DIR.conf" <<TEXT
<Directory "/Users/$USER_DIR/Sites">
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>
TEXT
然后运行以下命令以重新启动Web服务器:
sudo apachectl restart
这是一个单行† terminal命令,它将启用macOS的内置apache服务器,并允许您使用User文件夹中的Sites目录。它与撰写本文时的最新版本的macOS(Mojave)兼容,并且还经过测试可与Sierra和High Sierra一起使用。我怀疑它也可以与其他版本一起使用-我已尽力以面向未来的方式编写它。
mkdir ~/Sites ; sudo bash -c "printf '<Directory \"/Users/`whoami`/Sites/\">\n\tAddLanguage en .en\n\tAllowOverride All\n\tOptions Indexes MultiViews FollowSymLinks\n\tRequire all granted\n</Directory>' > /etc/apache2/users/`whoami`.conf ; echo 'AddDefaultCharset utf-8' >> /etc/apache2/httpd.conf ; sed -i '' '/LoadModule userdir_module libexec\/apache2\/mod_userdir.so/s/^#*//g' /etc/apache2/httpd.conf ; sed -i '' '/LoadModule php[0-9]_module libexec\/apache2\/libphp[0-9].so/s/^#*//g' /etc/apache2/httpd.conf ; sed -i '' '/Include \/private\/etc\/apache2\/extra\/httpd-userdir.conf/s/^#*//g' /etc/apache2/httpd.conf ; sed -i '' '/Include \/private\/etc\/apache2\/users\/\*.conf/s/^#*//g' /etc/apache2/extra/httpd-userdir.conf ; apachectl start"
†好吧,从技术上讲这是一条线,即使它真的很长...
请参阅/apple//a/57555/9058,基本上,您必须手动启用每个用户的网络共享(使用Terminal.app)。
Mountain Lion删除了配置文件,该文件允许通过Web访问您的用户目录。配置文件位于中/etc/apache2/users/
。缺少的是user.conf
,其中user是您的短用户名。
如果您不想摆弄命令行,可以使用以下Applescript来为用户创建配置文件。它将要求您输入密码,因为它必须在系统级目录中创建文件并需要提升的特权。
在您的应用程序文件夹或启动板中,打开Other > Applescript Editor
。复制下面的脚本,并将其粘贴到Applescript编辑器的文本区域中。然后单击运行按钮。
set userHome to (short user name of (system info))
set configFile to "/etc/apache2/users/" & userHome & ".conf"
set configFileContents to "<Directory \"/Users/" & userHome & "/Sites/\">
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>"
do shell script "echo '" & configFileContents & "' > " & configFile with administrator privileges
do shell script "/usr/sbin/apachectl restart" with administrator privileges
脚本完成后,您应该可以访问用户级别的网页。