Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 新骨架Symfony 4应用程序中出现致命错误_Php_Symfony_Symfony4 - Fatal编程技术网

Php 新骨架Symfony 4应用程序中出现致命错误

Php 新骨架Symfony 4应用程序中出现致命错误,php,symfony,symfony4,Php,Symfony,Symfony4,(我以前曾尝试问过同样的问题,但引用了错误的错误消息;这是正确的版本): 从symfony/skeleton创建新应用程序后,在浏览器中加载public dir会产生内部服务器错误500 web服务器错误日志获取如下项: [Thu Jan 25 19:26:35.881140 2018] [:error] [pid 26752] [client .....:64137] PHP Fatal error: Uncaught TypeError: Return value of

(我以前曾尝试问过同样的问题,但引用了错误的错误消息;这是正确的版本):

从symfony/skeleton创建新应用程序后,在浏览器中加载public dir会产生内部服务器错误500

web服务器错误日志获取如下项:

    [Thu Jan 25 19:26:35.881140 2018] [:error] [pid 26752] [client .....:64137]
    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
    ...../hellow/vendor/symfony/dotenv/Dotenv.php:95\n
    Stack trace:\n#0 ..../hellow/vendor/symfony/dotenv/Dotenv.php(57):
    Symfony\\Component\\Dotenv\\Dotenv->populate(Array)\n
    #1 ...../hellow/public/index.php(15): 
    Symfony\\Component\\Dotenv\\Dotenv->load('....')\n
    #2 {main}\n  thrown in ..../hellow/vendor/symfony/dotenv/Dotenv.php
    on line 95
在index.php中,第15行表示:

    (new Dotenv())->load(__DIR__.'/../.env');
在Dotenv.php中,第95行是populate()方法的右大括号,不带return语句

PHP和Symfony的版本:

    php --version
    PHP 7.2.1-1+ubuntu16.04.1+deb.sury.org+1 (cli) (built: Jan  5 2018 13:54:13) ( NTS )
    Copyright (c) 1997-2017 The PHP Group
    Zend Engine v3.2.0, Copyright (c) 1998-2017 Zend Technologies
    with Zend OPcache v7.2.1-1+ubuntu16.04.1+deb.sury.org+1, Copyright (c) 1999-2017, by Zend Technologies

    php ....hellow/bin/console --version
    Symfony 4.0.3 (kernel: src, env: dev, debug: true)
这是…hellow/.env文件的内容:

    $ cat ....hellow/.env
    # This file is a "template" of which env vars need to be defined for your application
    # Copy this file to .env file for development, create environment variables when deploying to production
    # https://symfony.com/doc/current/best_practices/configuration.html#infrastructure-related-configuration

    ###> symfony/framework-bundle ###
    APP_ENV=dev
    APP_SECRET=....
    #TRUSTED_PROXIES=127.0.0.1,127.0.0.2
    #TRUSTED_HOSTS=localhost,example.com
    ###< symfony/framework-bundle ###
$cat….hellow/.env
#此文件是一个“模板”,需要为您的应用程序定义其环境变量
#将此文件复制到.env文件进行开发,在部署到生产环境时创建环境变量
# https://symfony.com/doc/current/best_practices/configuration.html#infrastructure-相关配置
###>symfony/frameworkbundle###
APP_ENV=dev
应用程序_机密=。。。。
#受信任的_代理=127.0.0.1127.0.0.2
#TRUSTED_HOSTS=localhost,example.com
###

在我看来,populate()方法应该返回一个类为Symfony\Component\Dotenv\void的对象,但是在骨架中有这样一个遗漏听起来很奇怪


让它工作的正确方法是什么?

结果是apache2仍然使用旧的php7.0,而不是最近安装的php7.2

php——版本显示为7.2,这让我确信我正在运行7.2,直到我在浏览器中检查了phpinfo()的结果

我必须做:

    apt install apache2 libapache2-mod-php7.2
    a2dismod php7.0
    a2enmod php7.2
    service apache2 restart

然后骷髅应用程序工作正常

结果是apache2仍然使用旧的php7.0,而不是最近安装的php7.2

php——版本显示为7.2,这让我确信我正在运行7.2,直到我在浏览器中检查了phpinfo()的结果

我必须做:

    apt install apache2 libapache2-mod-php7.2
    a2dismod php7.0
    a2enmod php7.2
    service apache2 restart

然后骷髅应用程序工作正常

确认您的web服务器实际上使用的是PHP7.2,而不是早期版本。你可以用“非常感谢”之类的词,我就是这么做的,效果很好!:)确认您的web服务器实际上使用的是PHP7.2,而不是早期版本。你可以用“非常感谢”之类的词,我就是这么做的,效果很好!:)