따라 @ 탐-J-노웰 OP에 코멘트 말했다, 다중이 쉽게 할 수 있습니다.
성능 및 보안은 실제로 다중 사이트에 대한 문제는 아니지만 (최소한 일반 설치에 대한 것 이상) 다중 플러그인 (사용자 정의 또는 타사)이 그렇지 않을 수 있기 때문에 다중 사이트가 문제가 될 수 있음에 동의합니다. 여러 사이트에서 제대로 작동하거나 다른 웹 사이트의 사용자를 완전히 분리하고 싶을 수도 있습니다.
그것은 당신이 달성하고자하는 것이 그렇게 어렵지는 않다고 말했습니다.
설치간에 변경해야 할 사항은 다음과 같습니다.
이러한 구성은 유일한 문제로 상수를wp-config.php
사용하여 수행 할 수 있습니다 .URL을 기반으로 상수 를 전환하는 방법입니다.
'SERVER_NAME'
최소한 웹 서버가 올바르게 구성된 경우 서버 변수 가 작동합니다.
예를 들어 /conf
, 동일한 수준의 wp-config.php
파일 및 /WordPress
폴더로 이름이 지정된 폴더를 만들 수 있습니다 .
해당 폴더에서 일부 파일을 추가 할 수 있습니다.
branch1.domain.com.conf
branch2.domain.com.conf
branch3.domain.com.conf
그들 각각 안에 당신은 같은 것을 할 수 있습니다
$branch = 'branch1';
$base_dir = dirname( __DIR__) . "/{$branch}";
defined( 'WP_CONTENT_DIR' ) or define( 'WP_CONTENT_DIR', $base_dir );
// be sure WP understand URLs correctly
defined( 'DB_HOME' ) or define( 'DB_HOME', "{$branch}.example.com" );
defined('WP_SITEURL') or define('WP_SITEURL', "{$branch}.example.com/WordPress");
// adjust DB settings as needed
defined( 'DB_NAME' ) or define( 'DB_NAME', $branch );
defined( 'DB_USER' ) or define( 'DB_USER', $branch );
defined( 'DB_PASSWORD' ) or define( 'DB_PASSWORD', '********' );
unset( $base_dir, $branch );
"분기"에 따라 각 구성 파일에서 변경됩니다.
그 후, 당신의 독특한 방식으로 wp-config.php
다음과 같이 할 수 있습니다.
$defaults_conf = [
'WP_CONTENT_DIR' => __DIR__ . '/branch1',
'DB_HOST' => 'localhost',
'DB_NAME' => 'branch1',
'DB_USER' => 'branch1',
'DB_PASSWORD' => '********',
];
$host = getenv('WORDPRESS_HOST') ?: $_SERVER['SERVER_NAME'];
if ($host && file_exists(__DIR__."/conf/{$host}.conf")) {
require __DIR__."/conf/{$host}.conf";
}
array_walk($defaults_conf, function($value, $name) {
defined($name) or define($name, $value);
});
unset($defaults_conf, $host);
위에서 발생하는 것은 서버 이름에 따라 다른 구성 파일 (찾은 경우)을로드하고 구성 파일이 기본 구성을 정의하지 않은 경우 (또는 파일을 찾을 수없는 경우) 구성이 기본값마다 설정되는 것입니다.
좋은 점은 새 브랜치를 추가하려면 브랜치 폴더를 만들고 .conf
새 브랜치 도메인 의 이름을 지정하면 WP 측에서 변경할 사항이 없다는 것입니다.
라인 :
$host = getenv('WORDPRESS_HOST') ?: $_SERVER['SERVER_NAME'];
도메인 이름을 얻는 곳입니다. 첫 번째 옵션으로 환경 변수를 사용하고 있습니다 $_SERVER['SERVER_NAME']
. WP CLI를 사용할 때와 같이 명령 줄 컨텍스트에서 작동하지 않을 가능성 이 있기 때문 입니다. 이러한 상황에서 WP가 특정 분기의 설정을 사용하도록 환경 변수를 설정할 수 있습니다.
지점 별 구성 파일에서를 변경하면 WP_CONTENT_DIR
플러그인 및 테마 폴더가 관련 /plugins
및 /themes
지점 하위 폴더로 자동 설정됩니다 .
여기에서 가능한 문제는 /uploads
파일을 업로드 하는 폴더 를 공유하려는 경우 입니다.
기본적으로 해당 폴더는 content dir의 하위 폴더이므로 위의 워크 플로를 사용하면 /uploads
각 분기 루트 폴더 의 하위 폴더가됩니다.
그것이 당신에게 문제가되지 않는다면, 그냥 가기보다는 가장 쉬운 해결책은 /uploads
각 지점 폴더 에서 공유하려는 실제 업로드 폴더에 대한 심볼릭 링크를 만드는 것 입니다.