wp-config.php書き込みエラーをファイル手動作成せず解消する方法
はじめに
WordPress構築時にwp-config.phpの書き込みエラーが発生した際、wp-config.phpを手動で作成せずに解消する方法について説明します。
wp-config.phpの書き込みエラーとは
wp-config.phpの書き込みエラーとは、WordPress初期構築時に、WordPressの管理画面でDB情報入力後に発生するエラーです。

ファイル wp-config.php に書き込めませんでした。
手動で wp-config.php を作成し、中に次のテキストを貼り付けることができます。
とあるように、手動でWordPressのインストールフォルダ直下にwp-config.phpファイルを作成・配置すれば事象は解消しますが、それで直ったところで不安を覚える方もいると思いますので、手動作成せずに解消する方法をご説明します。
wp-config.phpの書き込みエラー解消方法
アクセス権限の付与の確認・見直し
一番の要因として考えられるのは、wp-config.phpファイルを作成するディレクトリに対して、WordPressを動作させているApacheのユーザーが書き込み権限を持っていないことが挙げられます。
Apacheの実行ユーザーの確認
Apacheの実行ユーザーはhttpd.confファイルから確認することができます。
#
# If you wish httpd to run as a different user or group, you must run
# httpd as root initially and it will switch.
#
# User/Group: The name (or #number) of the user/group to run httpd as.
# It is usually good practice to create a dedicated user and group for
# running httpd, as with most system services.
#
User apache
Group apache
上記のUserとGroupがApache実行ユーザーのユーザー名とグループ名になります。ここではユーザー名とグループ名は’apache’
アクセス権限の確認
次にWordPressのディレクトリの権限を確認します。
前述の手順で確認したApache実行ユーザーに書き込み権限が付与されていれば問題ありません。
[root@wpserver html]# [root@wpserver html]# cd /var/www/html
[root@wpserver html]# ll
total 12192
-rwxrwxrwx. 1 apache apache 12479892 Jan 2 05:00 latest-ja.tar.gz
drwxrwxrwx. 5 apache apache 4096 Jan 2 05:00 wordpress
アクセス権限の設定
上記の例ではアクセス権限が正しく設定されていますが、アクセス権限が正しく付与されていない場合は再設定しましょう。
chown -R apache:apache *
chmod -R 777 /var/www/html
777は便宜的に設定しているだけなので、設定するアクセス権限については各環境のセキュリティーポリシーに応じて設定してください。
selinuxの無効化
アクセス権限の見直しをしても事象が改善しない場合、selinuxが有効となっていることが原因です。
selinuxの確認
selinuxが有効になっているか確認します。
[root@wpserver html]# getenforce
Enforcing
上記のようにEnforcingと表示されれば有効化されている為、無効化する必要があります。
selinuxの無効化
selinuxの設定ファイルを開きます。/etc/selinux/config。
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=enforcing
# SELINUXTYPE= can take one of these three values:
# targeted - Targeted processes are protected,
# minimum - Modification of targeted policy. Only selected processes are protected.
# mls - Multi Level Security protection.
SELINUXTYPE=targeted
SELINUX=enforcingの値をdisabledへ書き換えます。
SELINUX=disabled
サーバーの再起動
設定ファイルの編集が完了したらサーバーを再起動します。
selinuxの再確認
修正が完了したら改めてselinuxのステータスをgetenforceコマンドで確認し、disabledと表示されれば完了です。
[root@wpserver html]# getenforce
Disabled
終わりに
ここまで対応しても事象が改善しない場合、通常の方法では解消できないと思いますので、wp-config.phpファイルを手動作成・配置することをオススメします。
なお、DBの設定情報に誤りがある場合、以下のように異なるエラーメッセージが表示される為、DB設定情報誤りは考慮する必要はありません。

では、良いWordPress生活をお楽しみください。