Symfony Webserver需要index.php问题

时间:2017-12-15 15:58:17

标签: symfony symfony-3.4

我刚刚使用composer update命令将我的symfony版本从3.4.1更新到3.4.2(一切正常)。

当我尝试启动服务器时,我收到以下消息:

  

警告:require(index.php):无法打开流:没有这样的文件或   目录   (......)供应商\ symfony的\ symfony中的\ src \的Symfony \包\ WebServerBundle \资源\ router.php   第45行

     

致命错误:require():打开所需的'index.php'失败   (include_path ='C:\ xampp \ php \ PEAR')in   (......)供应商\ symfony的\ symfony中的\ src \的Symfony \包\ WebServerBundle \资源\ router.php   第45行

它引用了这种代码的和平

$script = getenv('APP_FRONT_CONTROLLER') ?: 'index.php';

//var_dump(getenv('APP_FRONT_CONTROLLER'));
//die();

    $_SERVER = array_merge($_SERVER, $_ENV);
    $_SERVER['SCRIPT_FILENAME'] = $_SERVER['DOCUMENT_ROOT'].DIRECTORY_SEPARATOR.$script;

    // Since we are rewriting to app_dev.php, adjust SCRIPT_NAME and PHP_SELF accordingly
    $_SERVER['SCRIPT_NAME'] = DIRECTORY_SEPARATOR.$script;
    $_SERVER['PHP_SELF'] = DIRECTORY_SEPARATOR.$script;

    require $script; //<==== HERE!!!

当我在$ script变量中进行转储时,我的结果为false(没有名为APP_FRONT_CONTROLLER的env变量)但是当我在另一个3.4.1 symfony版本中运行服务器时,结果是

  

string(11)“app_dev.php”

一切正常。

这是我的环境中的版本问题还是问题。

如果您需要更多信息,请直接询问。

提前感谢。

1 个答案:

答案 0 :(得分:5)

这是3.4.2中的错误,已经报告过:

https://github.com/symfony/symfony/issues/25515

所以现在只有选项要么降级到3.4.1,要么使用其他网络服务器或者修改它并提交PR。