2017-12-06 28 views
1

내 서버에 symfony 4 프로젝트를 배치하려고하는데, 생산을 완성하는데 문제가 있습니다 (완벽하게 작동합니다).Symfony 4 배치가 작동하지 않습니다.

는 이전에 나는 3 개 프로젝트 내 서버에서 심포니를 많이 배포 한, 그래서 이것은 내가 내 로그에지고있어 오류 4.

심포니을 테스트하기로 결정

[Wed Dec 06 10:26:33.141952 2017] [:error] [pid 13485] [client 84.120.210.249:50394] PHP Fatal error: Uncaught TypeError: Return value of Symfony\Component\Dotenv\Dotenv::populate() must be an instance of Symfony\Component\Dotenv\void, none returned in /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 thrown in /var/www/my_project/vendor/symfony/dotenv/Dotenv.php on line 95

이것은 내가 내 composer.json에있는 것입니다

<?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); 

:

이 내 index.php를 (프로젝트를 만들 때 당신이 얻을 기본 index.php를)입니다

,536,913

-cache :

"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": "^[email protected]", 
    "symfony/twig-bundle": "^4.0", 
    "symfony/web-server-bundle": "^4.0", 
    "symfony/yaml": "^4.0" 
}, 

이내가 시도한 것들

-composer 업데이트

내가 생각

다시 시작 -apache 분명 그것이 환경 변수에 대해 뭔가하지만, 확실하지 않다 ...

어떤 제안이라도?

감사합니다.

답변

0

공백은 PHP 7.1에서만 사용할 수 있습니다. 내 생각 엔 이전 버전의 PHP를 사용하고있는 것 같습니다.

Look at this answer

+0

의 PHP -v : PHP 7.1.12-1 ubuntu16.04.1 + + + 1 deb.sury.org (CLI) (내장 : 십일 29 10시 3분 25초 2017) (NTS)를 dotenv 3.4로 composer.json을 편집 한 후에 새로운 오류가 발생했습니다 ... PHP 치명적 오류 : 클래스 유형이있는 매개 변수의 기본값은/var/www/my_project/vendor/symfony/config/ResourceCheckerConfigCache.php 이런 종류의 오류에는 의미가 없습니다. 내 애플 리케이션 완벽하게 작동하는 localhost에서 –