Многоузловой за Лаком


Я пытаюсь использовать varnish с сайтом wp 3.0.5 с сетью (мультисайт), когда я получаю доступ к URL-адресу varnish, я получаю следующее сообщение:

Multisite only works without the port number in the URL.

Нужен ли мне пользовательский VCL, чтобы это работало? Я использую ту же конфигурацию серверной части для других сайтов WordPress, которые работают нормально..

Если мне нужно задать этот вопрос на сервере, дайте мне знать, и я спрошу там.

Author: hakre, 2011-02-08

2 answers

Я нашел исправление здесь: http://core.trac.wordpress.org/ticket/15936

Вам в основном нужно изменить wp-includes/ms-settings.php вот так (удалите строки "-"; добавьте строку "+"):

@@ -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
Author: webXL, 2011-02-09 14:15:02

Это сообщение об ошибке Wordpress, вероятно, вводит в заблуждение.

Wordpress ищет доменное имя в $_SERVER['HTTP_HOST'] ( Руководство по PHP) и если он содержит номер порта (разделенный: как обычно, как http://example.com:444 /) он будет принимать только два варианта: порт 80 и порт 443.

Я предполагаю, что в вашей конфигурации varnish указаны другие порты, и поэтому вы сталкиваетесь с этим.

Я не специалист по лаку, но именно с этого я бы начал возиться. Первый из всех я бы вывел это значение. Файл, о котором идет речь, /wp-includes/ms-settings.php, ~ строка 38. Вы можете начать добавлять var_dump($_SERVER['HTTP_HOST']); перед оператором wp_die.

 3
Author: hakre, 2011-02-08 23:40:02