Ошибка 500 в / проектов при первоначальной установке Directus - PullRequest
1 голос
/ 27 февраля 2020

Я установил текущую версию directus на свой VPS (Debian 10, PHP 7.3, Apache 2.4.38).

При запуске установки через браузер появляется ошибка в / logs говорит:

[2020-02-27 20:31:59] api []. ОШИБКА: ParseError: синтаксическая ошибка, неожиданное '?', ожидаемая переменная (T_VARIABLE) в / var / www/clients/client0/web16/web/vendor/symfony/translation-contracts/TranslatorTrait.php: 44

Для меня это звучит так, как будто это неправильная PHP версия, но PHP 7.3 запущена.

Я не знаю, важно ли это, но после игнорирования этого на странице, где вы вводите параметр соединения с базой данных, POST для / server / projects возвращает ошибку 500 «Внутренняя ошибка сервера».

Я не могу найти ни одной записи журнала.

  • Как найти причину для 500?
  • Можно ли настроить приложение без установки через браузер?

Редактировать Переключен обратно с master на v8.5.5 и в этом исходном коде есть функция транс:

/**
 * {@inheritdoc}
 */
public function trans(?string $id, array $parameters = [], string $domain = null, string $locale = null): string
{
    if (null === $id || '' === $id) {
        return '';
    }

    if (!isset($parameters['%count%']) || !is_numeric($parameters['%count%'])) {
        return strtr($id, $parameters);
    }

Так что есть Indee d Тип ?string.

Моя PHP версия должна справиться с этим, ИМО. Но раньше у меня был Debian 9 с PHP 7.0, где у меня была та же проблема, и именно поэтому я обновил Debian с 9 до 10.

Возможно ли, что кеш компиляции из Debian 9 все еще работает? настоящее?

Но я полагаю, это не главная проблема. Моя проблема заключается в том, что я получаю сообщение об ошибке 500, и, кроме записи журнала в 500 в apache error.log, я ничего не вижу, чтобы диагностировать эту проблему.

Ответы [ 2 ]

2 голосов
/ 28 февраля 2020

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

php -l path/to/file.php
1 голос
/ 28 февраля 2020

TranslatorTrait.php кажется поврежденным, потому что строка #44 на самом деле должна быть:

public function trans($id, array $parameters = [], $domain = null, $locale = null)

Итак, очевидно, не должно быть неожиданных ?. Попробуйте обновить sh composer зависимостей с помощью:

rm -rf vendor/*

А затем:

composer clearcache && composer install
...