如何使我的用户目录重新用于网络共享?


26

我曾在狮子启用Web共享和网站http://localhost/~user,这里user是我的用户目录。当我升级到Mountain Lion时,Web共享(Apache)保持启用状态,并且我可以转到localhost并获取“它有效!” 默认网页,但我无法再访问用户页面。错误是

禁止的

您无权访问此服务器上的/〜user /。

如何重新启用用户目录的网页?

Answers:


18

这是使用终端使用命令行重新启用网页的方法。

首先将其复制并粘贴到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

抱歉,我的错,您也需要它作为conf文件的名称。不过,$(basename〜)应该也可以工作
nohillside

1
我做了一些与此不同的事情。感谢indiv提供的信息,这些信息可帮助我为设置创建自定义解决方案。我在/etc/apache2/extra/httpd-userdir.conf中添加了带有“ *”代替“ $ USER_DIR”的“目录”块。这将为具有“站点”目录的所有用户启用用户目录。
杰森

1

我必须在我的内容中添加FollowSymLinks以下内容/etc/apache2/users/username.conf

<Directory "/Users/username/Sites/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Allow from all
</Directory>

username必须替换为您的真实用户名)


1

这是一个单行 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"

†好吧,从技术上讲这是一条线,即使它真的很长...



0

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

脚本完成后,您应该可以访问用户级别的网页。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.