私はMacの世界に不慣れで、ウェブサーバーをセットアップしています。以下のガイドを使用しました: https://alan.ivey.dev/posts/2011/os-x-10.7-lion-development-native-mamp-with-mysql-installer/
サイトとデータベースを転送しましたが、すべて順調に進んでいます。私が持っている唯一の問題は、書き込み権限にあります。たとえば、書き込みが必要な構成ファイルがあり、右クリックして[情報を見る]に移動し、スタッフと全員に対して読み取りと書き込みを有効にする必要がありました。
すべてのファイル/フォルダーに対してこれらの書き込み権限を手動で実行して有効にすることはできません。 WAMPを使用してこれを行う必要がなかったため、開発を大幅に迅速化できました。
したがって、考えられる2つの解決策について考えます:a)ローカルホストのホワイトリストにユーザーアカウントを追加して、644の特権で十分ですb)書き込み特権を再帰的に設定します
最良の解決策は、Apacheのユーザーとグループの設定を変更することでした。手順は次の場所にあります http://paulmason.name/item/change-Apache-user-group-in-lion-os-x
ターミナルを開いて入力
Sudo nano /private/etc/Apache2/httpd.conf
Http.confコードを見つけて変更します
User _www
Group _www
に
User your_mac_username
Group staff
注:Leopardなどの以前のバージョンでは、スタッフを大文字に変換します。 「id」と入力してターミナルでEnterキーを押すと、ユーザー名とグループを取得できます
Apacheを再起動します
Sudo apachectl restart
上記のブログ投稿の作成者です。 Webサーバーのファイル権限については、_wwwユーザーにファイルの書き込みアクセス権を付与する必要があります。 config.inc.phpの場合、いくつかの方法で設定します。
_wwwにファイルを所有させ、書き込み権限を与えます。
$ Sudo chown _www config.inc.php
$ chmod u+w config.inc.php
ユーザーにファイルを所有させ、グループを_wwwに変更して、グループに書き込み権限を付与します。
$ Sudo chgrp _www config.inc.php
$ chmod g+w config.inc.php
または、セキュリティ上の理由からお勧めしませんが、すべてのユーザーに書き込みを許可してもかまわない場合は、すべてのユーザーに書き込み権限を付与します。
$ chmod a+w config.inc.php
_wwwユーザーがフォルダー全体を書き込む必要がある場合は、フォルダーとすべてのファイルを所有できます。
$ Sudo chown -R _www:_www folder/
または、フォルダに書き込み権限と実行権限をすべて付与することもできます。
$ chmod a+wx folder/
chmod 774
が禁止されたエラーを表示した理由は、_wwwユーザーが「4」権限(「読み取り専用」)に該当したためです。ディレクトリの場合、ユーザーはフォルダに移動するために「実行」する必要があります。 chmod 775
は、ユーザーとグループにrwxを許可し、他のユーザーとグループにr-xを許可します。 nixファイルのアクセス許可に関する詳細情報 。
また、アクセス制御リストを使用してすべてのユーザーのアクセスレベルを変更する代わりに、ユーザーが完全な所有権を保持し、_wwwユーザーに特定の権限を追加することもできます。
$ Sudo chmod -R +a '_www allow read,write,delete,add_file,add_subdirectory,file_inherit,directory_inherit' folder
$ Sudo chmod +a '_www allow read,write' config.inc.php
ACLのルートを使用する場合は、もう少し読んで、実際に提供する必要があるアクセスのレベルを確認することをお勧めします。 ここから始めるのに最適な場所 。
私はOSXでApacheを実行していますが、これで修正されました。
_Sudo chown -R _www:_www <mywebfolder>
Sudo chmod -R 775 <mywebfolder>
_
アップデート#1:
構文:_Sudo chown <user>:<group> <file-or-folder>
_。 OSXのApacheユーザーは__www
_です。
所有権は保持するがApache r-w-x権限を付与するには:
_Sudo chown -R <your-username>:_www <mywebfolder>
Sudo chmod -R 775 <mywebfolder>
_
アップデート#2:
私はこの方法が一番好きです。 Apacheを実行するように設定します。
端末でid
と入力してuid=123(Myname)
を取得します。
/etc/Apache2/httpd.confを開き、ユーザー名を使用するように編集します。
_<IfModule unixd_module>
User Myname
Group staff
</IfModule>
_
ターミナルに戻る:_Sudo apachectl restart
_
書き込み権限を再帰的にWebルートに設定することをお勧めします。
コンソール/ターミナルからchmod -R 774 /my/web/root
を使用してこれを行うことができます。私の場合、所有者とグループはwww-data:myUserName
に設定されています。これは、chown
を使用して設定できます。最初にWebユーザーを確認することを忘れないでください。
編集:理解を深めるために、アクセスできない理由:
Chmod 774、各番号は特定の権利を表します:ユーザー、グループ、その他。ユーザーがwww-data
に設定され、グループがwww-data
に設定されている場合(UNIXシステムのほとんどのユーザーは、ユーザー名で名前が付けられたグループに属しています)。したがって、グループwww-data
に参加していない場合は、グループに参加するか、所有者を変更する(chown)か、権限を変更する(chmod)必要があります。詳細については、いくつかのチュートリアルがあります。