J'ai cherché partout et trouvé de nombreux tutoriels sur la configuration d'un multisite, le mappage de domaine et même l'utilisation d'hôtes virtuels sur ma machine locale, mais je n'arrive pas à trouver comment faire tout cela.
J'aimerais que WordPress multisite soit exécuté sur mon hôte local en utilisant de faux noms de domaine, tels que mysite-1.dev, mysite-2.dev, mysite-3.dev, etc.
J'exécute XAMPP avec Apache sur une machine Windows. Dans le fichier httpd-vhosts
, je dois spécifier un dossier vers lequel accéder le faux domaine, mais si j'utilise WordPress multisite, je ne sais pas comment procéder.
Voici une partie de mon fichier 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>
Dans mon fichier hosts, j'ai:
127.0.0.1 mysite-1.dev
127.0.0.1 mysite-2.dev
127.0.0.1 mysite-3.dev
J'ai configuré le multisite dans WordPress et saisi les fichiers wp-config.php
et .htaccess
selon les besoins.
Le fichier wp-config.ph
p est le suivant:
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/');
Et .htaccess
est comme suit:
# 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
En effectuant la configuration de cette façon, lorsque je vais dans mysite-2.dev et mysite-3.dev, le dossier apparaît dans le dossier. Il n'y a rien dans c:/home/mysite-2.dev
et c:/home/mysite-3.dev
. Il y a donc une erreur:
Appel de la fonction non définie wp_get_current_user ().
Dans c:/home/mysite-1.dev
, il contient tous les fichiers, plugins, thèmes, etc. multispites de WordPress, de sorte que tout fonctionne correctement.
Je sais que c'est probablement un problème de configuration, mais je ne sais pas comment le configurer correctement. Est-ce que n'importe qui peut me diriger dans la bonne direction pour placer un multisite de WordPress utilisant de faux domaines et le mappage de domaine?
Merci d'avance à tous!
DocumentRoot
pour chaque VirtualHost
doit pointer vers le répertoire où vous avez installé WP multisite. Il n'y a pas de répertoire réel pour les sous-sites, ils sont tous virtuels.
En utilisant votre exemple:
<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>
.
.
.