我刚刚使用composer update命令将我的symfony版本从3.4.1更新到3.4.2(一切OK) .
当我试图启动服务器时,我收到以下消息:
警告:require(index.php):无法打开流:第45行(...)vendor \ symfony \ symfony \ src \ Symfony \ Bundle \ WebServerBundle \ Resources \ router.php中没有此类文件或目录致命错误:require():在(...)vendor \ symfony \ symfony \ src \ Symfony \ Bundle \ WebServerBundle \ Resources \ router中打开所需的'index.php'(include_path ='C:\ xampp \ php \ PEAR')失败第45行的.php
它提到了这种代码的和平
$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 回答
这是3.4.2中的错误,已经报告过:
https://github.com/symfony/symfony/issues/25515
所以现在唯一的选择是降级到3.4.1,使用另一个网络服务器或修复它并提交PR .