ApacheがmacOS 10.13 High Sierraのユーザーサイトフォルダーで機能しない


8

私はこのガイドに従って、ApacheをHigh Sierraにセットアップしました:https : //coolestguidesontheplanet.com/get-apache-mysql-php-and-phpmyadmin-working-on-macos-sierra/

私はそれをシエラに設置するのに使いました。

しかし、アクセスするhttp://localhost/~scott/と、「禁止されています。このサーバーの/〜scott /にアクセスする権限がありません。」と表示されます。

この同様の質問に対する提案:macOS High Sierraのlocalhost / userdirはvhostsをロードすることです。私は試しましたが、それでも「禁止」されます。

シエラとハイシエラの間で、Apacheがユーザーのサイトフォルダーを操作できなくなるような変更はありますか?


試してapachectl configtest、出力を更新する
Rakesh kumar 2017年

返品Syntax OK
sfyfedotcom 2017年


「禁止されています。このサーバーの/〜scott /にアクセスする権限がありません。」
sfyfedotcom 2017年

回答:


8

これは、同じ問題に遭遇したときにうまくいきました。

「/private/etc/apache2/extra/httpd-userdir.conf」ファイルを確認してください。

変化する

#Include /private/etc/apache2/users/*.conf

Include /private/etc/apache2/users/*.conf

そしてApacheを再起動します。

送信元:https : //stackoverflow.com/questions/39631351/apache-localhost-403-forbidden-with-macos-sierra


その行/private/etc/apache2/extra/httpd-userdir.confは、私がたどった命令リンクから、すでにコメントが外されています。
sfyfedotcom 2017

Apacheを再起動しましたか "sudo apachectl restart"
Robert

はい。Apacheの構成ファイルへのすべての変更を完了しました
sfyfedotcom

4

サイトディレクトリへのアクセスを許可するには、以下をに追加する必要があります/etc/apache2/httpd.conf

<DirectoryMatch "/Users/.*/Sites">
  Require all granted
</DirectoryMatch>

デフォルトのApache設定は/で拒否されるように設定さているため、すべてへのアクセスを明示的に許可する必要があります。


Apacheを追加して再起動しました。違いはありませんでした
sfyfedotcom 2017年

私も同じ問題を抱えていました。「うまくいきました!」locahostでは、ユーザーディレクトリを機能させることができませんでした。このようにDirectoryMatchルールを修正することで解決しました。ありがとう!
Karra

4

Diogo Limaの答えに拡張します。

High Sierraへのアップグレードにより、Appleは以前のapache設定のコピーを作成し、/ etc / apache2と/ etc / apache2 / extraフォルダーの両方の* .confファイルに〜previousを追加しました。仮想ホストまたはssl-virtualホストを使用している場合は、それらの.confファイルの以前のバージョンも移動する必要があります。

mv /etc/apache2/extra/httpd-vhosts.conf~previous /etc/apache2/extra/httpd-vhosts.conf
mv /etc/apache2/extra/httpd-ssl.conf~previous /etc/apache2/extra/httpd-ssl.conf

これはHigh Sierraのクリーンインストールだったので、以前の構成ファイルはありませんでした
sfyfedotcom

だから、明確にするために、あなたはそれをシエラで動作させていましたが、アップグレードをしませんでしたが、完全なクリーンインストールですか?Sierraで動作するように設定したときに、Sitesフォルダーから/ Library / WebServer / Documentsフォルダーへのシンボリックリンクを作成し、自分にアクセス許可(読み取りと書き込み)を付与したことを確認しました。この段階では単にアクセス許可の問題のように思われるので、シンボリックリンクを作成してアクセス許可を変更しましたか?
James Martin

それは正解です。私は常に新しいmacOSバージョンのクリーンインストールを行います。私はそれを行うことができます認識してんだけど、私は両方を維持したい/Library/WebServer/DocumentsUsers/username/Sitesそれは私が最後の10年以上のためのMacOS上で行うことができましたものだとして、Webプロジェクトのための別の場所として。
sfyfedotcom 2017年

したがって、同じマシンでApacheの2つの個別のインスタンスを実行する必要があるように見えますが、単一のインスタンスから実行したときにApacheが提供するWebサイトの負荷分散の目的全体を無効にしないのではないでしょうか。Appleのベストプラクティスの推奨事項は、Users / username / Sitesを使用せずにLibrary / Webserver / Documentsを使用することです
James Martin

単一のApacheインスタンスは、複数のディレクトリからWebプロジェクトを読み取るケーブルです。それは私が何年もそれをセットアップしてきた方法です。
sfyfedotcom 2017年

3

上記の方法をすべて試しても、localhostにアクセスするときに「禁止」される場合は、/ etc / apache2 / extra / httpd-vhosts.confに仮想ホストを追加してみてください

追加:

<VirtualHost *:80>
ServerName localhost
DocumentRoot /Library/WebServer/Documents/
</VirtualHost>

その後、Apacheを再起動します。

https://coolestguidesontheplanet.com/set-up-virtual-hosts-in-apache-on-macos-high-sierra-10-13/

私にとってはうまくいきます



1

今朝更新されました。/ Users / usernameのSitesフォルダーを使用します。

以前のバージョンのhttpd.conf、httpd-userdir.confおよびhttps-vhosts.confをバックアップして置き換えました。

実行しsudo apachectl configtestてPHPエラーが発生しました(PHPはHigh Sierraで7に更新されました)。PHP7を起動するようにhttp.confを編集すると、すべてが再び機能するようになります。


+1はメモを含めるsudo apachectl configtest
デビッドC

1

可能な解決策(上記のすべての提案で失敗した後)。問題は、ホームディレクトリの許可にあります。グループ/その他に対して実行可能である必要があります。

sudo chmod go + x / Users / username

ここで、「username」は実際のユーザー名に置き換えられます。この後、動作します!


0

ふew!私はそれを自分で考え出した。

次の手順を実行します

ステップ1:ターミナルを開いて、以下のコマンドを実行

sudo atom /etc/apache2/httpd.conf

そして、その"#"前のサインを削除して、ラインのコメントを外します

LoadModule php7_module libexec/apache2/libphp7.so

手順2:以下のコマンドを実行します

cd /private/etc

sudo cp php.ini.default php.ini

ステップ3:次に、/Library/WebServer/Documentsディレクトリに移動して、

sudo chown -R  root yourprojectname

Safariブラウザに戻り、次のように入力します "http://localhost/yourprojectname"

準備万端です。

MacOS High Sierra 10.13を使用していますが、昨日の朝に更新されました。


localhostからの実行/Library/WebServer/Documentsは問題なく動作しています。問題はlocalhost/~scottから実行されてい/Users/Scott/Sitesます。
sfyfedotcom 2017年

0

それを理解するために午前中ずっと過ごしましたが、最終的にはうまくいきました。これが誰かに役立つことを願っています。

私はガイドに従いましたが、若干の変更がありました。

これでlocalhostフォルダにアクセスできますが...

ハイシエラの前は次のようでした: http://localhost/~username/smomesite.local

今のようです: http://localhost/smomesite.local

もう~username必要ありません。


デフォルトのApache Webパスをユーザーフォルダーに変更したくありません。以前のバージョンのmacOSでは、Users/myname/Sitesディレクトリと/Library/WebServer/Documents
sfyfedotcom

0

私はこれと同じ問題を抱えていて、あなたが望んだことを正確に実行したいと思っていました(ルートを/ Library / WebServer / Documentsに維持しますが、ユーザーのSitesフォルダも許可します)。これが役立つかどうかはわかりませんが、今夜これを何時間も叩き、すべての.confファイルを1行ずつ確認し、何が問題なのか疑問に思ったところ、httpdプロセスが自分を読み取れなかったことがわかりました独自のユーザーディレクトリ。何らかの理由で750に設定され、_wwwユーザーはそれを読み取ることができません。「chmod 755」を実行して修正しました。私のユーザーディレクトリでは、Sitesフォルダーが表示されました。

私のユーザーディレクトリがどのようになっているのかわかりません。新しいユーザーを作成すると、デフォルトで755になっているようです。また、サイトフォルダが755に設定されていることを何度も確認していました。


ちょうどそれを試し、Apacheを再起動しました。それでも「禁止:このサーバーで/
〜username

0

私も同じ問題を抱えていました。以下の2行のコメントを外しました(別の応答ですでに提案されています)。

#LoadModule vhost_alias_module libexec/apache2/mod_vhost_alias.so 
#Include /private/etc/apache2/extra/httpd-vhosts.conf

しかし、それでも同じエラーが発生しました。私にとってのトリックは、httpd.confファイル内のこれらの追加行のコメントを外すことでした:

#LoadModule userdir_module libexec/apache2/mod_userdir.so 
#LoadModule include_module libexec/apache2/mod_include.so 
#LoadModule rewrite_module libexec/apache2/mod_rewrite.so

お役に立てば幸いです。


私はそれらの行のコメントを外しました
sfyfedotcom '14 / 11/17

0

更新により、以前のすべての構成がファイル.conf〜previousに移動したことが起こります。/etc/apache2/extra/httpd-userdir.conf~previousを/etc/apache2/extra/httpd-userdir.confに、/ etc / apache2 / extra / httpd.conf〜previousを/ etc / apache2 /に移動した場合extra / httpd.conf、それは以前のように動作するはずです。

mv /etc/apache2/extra/httpd-userdir.conf /etc/apache2/extra/httpd-userdir.conf~high-sierra
mv /etc/apache2/httpd.conf /etc/apache2/httpd.conf~high-sierra
mv /etc/apache2/extra/httpd-userdir.conf~previous /etc/apache2/extra/httpd-userdir.conf
mv /etc/apache2/httpd.conf~previous /etc/apache2/httpd.conf
apachectl restart

これはHigh Sierraのクリーンインストールだったので、以前の構成ファイルはありませんでした
sfyfedotcom 2017年

0

同じ問題がありました。解決は簡単でした。ここに投稿された回答を参照してください:https : //apple.stackexchange.com/a/306390/129503

今日の初めにHigh Sierraにアップグレードした後、私は同じことに直面しました。次のapacheファイルが新しいバージョンに置き換えられていることがわかりました。幸い、これらすべてのファイルについて、同じフォルダにFILE〜前のファイルが存在していました。以前のバージョンを元のバージョンにコピーし、Apacheを再起動したところ、すべて問題なく動作しました。

フォルダ内/etc/apache2

./httpd.conf
./extra/httpd-vhosts.conf
./extra/httpd-ssl.conf

例:

cp /etc/apache2/httpd.conf~previous /etc/apache2/httpd.conf

0

交換する

./httpd.conf
./extra/httpd-vhosts.conf
./extra/httpd-ssl.conf

古い〜前のファイルから。

httpd.confでphp5モジュールエラーが発生する可能性があります。php5をphp7に置き換えると、サイトが機能し始めます。

交換する

LoadModule php5_module libexec/apache2/libphp5.so

LoadModule php7_module libexec/apache2/libphp7.so

0

アップグレードしたばかりでまったく同じ問題が発生しました。私はvhostsを使用しません。私にとっての解決策は、

https.confコメントを解除

LoadModule userdir_module libexec/apache2/mod_userdir.so

LoadModule authz_host_module libexec/apache2/mod_authz_host.so

LoadModule authz_user_module libexec/apache2/mod_authz_user.so

LoadModule authz_core_module libexec/apache2/mod_authz_core.so

に次extra/httpd-user.confの行があることを確認します。

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