質問: ###### 環境 mysql 8.0.16 PHP 7.3.6 Apache 2.4系 CentOS 7.6.1810 WordPress 5.2.2 ##### 設定ファイル * httpd.conf ``` ... LoadModule rewrite_module modules/mod_rewrite.so ... User apache Group apache ... IncludeOptional conf.d/*.conf ``` * conf.d/hoge.conf (80番ポートのVirtualHost設定) ``` ProxyTimeout 300 NameVirtualHost *:80 ServerName hogehoge1.com ... ServerName hogehoge2.com DocumentRoot /var/www/hoge2/ AllowOverride All Require all granted ... ``` * conf.d/fuga.conf (443番ポートのVirtualHost設定) ``` ... NameVirtualHost *:443 ServerName hogehoge1.com ... #SSLの設定 ... ServerName hogehoge2.com DocumentRoot /var/www/hoge2/ AllowOverride All Require all granted ... #SSLの設定 ... ``` ##### 動作確認 mod_rewriteは機能しています。 https化も出来ています。 https://hogehoge2.comにも、https://hogehoge2.com/blogのどちらにもアクセスできます。 httpの場合も同様です。 AllowOverrideが機能していることも(.htaccessにより)確かめました。 問題点1 ---- ###### wp-config.phpについて ・DocumentRootのサブディレクトリ(/var/www/hoge2/blog)にWordPressをインストール ・https://hogehoge2.com/blogにアクセスしデータベース設定を入力 ・送信ボタン押下 ここでエラー ![イメージ説明](https://teratail-v2.storage.googleapis.com/uploads/contributed_images/dfbedcf7291f75bde992caff07d38bf4.png) ###### 試したこと ・/var/www/hoge2/blog以下の所有者をapache:apacheに変更 ・/var/www/hoge2/blog以下のアクセス権を700に変更 もう一度試してみるも同じエラー ・/var/www/hoge2/blog以下のアクセス権を777に変更 もう一度試してみるも同じエラー ・SELinuxの権限を変更 ``` $restorecon -RvF /var/www/hoge2/blog ``` もう一度試してみるも同じエラー ・/var/www/hoge2以下の所有者をapache:apacheに変更 ・/var/www/hoge2以下のアクセス権を700に変更 もう一度試してみるも同じエラー ・/var/www/hoge2以下のアクセス権を777に変更 もう一度試してみるも同じエラー ・SELinuxの権限を変更 ``` $restorecon -RvF /var/www/hoge2 ``` もう一度試してみるも同じエラー WordPressのバージョンを5.2.1、5.1.1に変更し、上記を試してみるも同じエラー ###### 仮の措置 /var/www/hoge2/blogに直接wp-config.phpを作成し、エラーに記述されていたテキストを貼り付けてインストールを実行し、インストールをすることはできました。しかし、原因の特定はできていません。 ### 問題2 ###### パーマリンク設定について ・パーマリンク設定で共通設定を変更し、「変更を保存」を押下すると以下が表示される ![イメージ説明](https://teratail-v2.storage.googleapis.com/uploads/contributed_images/a3ebb60b9dd86e86d0ba8011a405ec27.jpeg) ・もう一度「変更を保存」を押下する(空保存?)と以下が表示される ![イメージ説明](https://teratail-v2.storage.googleapis.com/uploads/contributed_images/2534a4fa5854cef661dc6a8dbf3df35e.jpeg) ##### 試したこと 問題1と同様のことを試してみましたが変化しませんでした ### 問題3 ##### SiteGuardについて ・インストールし、有効化 ここで、本来自動的にONになるはずのログインページ変更がONにならず、手動でONにしようとしても以下のエラーが表示され、ログインページを変更できません。 ![イメージ説明](https://teratail-v2.storage.googleapis.com/uploads/contributed_images/9dddf7d8062be2e9a38ecb9a71fa9be5.jpeg) ##### 試したこと 問題1と同様のことを試してみましたが変化しませんでした この3つの問題は書き込み権限が問題だと思うのですが、どこをどう設定すれば治るのかわかりません。 ご教授いただけると助かります。 よろしくお願いいたします。 ### 追記 ファイルをいじるために権限は755にしてありますが、試したのは700、777です。 /var/www/hoge2/の権限 ![![イメージ説明](https://teratail-v2.storage.googleapis.com/uploads/contributed_images/c0f881cd0cc4107b35e22acf9e32bdad.png)](d370f6c0a0881364eaaabaa6723d0951.png) /var/www/hoge2/blogの権限 ![イメージ説明](https://teratail-v2.storage.googleapis.com/uploads/contributed_images/8da66bca5e404107baa1211287dc0822.png)
回答: SELinuxでのタイプがhttpd_sys_content_tになっていました。 httpd_sys_content_tでは読み込み権限のみだったことが原因です。 ``` $semanage fcontext -a -t httpd_sys_rw_content_t "/var/www/hoge2/blog(/.*)?" $restorecon -RvF /var/www/hoge2/blog ``` で解決できました。