質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

Q&A

解決済

1回答

3782閲覧

VirtualHostのサブディレクトリでWordPressを使用したい

watter

総合スコア15

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

0グッド

0クリップ

投稿2019/07/07 15:34

編集2019/07/08 09:54

VirtualHostのサブディレクトリでWordPressを使用したい

######環境
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 <VirtualHost *:80> ServerName hogehoge1.com ... </VirtualHost> <VirtualHost *:80> ServerName hogehoge2.com DocumentRoot /var/www/hoge2/ <Directory "/var/www/hoge2/"> AllowOverride All Require all granted </Directory> ... </VirtualHost>
  • conf.d/fuga.conf (443番ポートのVirtualHost設定)
... NameVirtualHost *:443 <VirtualHost *:443> ServerName hogehoge1.com ... #SSLの設定 ... </VirtualHost> <VirtualHost *:443> ServerName hogehoge2.com DocumentRoot /var/www/hoge2/ <Directory "/var/www/hoge2/"> AllowOverride All Require all granted </Directory> ... #SSLの設定 ... </VirtualHost>

#####動作確認
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にアクセスしデータベース設定を入力
・送信ボタン押下
ここでエラー
イメージ説明

試したこと

・/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

######パーマリンク設定について
・パーマリンク設定で共通設定を変更し、「変更を保存」を押下すると以下が表示される
イメージ説明
・もう一度「変更を保存」を押下する(空保存?)と以下が表示される
イメージ説明

#####試したこと
問題1と同様のことを試してみましたが変化しませんでした

###問題3
#####SiteGuardについて
・インストールし、有効化
ここで、本来自動的にONになるはずのログインページ変更がONにならず、手動でONにしようとしても以下のエラーが表示され、ログインページを変更できません。
イメージ説明

#####試したこと
問題1と同様のことを試してみましたが変化しませんでした

この3つの問題は書き込み権限が問題だと思うのですが、どこをどう設定すれば治るのかわかりません。
ご教授いただけると助かります。
よろしくお願いいたします。

###追記
ファイルをいじるために権限は755にしてありますが、試したのは700、777です。

/var/www/hoge2/の権限
イメージ説明

/var/www/hoge2/blogの権限
イメージ説明

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

CHERRY

2019/07/07 21:18

Web サーバーのログには、どのようなメッセージが記録されていますか?
CHERRY

2019/07/08 02:04

ls -la /var/www/hoge2/ や ls -la /var/www/hoge2/blog/ で、パーミッションは、問題ないですか? 可能であれば、WordPress ディレクトリだけでも結果を質問に追記していただければと思います。
watter

2019/07/08 09:58

遅くなってしまい申し訳ありません。 wp-configを作成できないエラーについてはapacheのerror_logに以下のエラーが出力されていました。 Unknown column 'wp_' in 'field list' for query SELECT wp_, referer その他のエラーについては、error_log、ssl_error_logを確認しましたが何も出力されていませんでした。また、WordPressのDebug.logを作成する設定にしていましたが作成されていませんでした。
CHERRY

2019/07/10 00:23

SELinux も疑われているようですが、 ` setenforce 0 ` を実行して、SELinux を一時的に permissive にした場合は、問題なく動作するのでしょうか? SELinux を permissive にしても状況が変わらない場合は、 SELinux ではない部分で問題が発生していると思います。 また、SELinux 関係のログは、 /var/log/audit/audit.log に有ると思いますので、ログファイルを確認して、` avc: denied { XXXXXX } for pid=XXXX comm="httpd" ` のようなアクセス拒否が発生していないかを確認することで、 SELinux が原因か判別も可能と思います。
watter

2019/07/13 15:05

SELinuxが原因でした。 解決できました。 的確なご指示、ありがとうございました。
guest

回答1

0

自己解決

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

で解決できました。

投稿2019/07/13 15:05

watter

総合スコア15

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問