wp-config.php書き込みエラーをファイル手動作成せず解消する方法

はじめに

WordPress構築時にwp-config.phpの書き込みエラーが発生した際、wp-config.phpを手動で作成せずに解消する方法について説明します。

wp-config.phpの書き込みエラーとは

wp-config.phpの書き込みエラーとは、WordPress初期構築時に、WordPressの管理画面でDB情報入力後に発生するエラーです。

Wp error 01

ファイル 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設定情報誤りは考慮する必要はありません。

Wp error 03

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