Предупреждение PHP: strpos (): пустая стрелка в D: \ Hosting \ 110000 \ html \ xxxx \ wp-admin \ includes \ network.php в строке 353 - PullRequest
0 голосов
/ 07 мая 2018

Я попытался установить мультисайт на свой сайт, когда щелкнул Настройка сети в инструментах:

Я получаю: Предупреждение PHP: strpos (): пустая стрелка в D: \ Hosting \ 110000 \ html \ xxxx \ wp-admin \ includes \ network.php в строке 353

/**
 * Prints step 2 for Network installation process.
 *
 * @since 3.0.0
 *
 * @global wpdb $wpdb WordPress database abstraction object.
 *
 * @param WP_Error $errors
 */
function network_step2( $errors = false ) {
    global $wpdb;

    $hostname          = get_clean_basedomain();
    $slashed_home      = trailingslashit( get_option( 'home' ) );
    $base              = parse_url( $slashed_home, PHP_URL_PATH );
    $document_root_fix = str_replace( '\\', '/', realpath( $_SERVER['DOCUMENT_ROOT'] ) );
    $abspath_fix       = str_replace( '\\', '/', ABSPATH );
    $home_path         = 0 === strpos( $abspath_fix, $document_root_fix ) ? $document_root_fix . $base : get_home_path();
    $wp_siteurl_subdir = preg_replace( '#^' . preg_quote( $home_path, '#' ) . '#', '', $abspath_fix );
    $rewrite_base      = ! empty( $wp_siteurl_subdir ) ? ltrim( trailingslashit( $wp_siteurl_subdir ), '/' ) : '';


    $location_of_wp_config = $abspath_fix;
    if ( ! file_exists( ABSPATH . 'wp-config.php' ) && file_exists( dirname( ABSPATH ) . '/wp-config.php' ) ) {
        $location_of_wp_config = dirname( $abspath_fix );
    }
    $location_of_wp_config = trailingslashit( $location_of_wp_config );

строка 353:

$home_path         = 0 === strpos( $abspath_fix, $document_root_fix ) ? $document_root_fix . $base : get_home_path();

Файлы Wordpress находятся не в корневой папке, а в подкаталоге, и используемый мной домен указывает на этот подкаталог.

Как добавить многосайтовую сеть WordPress?

Есть идеи, как это решить.

Пожалуйста, помогите.

Скриншот скрипта

1 Ответ

0 голосов
/ 08 мая 2018

Есть небольшая цепочка для подражания:

игла - это $document_root_fix.
Который создан частично с $_SERVER['DOCUMENT_ROOT']

Полагаю, $_SERVER['DOCUMENT_ROOT'] не установлено или не пусто.
Если это так, то, вероятно, виноват Apache. Как вы устанавливаете мультисайт? Через веб-сайт или вы используете какой-либо инструмент, такой как wp-cli ?

Грязное решение - жестко закодировать это исправление.

$home_path = get_home_path();

!!! Обязательно верните его после установки !!!

...