Я работаю над обновлением 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).Я не знаю, означает ли это что-нибудь ..
Какие варианты у меня есть?Как я могу найти то, что пропало / где ошибка?