обновите Typo3 7.6 до 8.7, не можете заставить интерфейс работать в локальной тестовой среде с XAMPP - PullRequest
0 голосов
/ 23 октября 2018

Я работаю над обновлением Typo3 7.6 до 8.7.Я делаю это на моей локальной машине с XAMPP на Windows с PHP 7.2.

Я получил работающий бэкэнд.В БД потребовалась ручная работа, например, изменение CType в tt_content для моих собственных элементов контента, а также заполнение colPos.

Однако, когда я вызываю страницу на веб-интерфейсе, все, что я получаю, это тайм-аут:

    Fatal error: Maximum execution time of 60 seconds exceeded in
 C:\xampp\htdocs\typo3_src-8.7.19\vendor\doctrine\dbal\lib\Doctrine\DBAL\Driver\Mysqli\MysqliStatement.php on line 92

(это не меняется, если я установлю max_execution_time на 300)


Редактировать: я добавил echo непосредственно перед строкой 92 в вышеуказанном файле, это функция:

public function __construct(\mysqli $conn, $prepareString)
    {
        $this->_conn = $conn;
        echo $prepareString."<br />";
        $this->_stmt = $conn->prepare($prepareString);
        if (false === $this->_stmt) {
            throw new MysqliException($this->_conn->error, $this->_conn->sqlstate, $this->_conn->errno);
        }

        $paramCount = $this->_stmt->param_count;
        if (0 < $paramCount) {
            $this->types = str_repeat('s', $paramCount);
            $this->_bindedValues = array_fill(1, $paramCount, null);
        }
    }

То, что я получаю, это следующее выражение 1000 раз, всегда точно то же самое:

`SELECT `tx_fed_page_controller_action_sub`, `t3ver_oid`, `pid`, `uid` FROM `pages` WHERE (uid = 0) AND ((`pages`.`deleted` = 0) AND (`pages`.`hidden` = 0) AND (`pages`.`starttime` <= 1540305000) AND ((`pages`.`endtime` = 0) OR (`pages`.`endtime` > 1540305000)))`

Примечание. У меня нет записей на страницах с uid = 0.Так что я действительно не уверен, для чего это хорошо.Должна ли быть страница с uid = 0?


Я включил медленный запрос регистрации в mysql, но ничего с ним не регистрировалось.Я не получаю никакой дополнительной ошибки PHP, и при этом я не получаю запись журнала в typo3.

Так что сейчас я немного застрял и не знаю, что делать дальше.

Я включил ведение общего журнала для mysql, и когда я вызываю страницу на внешнем интерфейсе, этот SQL-запрос выполняется поверхи снова:

SELECT `tx_fed_page_controller_action_sub`, `t3ver_oid`, `pid`, `uid` FROM `pages` WHERE (uid = 0) AND ((`pages`.`deleted` = 0) AND (`pages`.`hidden` = 0) AND (`pages`.`starttime` <= 1540302600) AND ((`pages`.`endtime` = 0) OR (`pages`.`endtime` > 1540302600)))

выполнение этого запроса вручную возвращает пустой результат (у меня нет записей на страницах с uid = 0).Я не знаю, означает ли это что-нибудь ..

Какие варианты у меня есть?Как я могу найти то, что пропало / где ошибка?

Ответы [ 2 ]

0 голосов
/ 23 октября 2018

Поле tx_fed_page_controller_action_sub происходит от расширения, которое не является частью ядра.Скорее всего, в вашей системе установлены флюсы и жидкостные страницы.

Попробуйте деактивировать эти расширения и продолжить без них.Реинтегрируйте их позже, если они вам все еще нужны.Тайм-аут часто означает, что происходит какая-то рекурсия.Исходя из моего опыта работы с flux, возможно, что элемент содержимого сам по себе задан как собственный flux_parent и поэтому создает бесконечный цикл рендеринга, который приведет к фатальному исходу после max_execution_time.

Итак, в вашем случае я 'Попытайтесь найти запись, которая вызывает это (кажется, запись страницы) и / или код, который инициирует Запрос.Вам не нужно отлаживать в самой доктрине:)

0 голосов
/ 23 октября 2018

Первый : дайте PHP больше времени для запуска.
в конфигурации php.ini увеличьте максимальное время выполнения до 240 секунд.
имейте в виду, что для TYPO3 в производственном режиме 240 секундрекомендуютсяЕсли вы запустите install-tool , вы можете выполнить проверку системы и получить информацию о конфигурации, которая может потребовать оптимизации.

Секунда : избегатьрежим разработки и режим производства.
выполнение выполняется быстрее, но вы потеряете возможность отладки.

отладка всегда требует больше времени и больше памяти для подготовки всей этой информации.может быть, 240 секунд недостаточно, и вам даже нужно больше памяти.

...