web-dev-qa-db-fra.com

Multisite derrière Vernis

J'essaie d'utiliser varnish avec un site wp 3.0.5 avec réseau (multisite). Lorsque j'accède à l'URL de vernis, je reçois le message suivant:

Multisite only works without the port number in the URL.

Ai-je besoin d'une VCL personnalisée pour que cela fonctionne? J'utilise la même configuration d'arrière-plan pour d'autres sites wordpress qui fonctionnent très bien ..

Si j'ai besoin de demander ceci sur serverfault, faites-le-moi savoir et je vous le demanderai.

4
Vid Luther

J'ai trouvé un correctif ici: http://core.trac.wordpress.org/ticket/15936

Vous devez fondamentalement modifier wp-includes/ms-settings.php comme ceci (remove '-' lines; ajoutez la ligne '+'):

@@ -26,18 +26,8 @@
  if ( !isset( $current_site ) || !isset( $current_blog ) ) {
+        $_SERVER['HTTP_Host'] = preg_replace( '|:\d+$|', '', $_SERVER['HTTP_Host'] );
         $domain = addslashes( $_SERVER['HTTP_Host'] );
-        if ( false !== strpos( $domain, ':' ) ) {
-               ....
-                        wp_die( /*WP_I18N_NO_PORT_NUMBER*/'Multisite only works without the port number in the URL.'/*/WP_I18N_NO_PORT_NUMBER*/ );
-                }
-        }
2
webXL

ce message d'erreur Wordpress est probablement trompeur.

Wordpress recherche le nom de domaine dans $_SERVER['HTTP_Host'] (Manuel PHP) et s'il contient un numéro de port (séparé par: comme d'habitude, comme http://example.com:444/ ), il n'en acceptera que deux. variantes: port 80 et port 443.

Je suppose que dans votre configuration de vernis, d’autres ports sont indiqués et que vous tombez sur celui-ci.

Je ne suis pas un expert en vernis, mais c'est là que je commencerais à bricoler. Tout d'abord je voudrais sortir cette valeur. Le fichier en question est /wp-includes/ms-settings.php, ~ ligne 38. Vous pouvez commencer à ajouter une var_dump($_SERVER['HTTP_Host']); avant l'instruction wp_die.

3
hakre