WordPressを動作させるにはApacheのようなWebサーバーやMySQLのようなデータベースが必要です。これらのサーバーの設定を記述するファイルが「wp-config.php」です。
「wp-config.php」では、サーバーの設定のほか、WordPressの動作を制御するような設定も記述できます。この記事では「wp-config.php」で設定できる内容と避けるべき危険なバックアップ方法について解説します。
「wp-config.php」ファイルとは
WordPressの「wp-config.php」ファイルとは、WordPressの各種設定が記述されている重要なファイルです。レンタルサーバーの簡単インストール機能などを使ってWordPressをインストールすると、自動的に作成されることが多いファイルです。
しかしインストール後にWordPressの設定を変更するときに、直接編集する機会もあります。正確に記述しないと、WordPressが動作しなくなることもあるため、編集時は慎重に作業しなければなりません。
「wp-config.php」で設定できること
ここでは「wp-config.php」ファイルで設定できる各種項目について解説します。
データベースに関する設定
まずデータベースの設定です。データベースの設定はWordPressのインストール時にブラウザ上で行われますが、wp-config.phpを直接編集して設定することも可能です。
/** WordPress のためのデータベース名 */
define( 'DB_NAME', 'database_name' );
/** MySQL データベースのユーザー名 */
define( 'DB_USER', 'username' );
/** MySQL データベースのパスワード */
define( 'DB_PASSWORD', 'password' );
/** MySQL のホスト名 */
define( 'DB_HOST', 'localhost' );
レンタルサーバーのマニュアルなどを確認して、データベース名・データベースのユーザー名・データベースのパスワード・データベースのホスト名を適切に入力しましょう。
これら4つの設定に1つでもミスがあると、WordPressは正常に動作しません。
table_prefixの設定
データベースに格納されている各種テーブルのプレフィックスを設定します。
$table_prefix = 'wp_';
上記の設定では「wp_」という文字列をテーブルプレフィックスとして設定しています。
インストールされたWordPressごとにテーブルプレフィックスの設定を変えることで、一つのデータベースに複数のWordPressを動作させることも可能です。
セキュリティキーの設定
セキュリティキーの設定はWordPressの既存のCookieを無効にするときに設定します。WordPressのログインした状態のユーザーが存在していても、セキュリティキーを変更することで、強制的に再ログインが必要な状態にできます。
セキュリティキーの取得は以下のURLにアクセスするだけでできます。
https://api.wordpress.org/secret-key/1.1/salt/
wp-config.phpには次のように記述します。
define('AUTH_KEY', '2-jXt>#B|3XG`YMy=kLi]:hIU^!Yyjr]?S_k~((0A]H+>5p+^#%n0^d|M#{ .0& ');
define('SECURE_AUTH_KEY', '$E4N5PgueLw$#[UIe_[28z}N_Z~=MV;9qFCYZ5GR-L}ye82A_?D|-4-c!$D`1O!E');
define('LOGGED_IN_KEY', 'jTPsSBga-: %~J )&d)L!nvdPMP]PU^,?T%4lK^PKcUubx!u-6oQon-,Y$Ir%_&q');
define('NONCE_KEY', 'R+1EBx<0|(V8Ok.n|b|Ku$[e@r2#;kDuTj7X[_{Mg3x-yJrq-;x9Ksg@Gb.~uk2n');
define('AUTH_SALT', 'B>/ X<[aCz9eEUQ E$,72w{+-N_v6:nj7z9 DBr&Iw{!P^uJ,$4D}e[:]{|j K3^');
define('SECURE_AUTH_SALT', '<4eF93HOIFsf0k+$1dxC|6,zNhFXV`#WmtjvH6zO$2O J]_/J-U,(cHJr;=>!G4P');
define('LOGGED_IN_SALT', '8$pyy0+?j>T$#$r}E4-nnQzDS`,7|abe XV-6!WMOFLe2H~0==ev4~s,Wy+7mzfy');
define('NONCE_SALT', '5)$tLTv7;!0O&;e$YzZ0xl|y!|_~ad.`x$X8[k:c~b9-n%7iIYMo+84i2w>9-|-%');
※↑は解説用のサンプルですのでこの記述を設定するのは避けてください。
WordPressのサイトURLの設定
WordPressのコアファイルが存在しているサイトURLを設定します。「https://」の部分を含めて、最後のスラッシュ(/)は含めません。
define( 'WP_SITEURL', 'http://example.com/wordpress');
ブログのアドレスURLの設定
WordPressのトップページとなるブログのアドレスURLを設定します。この設定でも、「https://」の部分を含めて、最後のスラッシュ(/)は含めないようにします。
define( 'WP_HOME', 'http://example.com/wordpress');
WordPressのコアファイルは「wordpress」フォルダに格納し、ブログはドメインの直下で公開する場合は、次のように設定します。
define( 'WP_SITEURL', 'http://example.com/wordpress');
define( 'WP_HOME', 'http://example.com');
この設定の場合、ドメイン直下にコアファイルのあるフォルダの「index.php」を設置しなければなりません。
wp-contentディレクトリのパスの設定
コアファイルのフォルダにある「wp-content」ディレクトリのパスを設定します。これは「wp-content」をWordPressのコアファイルのあるフォルダの外に移動したいときに設定します。特に必要性がなければ不要な設定です。
define( 'WP_CONTENT_DIR', dirname(__FILE__) . '/blog/wp-content' );
またはURLをベースに指定したい場合は、次のように記述します。
define( 'WP_CONTENT_URL', 'http://example/blog/wp-content' );
プラグインディレクトリのパスの設定
wp-content内にあるプラグインディレクトリのパスを設定します。
define( 'WP_PLUGIN_DIR', dirname(__FILE__) . '/blog/wp-content/plugins' );
またはURLをベースに指定したい場合は、次のように記述します。
define( 'WP_PLUGIN_URL', 'http://example/blog/wp-content/plugins' );
テーマディレクトリのパスの設定
テーマディレクトリは次のように記述されているため、wp-contentディレクトリの外に移動させることはできません。
$theme_root = WP_CONTENT_DIR . '/themes';
アップロードディレクトリのパスの設定
アップロードディレクトリのパスの設定は次の通りです。
define( 'UPLOADS', 'blog/wp-content/uploads' );
投稿の自動保存間隔の設定
WordPressでは編集中の投稿を自動的に保存する機能が備わっています。この自動保存の間隔は秒数で指定できます。
define( 'AUTOSAVE_INTERVAL', 120 );
投稿のリビジョン数を指定する
投稿は保存するごとに改訂履歴がリビジョンとして保存されるようになっていますが、このリビジョン数を指定することができます。
define( 'WP_POST_REVISIONS', 5 );
投稿のリビジョンを無効にする
投稿のリビジョンが不要であれば、リビジョン機能自体を無効化させることもできます。
define( 'WP_POST_REVISIONS', false );
デバッグモードを有効にする
デバッグモードを有効にすると、WordPressのテーマやプラグインの開発時に、非推奨な関数やファイルを使用している場合にエラーを表示させることができます。
define( 'WP_DEBUG', true );
自動更新の有効化・無効化
WordPressの自動更新を無効化する設定です。
define( 'AUTOMATIC_UPDATER_DISABLED', true );
「wp-config.php」の危険なバックアップ方法
wp-config.phpのバックアップをサーバー上に保存する場合、拡張子の部分は必ず「php」にしなければなりません。
・wp-config.php.bak
・wp-config.php-20230401
・wp-config.php-バックアップ
・wp-config.php-修正
など
上記のように拡張子が「php」以外になっていると、ブラウザからそのファイルにアクセスしたときに、中身が丸見えになってしまう恐れがあります。
中身が丸見えになってしまうと、データベースのIDやパスワードなども知られる可能性があります。もしサーバー上にバックアップを保存しておくのであれば、拡張子の部分を必ず「php」のままにしておきましょう。