Многоузловой за Лаком
Я пытаюсь использовать varnish с сайтом wp 3.0.5 с сетью (мультисайт), когда я получаю доступ к URL-адресу varnish, я получаю следующее сообщение:
Multisite only works without the port number in the URL.
Нужен ли мне пользовательский VCL, чтобы это работало? Я использую ту же конфигурацию серверной части для других сайтов WordPress, которые работают нормально..
Если мне нужно задать этот вопрос на сервере, дайте мне знать, и я спрошу там.
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*/ );
- }
- }
Это сообщение об ошибке 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.