web-dev-qa-db-ja.com

ドメインマッピングを備えたWordPressマルチサイトおよび偽のドメインを備えたローカルの仮想ホスト

私はあちこちを検索し、マルチサイトの設定、ドメインマッピング、そして私のローカルマシン上での仮想ホストの使い方さえも多くのチュートリアルを見つけました、しかしそれらの全てを実行する方法を見つけることができないようです。

Mysite-1.dev、mysite-2.dev、mysite-3.devなどの偽のドメイン名を使用して、自分のローカルホスト上でWordPressマルチサイトを実行したいと思います。

私はWindowsマシン上でApacheを使ってXAMPPを実行しています。 httpd-vhostsファイルでは、偽のドメインが移動するフォルダを指定する必要がありますが、WordPressマルチサイトを使用している場合は、その方法がわかりません。

これが私のhttpd-vhostファイルの一部です。

<VirtualHost *:80>
    DocumentRoot "C:/home/mysite-1"
    ServerName mysite-1.dev
    Alias /mysite-1.dev "/home/mysite-1"
<Directory "/home/mysite-1">
    Options Indexes FollowSymLinks Includes ExecCGI
    AllowOverride All
    Order allow,deny
    Allow from all
</Directory>
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot "C:/home/mysite-2"
    ServerName mysite-2.dev
    Alias /mysite-2.dev "/home/mysite-2"
<Directory "/home/mysite-2">
    Options Indexes FollowSymLinks Includes ExecCGI
    AllowOverride All
    Order allow,deny
    Allow from all
</Directory>
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot "C:/home/mysite-3"
    ServerName mysite-3.dev
    Alias /mysite-3.dev "/home/mysite-3"
<Directory "/home/mysite-3">
    Options Indexes FollowSymLinks Includes ExecCGI
    AllowOverride All
    Order allow,deny
    Allow from all
</Directory>
</VirtualHost>

私のhostsファイルでは、私は持っています:

127.0.0.1   mysite-1.dev
127.0.0.1   mysite-2.dev
127.0.0.1   mysite-3.dev

WordPressでマルチサイトを設定し、必要に応じてwp-config.php.htaccessファイルを入力しました。

wp-config.phpファイルは次のとおりです。

define('WP_ALLOW_MULTISITE', true);
define('MULTISITE', true);
define('SUBDOMAIN_INSTALL', true);
define('DOMAIN_CURRENT_SITE', 'mysite-1.dev');
define('PATH_CURRENT_SITE', '/');
define('SITE_ID_CURRENT_SITE', 1);
define('BLOG_ID_CURRENT_SITE', 1);
define( 'SUNRISE', 'on' );
define('WP_TEMP_DIR',ABSPATH.'wp-content/uploads/');

そして.htaccessは次のとおりです。

# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]

# add a trailing slash to /wp-admin
RewriteRule ^wp-admin$ wp-admin/ [R=301,L]

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^(wp-(content|admin|includes).*) $1 [L]
RewriteRule ^(.*\.php)$ $1 [L]
RewriteRule . index.php [L]
# END WordPress

このようにセットアップすることで、mysite-2.devとmysite-3.devに移動したときに、それはフォルダを調べ、c:/home/mysite-2.devc:/home/mysite-3.devには何もないので、エラーが表示されます。

未定義の関数wp_get_current_user()を呼び出します。

c:/home/mysite-1.devでは、WordPressのマルチサイトファイル、プラグイン、テーマなどがすべて揃っているので、問題なく動作します。

私はこれがおそらく設定上の問題であることを知っています、しかし私はそれを正しく設定する方法がわかりません。偽のドメインとドメインマッピングを使用してWordPressマルチサイトを設定することに対して正しい方向を向いている人はいますか?

よろしくお願いします。

3
stormchaser

DocumentRootVirtualHostは、WP multisiteをインストールしたディレクトリを指す必要があります。サブサイト用の実際のディレクトリはありません。それらはすべて仮想です。

あなたの例を使用して:

<VirtualHost *:80>
    DocumentRoot "C:/home/wp-intall-directory"
    ServerName mysite-1.dev
    # not required Alias /mysite-1.dev "/home/mysite-1"
    <Directory "/home/wp-intall-directory">
        Options Indexes FollowSymLinks Includes ExecCGI
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot "C:/home/wp-intall-directory"
    ServerName mysite-2.dev
    # not required Alias /mysite-2.dev "/home/mysite-2"
    <Directory "/home/wp-intall-directory">
        Options Indexes FollowSymLinks Includes ExecCGI
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>
.
.
.
1
BillK