Eu procurei por todos os lugares e encontrei muitos tutoriais sobre como configurar um multi-site, mapeamento de domínio e até mesmo usar hosts virtuais em minha máquina local, mas não consigo descobrir como fazer todos eles.
Eu gostaria de ter WordPress multisite executado no meu localhost usando nomes de domínio falso, como mysite-1.dev, mysite-2.dev, mysite-3.dev, etc.
Estou executando o XAMPP com o Apache em uma máquina Windows. No arquivo httpd-vhosts
, devo especificar uma pasta para o domínio falso, mas se estiver usando o multisite do WordPress, não sei como.
Aqui faz parte do meu arquivo 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>
No meu arquivo hosts, eu tenho:
127.0.0.1 mysite-1.dev
127.0.0.1 mysite-2.dev
127.0.0.1 mysite-3.dev
Configurei o multisite no WordPress e inseri os arquivos wp-config.php
e .htaccess
conforme necessário.
O arquivo wp-config.ph
p é o seguinte:
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/');
E .htaccess
é o seguinte:
# 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
Ao fazer a configuração desta maneira, quando eu vou para o mysite-2.dev e o mysite-3.dev, ele aparece na pasta, e não há nada no c:/home/mysite-2.dev
e c:/home/mysite-3.dev
, então ele mostra um erro:
Chame para a função indefinida wp_get_current_user ().
Em c:/home/mysite-1.dev
, ele possui todos os arquivos multisite do WordPress, plugins, temas, etc., então funciona bem.
Eu sei que isso é provavelmente um problema de configuração, mas não tenho certeza de como configurá-lo corretamente. Alguém pode me apontar na direção certa para definir um multisite WordPress usando domínios falsos e mapeamento de domínio?
Obrigado a todos antecipadamente!
DocumentRoot
para cada VirtualHost
deve apontar para o diretório onde você instalou WP multisite. Não existe um diretório real para subsites, eles são todos virtuais.
Usando o seu exemplo:
<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>
.
.
.