WordPress : wp-config.phpをapacheとnginxの設定でアクセス出来なくする。

大切な大切なwp-config.php

これにはWordPressのDBのアカウントなどが書かれています。

外部から見えなくするためにDocumentRoot以外に置いておくのも手ですが、WordPressのファイル群なんだから位置ずらすのは嫌。

それでも一応直接「http://hogehoge.com/wp-config.php」とか見れないからいいやって思っていても不安なはず。

ならばapacheやnginxの方で制限をかけてあげましょう。

まずはapacheからhtaccessでの制限

apacheでwp-config.phpをhtaccessの制限

設定ファイルを作ります。

$ vim /var/www/html/public_html/.htaccess

「/var/www/html/public_html/」は自分のwp-configが置いてあるディレクトリに置き換えてください。同じ階層に置けばOKです。

中身はこんな感じで。

<files wp-config.php>
order allow,deny
deny from all
</files>

order allow,denyはデフォルト拒否の設定なので2つ目はわかりやすいように書いただけです。

何かしらの理由で許可したいIPがあれば書いてください。

htaccessによる制限なのでApacheの再起動はいらず、アクセスがあったタイミングで自動的に読んでくれる。

nginxによるwp-config.phpのアクセス制限

こちらはコンフィグで行う。

$ vim /etc/nginx/conf.d/www.conf

個別設定に入れているはずなので、「/etc/nginx/conf.d/」でRootの項目がWordPressで使用しているディレクトリになっているものを探して下さい。

そちらのserverの中に

location ~* /wp-config.php {
    deny all;
}

こちらを追加。コンフィグの書き方が間違っていたら、

$ nginx -t

でエラーが出ます。

アクセス拒否します。こちらは設定ファイルをいじっているのでreloadが必要です。

これであなたのwp-config.phpはWebサーバからも守ってもらえるようになりました。