Развертывание Symfony 4 не работает

Я пытаюсь развернуть проект Symfony 4 на своем сервере, но у меня возникают проблемы с его производством (локально он работает отлично).

Раньше я развернул на своем сервере много проектов Symfony 3, поэтому решил протестировать Symfony 4.

Это ошибка, которую я получаю в своем журнале:

[06 декабря, среда, 10: 26: 33.141952 2017] [: ошибка] [pid 13485] [клиент 84.120.210.249:50394] Неустранимая ошибка PHP: Uncaught TypeError: возвращаемое значение Symfony \ Component \ Dotenv \ Dotenv :: populate () должно быть экземпляром Symfony \ Component \ Dotenv \ void, ни один не вернулся в /var/www/my_project/vendor/symfony/dotenv/Dotenv.php:95\nStack trace: \ n # 0 / var / www / my_project / vendor / symfony / dotenv / Dotenv.php (57): Symfony \ Component \ Dotenv \ Dotenv-> populate (Array) \ n # 1 /var/www/my_project/public/index.php(15): Symfony \ Component \ Dotenv \ Dotenv-> load ('/ var / www / rodage ...') \ n # 2 {main} \ n брошено в /var/www/my_project/vendor/symfony/dotenv/Dotenv.php в строке 95

Это мой index.php (по умолчанию index.php, который вы получаете при создании проекта):

<?php

use App\Kernel;
use Symfony\Component\Debug\Debug;
use Symfony\Component\Dotenv\Dotenv;
use Symfony\Component\HttpFoundation\Request;

require __DIR__.'/../vendor/autoload.php';

// The check is to ensure we don't use .env in production
if (!isset($_SERVER['APP_ENV'])) {
    if (!class_exists(Dotenv::class)) {
        throw new \RuntimeException('APP_ENV environment variable is not defined. You need to define environment variables for configuration or add "symfony/dotenv" as a Composer dependency to load variables from a .env file.');
    }
    (new Dotenv())->load(__DIR__.'/../.env');
}

if ($_SERVER['APP_DEBUG'] ?? ('prod' !== ($_SERVER['APP_ENV'] ?? 'dev'))) {
    umask(0000);

    Debug::enable();
}

if ($trustedProxies = $_SERVER['TRUSTED_PROXIES'] ?? false) {
    Request::setTrustedProxies(explode(',', $trustedProxies), Request::HEADER_X_FORWARDED_ALL ^ Request::HEADER_X_FORWARDED_HOST);
}

if ($trustedHosts = $_SERVER['TRUSTED_HOSTS'] ?? false) {
    Request::setTrustedHosts(explode(',', $trustedHosts));
}

$kernel = new Kernel($_SERVER['APP_ENV'] ?? 'dev', $_SERVER['APP_DEBUG'] ?? ('prod' !== ($_SERVER['APP_ENV'] ?? 'dev')));
$request = Request::createFromGlobals();
$response = $kernel->handle($request);
$response->send();
$kernel->terminate($request, $response);

Вот что у меня есть в моем composer.json:

"require": {
    "php": "^7.1.3",
    "symfony/asset": "^4.0",
    "symfony/console": "^4.0",
    "symfony/dotenv": "^4.0",
    "symfony/flex": "^1.0",
    "symfony/framework-bundle": "^4.0",
    "symfony/lts": "^4@dev",
    "symfony/twig-bundle": "^4.0",
    "symfony/web-server-bundle": "^4.0",
    "symfony/yaml": "^4.0"
},

Вот что я пробовал:

-cache: очистить

-композитор обновление

-apache перезапуск

Я думаю, что это что-то о переменных среды, но не совсем уверен ...

Какие-либо предложения?

Всем спасибо за уделенное время!


person Roman Bas    schedule 06.12.2017    source источник


Ответы (1)


Возврат аннулирования доступен только с PHP 7.1. Я предполагаю, что вы используете более раннюю версию PHP.

Посмотрите этот ответ

person obax    schedule 06.12.2017
comment
php -v: PHP 7.1.12-1 + ubuntu16.04.1 + deb.sury.org + 1 (cli) (построено: 29 ноября 2017 г., 10:03:25) (NTS) После редактирования моего composer.json с помощью dotenv 3.4 I появилась новая ошибка ... Неустранимая ошибка PHP: значение по умолчанию для параметров с типом класса может быть только NULL в /var/www/my_project/vendor/symfony/config/ResourceCheckerConfigCache.php Нет смысла для такого рода ошибок. В localhost мое приложение отлично работает - person Roman Bas; 06.12.2017