web-dev-qa-db-fra.com

WordPress multisite avec mappage de domaine et hôte virtuel sur local avec faux domaine

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.php 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!

3
stormchaser

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>
.
.
.
1
BillK