Сайт не может отобразить страницу

16 мар. 2017 г., 14:00:38
Просмотры: 22.1K
Голосов: 11

Первый пост здесь.

Я разработчик в компании, и у нас есть публичный WordPress сайт (мы его хостим). Для этого вопроса предположим, что URL сайта http://mywordpresssite

Мы только что скопировали сайт внутренне на наш DEV сервер, чтобы выполнять на нем разработку. База данных MySQL также была скопирована, и если я перехожу по внутреннему URL, я могу просматривать страницу. Допустим, URL выглядит как http://mywpsite.

Проблема возникает, когда я пытаюсь получить доступ к админ-консоли на dev-сайте. На публичном сайте я использую http://mywordpresssite/wp-login.php, и это работает нормально. Если я использую http://mywpsite/wp-login.php, я получаю следующую веб-страницу.

скриншот сообщения об ошибке

Я не очень хорошо знаком с WordPress, есть ли у кого-нибудь советы, как решить эту проблему или где искать файлы для изменения?

Спасибо

ОБНОВЛЕНИЕ

У меня все еще есть проблема, но я продвинулся немного дальше в определении проблемы.

Я включил логирование ошибок на сайте, и когда я пытаюсь перейти на страницу администратора, лог ошибок показывает следующее:

[04-Apr-2017 07:31:22 UTC] PHP Warning: Illegal string offset 'remember' in D:\mywordpressstie\wp-includes\user.php on line 39 [04-Apr-2017 07:31:22 UTC] PHP Warning: Cannot assign an empty string to a string offset in D:\mywordpressstie\wp-includes\user.php on line 39 [04-Apr-2017 07:31:22 UTC] PHP Warning: Illegal string offset 'user_login' in D:\mywordpressstie\wp-includes\user.php on line 54 [04-Apr-2017 07:31:22 UTC] PHP Fatal error: Uncaught Error: Cannot create references to/from string offsets in D:\mywordpressstie\wp-includes\user.php:54 Stack trace:

0 D:\mywordpressstie\wp-login.php(775): wp_signon('', '')

1 {main} thrown in D:\mywordpressstie\wp-includes\user.php on line 54

Я искал в Google, но мои знания PHP/WordPress ограничены. Я нашел следующий URL ссылка на патч, но не знаю, как его использовать.

Кто-нибудь может помочь?

3
Комментарии

Вы можете проверить файл errors.log, чтобы узнать больше о том, что вызвало ошибку 500.

hcheung hcheung
16 мар. 2017 г. 15:53:17

где я могу найти этот файл

Silentbob Silentbob
16 мар. 2017 г. 16:16:43

Обычно он находится в директории /var/log/. Также вы можете отредактировать файл wp-config.php, чтобы включить режим отладки WordPress, подробнее по этой ссылке.

hcheung hcheung
17 мар. 2017 г. 02:11:18
Все ответы на вопрос 5
4
34

Я исправил это!!! Ура.

Использовал эту ссылку - ссылка на патч

Отредактировал строку, как указано, и всё работает отлично.

4 апр. 2017 г. 11:03:21
Комментарии

У меня тоже сработало на свежей установке WordPress (версия 5.1.1).

Jos Jos
18 апр. 2019 г. 11:22:35

Это решение также помогло нам. В нашем случае мы использовали WordPress 4.x и только что обновились до PHP 7.2. Оказалось, что наша версия WP не была совместима с PHP 7.1+ согласно тикету, упомянутому в ссылке на патч: https://core.trac.wordpress.org/ticket/37071. Но после ручного внесения изменений проблем не возникло!

sfarbota sfarbota
3 мар. 2020 г. 01:43:40

Отлично сработало на версии 4.3.25.

Alejo_Blue Alejo_Blue
5 апр. 2021 г. 19:45:50

Также работает в 4.2

Hoby Hoby
27 июн. 2024 г. 05:19:07
0

Похоже, есть проблема с версией WordPress.

https://core.trac.wordpress.org/attachment/ticket/37071/fix-wp-login-error.patch

Я исправил это, применив патч к файлу wp-login.php.

Line 793:
    - $user = wp_signon( '', $secure_cookie );
    + $user = wp_signon( array(), $secure_cookie );
23 апр. 2020 г. 01:42:25
0

Если вы скопировали все с действующего сайта, вам, вероятно, нужно проверить следующее:

  1. Проверьте файл wp-config.php, чтобы убедиться, что хост и учетные данные базы данных соответствуют локальной настройке базы данных;
  2. Убедитесь, что директории WordPress принадлежат правильному владельцу. Попробуйте выполнить команду sudo chown -R www-data:, заменив www-data на владельца, у которого есть доступ к веб-странице;
  3. Убедитесь, что директории имеют правильные права доступа, дополнительную информацию можно найти здесь.

Если проблема сохраняется, отредактируйте ваш пост и предоставьте обновленную информацию.

16 мар. 2017 г. 14:33:40
2

Похоже, что при переносе вашего сайта могли быть пропущены некоторые шаги. Раз вы упоминаете, что можете получить доступ к главной странице, это означает, что вы изменили файл wp-config.php, указав данные локальной базы данных.

Обновили ли вы таблицу wp-options? В этой таблице есть две важные строки, которые определяют URL сайта и домашней страницы.

Подробнее о перемещении сайта WordPress можно узнать здесь: https://codex.wordpress.org/Moving_WordPress. Вы можете свериться с инструкцией, чтобы убедиться, что не пропустили важные шаги при миграции.

Если вы используете Mac для локальной разработки, подробное руководство можно найти здесь: http://egalo.com/2012/05/15/clone-live-wordpress-to-local-env/.

Также проверьте, скопировали ли вы файл .htaccess с рабочего сайта на тестовый — он может содержать правила перезаписи, которые не будут работать в локальной среде. Попробуйте переименовать этот файл, чтобы проверить, не является ли он причиной проблемы.

16 мар. 2017 г. 14:36:30
Комментарии

да, я обновил таблицу wp-options с новым URL. Насколько я могу судить по вашей ссылке, я правильно выполнил все шаги

Silentbob Silentbob
16 мар. 2017 г. 16:02:03

Несколько предложений: 1) Проверили ли вы файл .htaccess? Был ли он скопирован с продакшн-сайта на тестовый?

2) Также, можете ли вы получить доступ ко всем страницам на тестовом сайте или только к главной странице?

3) Все ли плагины активны так же, как на продакшн-сайте? Если да, я бы предложил деактивировать их все (переместить содержимое wp-content/plugins в другую папку - это деактивирует плагины) - затем проверить, можете ли вы получить доступ к wp-admin

Sheeba Sheeba
16 мар. 2017 г. 18:47:07
0

Я получил эту ошибку после установки WordPress через Composer описание изображения

Отредактировал файл user.php в \plugin-wordpress\wp\wp-includes\user.php

Изменил следующие строки с:

function wp_signon( $credentials = array(), $secure_cookie = '' ) {
}

на:

Это решило проблему, и появилась форма входа WordPress.

function wp_signon() {
     $credentials = array(); $secure_cookie = '' ;
}
2 янв. 2022 г. 10:27:46