基礎知識 2024.10.17 2024.10.17
wp-config.phpファイルを徹底解説!役割・場所・パーミッション設定まで
WordPressにおいて、wp-config.phpは非常に重要なファイルです。このファイルには、データベース接続情報やセキュリティ設定など、さまざまな情報が保存されています。
wp-config.phpを編集して設定を変更することができますが、正しく記述しないとエラーが発生してサイトが表示されなくなる可能性があります。また、ファイルの保存にも注意しないとサイバー攻撃の被害に遭うリスクもあるため慎重に管理・作業することが重要です。
本記事は、phpファイルの編集に不慣れな方でも迷わず作業できるよう、wp-config.phpの基本から編集方法、注意点までをわかりやすく解説します。
目次
wp-config.phpとは
wp-config.phpは、データベースの接続情報などWordPressにおける重要な設定を記述したファイルです。WordPressをセットアップすると自動的に生成されるため、基本的にどのWordPressにもwp-config.phpが存在します。
ファイルは、WordPressのディレクトリルート直下にあります。編集する際には、事前にFTPソフトでファイルをダウンロードしたものを使用します。(編集する際の注意事項は最後にあります)。
wp-config.phpの基本構成
wp-config.phpのファイルを開くと、以下のような構成となっています。
【1】Database settings (データベース設定)
WordPressで使用するデータベースに関する各種設定が記述されています。初期値はWordPressのセットアップを行う際に指定した内容ですが、後から編集することも可能です。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
// ** Database settings - You can get this info from your web host ** // /** The name of the database for WordPress */ define( 'DB_NAME', 'local' ); /** Database username */ define( 'DB_USER', 'root' ); /** Database password */ define( 'DB_PASSWORD', 'root' ); /** Database hostname */ define( 'DB_HOST', 'localhost' ); /** Database charset to use in creating database tables. */ define( 'DB_CHARSET', 'utf8' ); /** The database collate type. Don't change this if in doubt. */ define( 'DB_COLLATE', '' ); |
記述されているコード | 設定内容 |
---|---|
define( ‘DB_NAME’, ‘local’ ); | データベース名の設定(=local) |
define( ‘DB_USER’, ‘root’ ); | データベースのユーザー名(=root) |
define( ‘DB_PASSWORD’, ‘root’ ); | データベースのパスワード(=root) |
define( ‘DB_HOST’, ‘localhost’ ); | データベースのホスト名(=localhost) |
define( ‘DB_CHARSET’, ‘utf8’ ); | データベースの文字コード(=utf8) |
define( ‘DB_COLLATE’, ” ); | データベースの照合順序 (=空白のままでOK) |
データベース設定部分は、ユーザー名、パスワードなど特に重要な情報が含まれるため、変更する際は十分に注意してください。
【2】Secret keys(セキュリティキー設定)
セキュリティキーは、WordPressのログイン情報を保護するために使用する文字列です。パスワードなどの重要な情報をCookieに保存する際には、セキュリティキーを用いて暗号化します。秘密鍵方式と同じ方式で、暗号と復号は同じキーを使用します。
また、セキュリティキーには、対となる「ソルト」と呼ばれる文字列が含まれています。セキュリティキーが暗号化に用いられるのに対して、ソルトは文字列を複雑にするために用いられます。
セキュリティキーの内容は、通常は変更する必要はありません。しかし、サイトの情報が漏洩した際などには安全のため変更することをおすすめします。
1 2 3 4 5 6 7 8 9 |
define( 'AUTH_KEY', 'uG0yRe:$s5IMS)sXll@#|+6UP8AUnU,4?Yra&Sh#W]rte0]c)WBe{mCq(zA=Z@)~' ); define( 'SECURE_AUTH_KEY', ':V9TV/DA$qM$Iq;tI@:@(tO$yMRC7iY_/lC/=z{`>B;zHy]*0q_.d=;~3~++KI&N' ); define( 'LOGGED_IN_KEY', 'EMJN35:)}})&Bk3`/*kjtg5;e=kzbhP%gXI*Pc;X)vyc]g+V;O8c%HWqctznoqRr' ); define( 'NONCE_KEY', '3-HCD2bM*?cbO4V)NfYV0=a97j&-6dYm1N3b@k*@&k?P9&/.C.-*>8*n{GyjMBY4' ); define( 'AUTH_SALT', '}`x6xLD4-Aih)}PXQS@^w#Iqtls[@0HG}Z<<1<DEs^J72$]DBZyd&g5V_k|<0Ga^' ); define( 'SECURE_AUTH_SALT', 'HnPfqvuT(=U5>6Ouqx{;pES!g+m,i6pJ&4b$Yas!G`AwC{//kw)KJz E3Z7a<#tj' ); define( 'LOGGED_IN_SALT', 'c`6[m#wi(#@%+%@otnPqU,2{=$!apzqpH|I>YY0csTe3+.6n4.fl$R$Y0}}0%[V5' ); define( 'NONCE_SALT', '/g`l[pKtd[9gK,fWY(hjxHh1;@!;1v=hH_w];&Vgd4phQB.3vT6@Ym5T %nsF`:5' ); define( 'WP_CACHE_KEY_SALT', 'bXro-wOIKK9<a]<e=SK%jM1>c.b%]?3kW^.8* $t<a6DGh_;{&ZxF{=+*rI/bAOA' ); |
「WordPressのセキュリティキージェネレータ(https://api.wordpress.org/secret-key/1.1/salt/)」を使用するとセキュリティキーとソルトを自動生成されるので便利です。
上記ページにアクセスして表示されたコードをそのままコピペして、セキュリティキー設定箇所に貼り付けてください。
【3】Database table prefix(テーブル接頭辞設定)
プレフィックス(接頭辞)とは、WordPressで用いるデータベースのテーブル名の最初につく文字列のことです。初期値は「wp_」で、特に変更しなければテーブル名は「wp_post」のようになります。
1 |
$table_prefix = 'wp_'; |
プレフィックスは初期値のままでも問題ありませんが、サーバー移転などの理由により運用中のWordPressでプレフィックスを変更する必要があるケースがあります。その場合はwp-config.phpを編集するだけでなく、関連するデータベースの書き換えも必要です。
プレフィックスの変更に失敗するとトラブルに繋がる可能性があるため、開発に慣れていない場合はプレフィックスおよび関連情報をまとめて書き換えられる「Brozzme DB Prefix & Tools Addons」などのプラグインを使用したほうが安全です。
・Brozzme DB Prefix & Tools Addons
https://wordpress.org/plugins/brozzme-db-prefix-change/
【4】debug(デバッグモード設定)
デバッグモードとは、開発者向けに用意された特別なモードです。有効にすると、画面上にエラーメッセージが表示されるため、不具合の解決に役立ちます。
1 2 3 |
if ( ! defined( 'WP_DEBUG' ) ) { define( 'WP_DEBUG', false ); } |
wp-config.phpファイルのデバッグ設定は、初期状態で無効になっています。有効にするには、以下のように変更してください。
変更前 | 変更後 |
---|---|
define( ‘WP_DEBUG’, false ); | define( ‘WP_DEBUG’, true ); |
なお、エラーメッセージはサイトにアクセスした人全員に見えてしまうため、表示する必要がなくなったら、忘れずにデバッグモードをオフ(false)に戻しておきましょう。
wp-config.phpで設定できること
上記設定に加えて、さまざまな設定事項をwp-config.phpに追加できます。
wp-config.phpにコードを追記する際には、ファイル内の「/* That’s all, stop editing! Happy publishing. */」というコメントよりも上に記述するようにしてください。
WordPressアドレスを変更する
WordPressアドレス(URL)は、ユーザーがWordPressサイトにアクセスするために使用するアドレスの指定です。「http://~」から記述し、最後のスラッシュ(/)は不要です。
1 |
define('WP_HOME','http://example.com'); |
サイトアドレスを変更する
サイトアドレスは、WordPressのコアファイルを配置する位置の指定です。WordPressアドレスと同様、「http://~」から記述し、最後のスラッシュ(/)は不要です。
1 |
define('WP_SITEURL','http://example.com'); |
なお、WordPressアドレスとサイトアドレスは、WordPress管理画面の「設定」→「一般」からも設定できます。
ディレクトリのパスを設定する
WordPressのディレクトリ位置を指定します。下記は「wp-content」の位置を設定する例です。1つ目の引数にはディレクトリを、2つ目の引数にはディレクトリパスを指定します。
1 |
define( 'WP_CONTENT_DIR', dirname(__FILE__) . '/blog/wp-content' ); |
プラグインディレクトリの位置を設定する場合は、以下のように指定します。
1 |
define( 'WP_PLUGIN_DIR', dirname(__FILE__) . '/blog/wp-content/plugins' ); |
投稿のリビジョン数を変更する
リビジョンとは、WordPressの編集履歴を保存しておく機能のことです。コンテンツを誤って削除してしまった場合や、自分以外の担当者が内容を変更してしまった場合でも、リビジョンがあれば元に戻すことができます。
リビジョンは便利な機能ですが、無制限に履歴を残すとデータベースに負担がかかりサイトの表示速度にも影響する場合があります。そのため、投稿のリビジョンを最大数を変更しておくと、データベースを余計に圧迫せずに済みます。
また、リビジョン自体を無効にすることも可能です。
リビジョンの最大数を変更する場合は、以下のコードを追記します。
1 |
define( 'WP_POST_REVISIONS', 15 ); |
リビジョン自体を無効にする場合は、以下のコードを追記します。
1 |
define( 'WP_POST_REVISIONS', false ); |
リビジョンの変更は、「WP-Optimize」などのプラグインを使用して設定することも可能です。プラグインを使用すると、リビジョンの削除も簡単にできます。
投稿の自動保存間隔を設定する
リビジョンの保存間隔は、初期状態で60秒間隔です。変更する場合は、「 ‘AUTOSAVE_INTERVAL’, 60 」の数値を好きな秒数に指定します。
1 |
define( 'AUTOSAVE_INTERVAL', 60 ); |
自動更新の有効化・無効化を設定する
WordPressでは、初期状態で自動更新が有効になっています。何らかの理由で自動更新を無効にしたい場合は、以下のコードを追記します。
1 |
define( 'AUTOMATIC_UPDATER_DISABLED', true ); |
wp-config.phpのバックアップ方法
wp-config.phpは、作業する前にバックアップを取得しておくと万が一トラブルが起きてもすぐに復元できます。手動でファイルをコピーする方法と、プラグインを使用する方法があります。
FTP経由でファイルをコピーする方法
FTPソフトでWordPressを保存しているサーバーへアクセスします。WordPressを保存しているディレクトリの直下にある「wp-config.php」をダウンロードします。
プラグインを使用する方法
wp-config.php以外のWordPressの各種ファイルもまとめて保存する場合、「BackWPup」などのバックアップ用プラグインを使用すると、より便利に設定できます。
・BackWPup
>>BackWPup公式
プラグインをインストール&有効化した後、バックアップの設定を行ってください。手動で都度バックアップを取得するだけでなく、スケジュール機能で自動バックアップすることも可能です。
wp-config.phpのセキュリティ対策
wp-config.phpの重要性は、サイト運営者だけでなく、サイバー攻撃を行う攻撃者にも認識されています。そのためWordPressを攻撃する際に、真っ先に狙われるファイルの一つです。
wp-config.phpを安全に保つためには、以下の設定を行うことをおすすめします。
バックアップするときは公開領域外に保管する
FTPソフトでバックアップを取得する際に、Webサーバー上でそのままファイルをコピーしてファイル名を変更した状態で残しているケースがあります。しかし、 wp-config.phpには重要な情報が含まれているため、不特定多数がアクセスできる場所にファイルを残しておくのはセキュリティ上望ましくありません。
公開領域(ユーザーがブラウザからURLでアクセスできる場所)以外の場所に保管するようにすると、安全性を高めることができます。公開領域の範囲がよくわからない場合は、Webサイトを公開しているサーバーと異なるサーバーもしくはローカル環境に保管しておけば安心です。
適切なパーミッションを設定する
パーミッションとは、ファイルやディレクトリ(フォルダ)単位で設定できる権限設定のことです。「読み取り」「書き込み」「実行」の3種類があり、通常3桁の数字を使用して表現します。
WordPress公式サイトでは、wp-config.php はサーバー上の他のユーザーが読み取るのを防ぐために 440 または 400 にすることを推奨しています。
400はもっとも安全なパーミッションになりますが、共有サーバーでは設定できない場合もあるため、その場合には 600 とすることを推奨します。
引用:Changing File Permissions(WordPress Developer Resources)
https://developer.wordpress.org/advanced-administration/server/file-permissions/
なお、ファイルのパーミッション設定について詳しく知りたい場合は、以下の記事がおすすめです。
(参考)WordPressのパーミッションとは?適切に設定するべき理由と動作確認を解説
https://wpmake.jp/contents/security/wordpress-permission/
・アクセス権限を設定する
ファイルのパーミッションを設定するだけでなく、wp-config.phpのファイルそのものを外部からアクセスできない設定にすることで、セキュリティを一層強化できます。
設定は、「.htaccess」に以下のコードを追記します。
1 2 3 4 |
<Files wp-config\.php> Order deny,allow Deny from all </Files> |
まとめ
日常的なサイト運用では、wp-config.phpを編集する機会は多くはありません。
しかし、wp-config.phpで何ができるか、どのように編集すればよいかを知っておけば、wp-config.phpの編集が必要になった際に、スムーズに対処できます。本記事で紹介した内容を頭の片隅に入れておいていただければ幸いです。
WordPress保守・運用のパートナーなら「wp.support」にお任せ!
WordPressサイトを運用していて、以下のようなお悩みはありませんか?
- 管理画面を使いやすくしたいけれど、カスタマイズする時間や技術がない…
- サイトのUI/UXを改善したいけれど、自社内では難しい…
- WordPressサイトを高速化したいけれど、ノウハウがない…
- セキュリティ対策をしたいけれど、知識のある人材がいない…
- 日々の業務に追われて、バージョンアップなどの保守業務が放置気味…
- ちょっとしたトラブルを気軽に相談できる相手が欲しい…
「wp.support」は、WordPressのプロフェッショナル集団によるWordPress保守サービスです。
「セキュリティ対策」「バージョンアップ対応」「定期バックアップ」はもちろん、「電話サポートが無制限」なのでカスタマイズの方法やトラブル発生時にも気軽にプロに相談できます。
既に導入済みのお客様からも、
「些細なことでも気軽に相談できるパートナー的な存在」
「困ったら相談していいんだ、と気持ちが楽になった」
と大変ご好評をいただいています。
WordPress保守・運用のパートナーをお探しなら、ぜひお気軽にお問合せください。
バージョンアップが面倒だと思ったら WordPress保守・セキュリティ対策は『wp.support』にお任せ!
WordPressのバージョンアップやセキュリティ対策にお悩みではないですか?
面倒な保守・運用作業は全て任せて、コア事業に集中してください。
大手・上場企業100社以上のWebサイトの安全を守る、WordPressのプロフェッショナル集団が、あなたのWordPressサイトを守ります!
【対応範囲】
・WordPress、プラグインのバージョンアップ ・セキュリティ対策 ・継続的なバックアップ ・緊急時の復旧対応 ・技術サポート・電話/メールサポート無制限 etc...
WordPressに関することなら何でもご相談ください!