ユーザーディレクトリをWeb共有で再び機能させるにはどうすればよいですか?


26

私はライオンに対応のWeb共有とのウェブサイト持っていたhttp://localhost/~useruser私のユーザーディレクトリです。Mountain Lionにアップグレードしたとき、Web共有(Apache)は有効のままでした。ローカルホストに移動して、「動作します!」デフォルトのウェブページですが、ユーザーページにアクセスできなくなりました。エラーは

禁じられた

このサーバーの/〜user /にアクセスする権限がありません。

ユーザーディレクトリのWebページを再度有効にするにはどうすればよいですか?

回答:


18

ここでは、ターミナルを使用してコマンドラインでWebページを再度有効にする方法を示します。

最初にこれをコピーして、ターミナルに貼り付けます。あなたは押す必要があるかもしれません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ファイルの名前にも必要です。それにも関わらず、$(ベース名〜)も同様に動作するはずです
nohillsideを

1
これとは少し違うことをしました。セットアップ用のカスタムソリューションを作成するのに役立つ情報をindivに感謝します。「$ USER_DIR」の代わりに「*」を付けて/etc/apache2/extra/httpd-userdir.confに「ディレクトリ」ブロックを追加しました。これにより、「サイト」ディレクトリを持つすべてのユーザーのユーザーディレクトリが有効になります。
ジェイソン

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

以下は、macOSの組み込みapacheサーバーを有効にし、ユーザーフォルダーのSitesディレクトリを使用できるようにする1行のターミナルコマンドです。この記事の執筆時点での最新バージョンの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"

†まあ、それは本当に長くても、技術的には 1行です...



0

Mountain Lionは、ユーザーディレクトリへのWebアクセスを提供する構成ファイルを削除します。構成ファイルはにあり/etc/apache2/users/ます。不足しているのはuser.confで、userは短いユーザー名です。

コマンドラインをいじりたくない場合は、ユーザー用の設定ファイルを作成するために実行できるApplescriptがあります。システムレベルのディレクトリにファイルを作成する必要があり、昇格した特権が必要なため、パスワードを要求します。

アプリケーションフォルダーまたはLaunchpadで、を開き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

スクリプトが終了すると、ユーザーレベルのWebページにアクセスできるようになります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.