セキュリティのためにwp-config.phpを1つ上のディレクトリレベル、つまりpublic_htmlより上のディレクトリに移動することができます(Webホストによっては、homeまたはユーザー名と呼ばれることもあります)。
「 http://codex.wordpress.org/Hardening_WordPress#Securing_wp-config.phpによると、 "あなたはWordPressのインストールの上のディレクトリにwp-config.phpファイルを移動することができます - そしてそれをWPサイトのwp-config.phpファイルで行いました。
しかし、public_htmlのそれぞれのフォルダに複数のWPサイトを配置するにはどうすればよいでしょうか。 WPサイトごとに、ホームディレクトリにあるwp-config1.phpやwp-config2.phpなどのように、複数のwp-config.phpファイルの名前を変更する方法はありますか?そして、それぞれのWP installが自分自身のwp-config.phpファイルを見つけることができるようにするには、.htaccessまたは他の方法を使用しますか?
私が思う一つの解決策はマルチサイトですが、それはこの場合不可能です。
メインのwp-config.php
を1つ使用し、ホストの名前に従って他の名前を指定します。
あなたのメインのwp-config.php
に書いてください:
$current_config = __DIR__ . '/' . $_SERVER['HTTP_Host'] . '.config.php';
if ( file_exists( $current_config )
require_once $current_config;
これを行うには2つの方法があります。あなたの質問から、それはあなたが現在この構造を持っているように思えます:
/home
... /public_html
... ... wp-config.php <- for site1
... ... /site1
... ... ... /wp-admin
... ... ... /wp-content
... ... ... /wp-includes
... ... /site2
... ... ... /wp-admin
... ... ... /wp-content
... ... ... /wp-includes
... ... ... wp-config.php <- for site2
また、他のサイトのwp-config.php
ファイルもサイトルート外に移動します。すべてのサイトがwp-config.php
を含めることを試みるが、すべてが同じものを使用することはできないため、これはいくつかの競合を引き起こすことを指摘するのは正しいです。
もっと大きな問題は、wp-config.site1.php
やwp-config1.php
や他のバリエーションを使って物事を分離するためにコアをハッキングすることができないことです。
wp-load.php
のコードを見ると、これがわかります。
if ( file_exists( ABSPATH . 'wp-config.php') ) {
/** The config file resides in ABSPATH */
require_once( ABSPATH . 'wp-config.php' );
} elseif ( file_exists( dirname(ABSPATH) . '/wp-config.php' ) && ! file_exists( dirname(ABSPATH) . '/wp-settings.php' ) ) {
/** The config file resides one level above ABSPATH but is not part of another install*/
require_once( dirname(ABSPATH) . '/wp-config.php' );
}
WordPressは現在の場所を越えて1つのディレクトリだけを探し、wp-config.php
のみを探します。
あなたの最善の策は、自分自身にいくつかの分離を与えるためにさらに一段階上にすべてをプッシュすることです。それから、Apache vhostsファイルを新しいフォルダの場所に向けます。それで、あなたのディレクトリ構造を次のように設定してください。
/home
... /public_html
... ... /site1
... ... ... wp-config.php <- for site1
... ... ... /wordpress
... ... ... ... /wp-admin
... ... ... ... /wp-content
... ... ... ... /wp-includes
... ... /site2
... ... ... wp-config.php <- for site2
... ... ... /wordpress
... ... ... ... /wp-admin
... ... ... ... /wp-content
... ... ... ... /wp-includes
あなたのvhostsファイルはwww.site1.com
の代わりに/home/public_html/site1/wordpress
を/home/public_html/site
に指すでしょう。はい、それはもう少し複雑ですが、あなたがこの問題を避けることができる唯一の方法です。
あなたはこれをすることができます:
すべてのwp-config.phpファイルをインストールより上のレベルにコピーしてから、それらをmysite-wp-config.phpのような名前に変更してから、実際のインストールの中で、wp-config.phpというファイルを作成しますそのファイルの中:
<?php
include_once(‘/pathtoconfigfile/mysite-wp-config.php’);
?>
これは理論です、私はそれをテストしていません。