私はチュートリアルに従っていますhttps://www.digitalocean.com/community/tutorials/how-to-install-wordpress-on-centos-7(すべての前提条件のチュートリアルとともに) 新しい CentOS7 サーバーに WordPress をセットアップします。 ここまではすべて正常に動作しています。
sudo chown -R apache:apache /var/www/html/*
上記のコマンドは、Apache ユーザーとグループに所有権を割り当てることを理解しています。ただし、通常は、自分のmyuser
アカウントを使用して putty と Filezilla 経由で接続し、そのアカウントの権限を有効にしたいと考えています。
上記のコマンドに加えて、グループmyuser
に追加しapache
てログアウトし、再度ログインしましたが、html フォルダーで CRUD 操作を実行しようとすると、アクセス許可が拒否されたというエラー メッセージが引き続き表示されます。ただし、コマンドを昇格するとsudo
機能するので、アカウントにファイル操作の実行を許可する方法が少しわかりませんmyuser
。何かアイデアはありますか?
答え1
所有権、権限、およびselinuxコンテキストの両方を確認する必要があります。
所有権 - 正しいようです。CentOS7 の Owner:Group は apache:apache になります。ユーザーの場合は、補助グループとして apache を追加する必要があります。 でこれを確認できますid myuser
。apache がグループのリストに表示されない場合は、 を実行しますusermod -a -G apache myuser
。
権限 - rwxrwxrwx としてリストされます。rwx の中間のセットは、グループ経由でアクセスを制御するため重要な部分です (myuser にとって重要なことです)。おそらく読み取り/書き込み権限のみが必要なので、a でchmod -R 664 directoryname
十分でしょう (apache ユーザーとグループには読み取り/書き込み、その他すべてのユーザーには読み取り専用)。権限は で確認できますls -l
。
注意: WordPress には通常、隠しファイル「.htaccess」が含まれています。再帰的な chmod / chown ではこれらのファイルがスキップされるため、そのファイルとその他の隠しファイルに手動で chmod を適用する必要があります。
SELinux コンテキスト - これらは で確認できますls -Z
。SELinux の強制をオフにするには、 を実行しますsetenforce 0
- これは SELinux が原因かどうかをデバッグするのに適していますが、 を使用したテストが完了したら、 をオンに戻す必要がありますsetenforce 1
。SELinux が問題である場合、おそらく必要なのは、次のような方法でファイルのコンテキストを変更することです。chcon -R -t httpd_sys_rw_content_t directoryname
注: 再帰 chcon は隠しファイル (「.」で始まるファイル) もスキップします。
補足: シンボリックリンクを使用している場合は、リンク先のディレクトリと実際のシンボリックリンク自体の両方に適切な所有権と権限があることを確認する必要があります。chmod / chown でシンボリックリンクをターゲットにするには、フラグを使用し-h
、ディレクトリをターゲットにする場合は、末尾のスラッシュがないことを確認してください (例:/var/www/html/linked_dir
およびなし/var/www/html/linked_dir/
- タブ補完を使用する場合は、末尾のスラッシュが自動的に追加されるので注意してください)。