Wp-contentディレクトリをwordpressディレクトリの外に移動しようとしていて、あらゆる種類の奇妙な問題が発生しています。 http://codex.wordpress.org/Editing_wp-config.php#Moving_wp-content_folder としても可能ですが、ディレクトリ構造はWPコードに深く関連しているようです。たとえば、次のようなエラーメッセージが表示されます。
PHP message: PHP Warning: file_exists(): open_basedir restriction in effect.
File(/srv/wp.content/themes) is not within the allowed path(s): (/srv/wordpress/:/tmp)
in /srv/wordpress/wp-includes/theme.php on line 369
私がする必要があるのは、メインディレクトリの外にuploadsディレクトリを移動することだけです。私もそれをシンボリックリンクしようとしましたが、それから私はパーミッションエラーを得ています。
誰かがwp-contentディレクトリを正常に作成できたか、少なくともルートディレクトリの外にディレクトリをアップロードしましたか?
WP_CONTENT_DIR
とWP_CONTENT_URL
を定義する必要があります。
const WP_CONTENT_DIR = '/path/to/new/directory';
const WP_CONTENT_URL = 'http://content.wp';
新しいパスは、WordPressコアディレクトリからの読み書き操作にアクセスできる必要があります。 open_basedir
リストに新しいディレクトリパスを追加するためのヘルパー関数が必要かもしれません。
/**
* Add a new directory to the 'open_basedir' list.
*
* @link http://www.php.net/manual/en/ini.core.php#ini.open-basedir
* @param string $new_dir
* @return void
*/
function extend_base_dir( $new_dir )
{
$separator = ':'; // all systems, except Win
// http://stackoverflow.com/a/5879078/299509
if ( 'WIN' === strtoupper( substr( PHP_OS, 0, 3 ) ) )
$separator = ';';
$dirs = explode( $separator, ini_get( 'open_basedir' ) );
$found = array_search( $new_dir, $dirs );
// Already accessible
if ( FALSE !== $found )
return;
$dirs[] = $new_dir;
ini_set( 'open_basedir', join( $separator, $dirs ) );
}
今それをこのように呼ぶ:
extend_base_dir( WP_CONTENT_DIR );
WordPressルートの外にアップロードを移動する方法を見つけるためにここに来ました。結局私はシンボリックリンクを作成するのと同じくらい単純にそれを保ちました、そしてそれはちょうどうまく働きます。
$ pwd
/var/www/wordpress
$ cd ..
$ mkdir uploads
$ chmod 755 uploads
$ ln -sf /var/www/uploads /var/www/wordpress/wp-content/uploads
ソース: Wordpressのフォルダをプロジェクト外にアップロード
既存のプロジェクトの場合:
$ pwd
/var/www/wordpress
$ mv /var/www/wordpress/wp-content/uploads /var/www/uploads
$ chmod -R 755 uploads
$ ln -sf /var/www/uploads /var/www/wordpress/wp-content/uploads