【问题标题】:Symfony Webserver require index.php issueSymfony Webserver 需要 index.php 问题
【发布时间】:2018-05-29 20:54:44
【问题描述】:

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

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

警告:需要(index.php):打开流失败:没有这样的文件或 目录在 (...)vendor\symfony\symfony\src\Symfony\Bundle\WebServerBundle\Resources\router.php 在第 45 行

致命错误:require(): 未能打开所需的 'index.php' (include_path='C:\xampp\php\PEAR') 在 (...)vendor\symfony\symfony\src\Symfony\Bundle\WebServerBundle\Resources\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 的环境变量)但是当我在另一个 3.4.1 symfony 版本中运行服务器时,结果是

字符串(11)“app_dev.php”

一切正常。

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

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

提前致谢。

【问题讨论】:

  • 这是弹性应用还是标准框架应用?它是一个新的 3.4.1 应用程序还是您之前从早期版本升级?你正在使用 bin/console server:start 还是 run?

标签: symfony symfony-3.4


【解决方案1】:

这是 3.4.2 中的一个错误,已被报告:

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

所以目前唯一的选择是降级到 3.4.1,使用另一个网络服务器或修复它并提交 PR。

【讨论】:

  • 糟糕。我刚刚删除了我的评论。我将 4.0.0 升级到 4.0.2,它运行良好。还没试过3.4。我刚刚发现,如果我删除一条评论,那么引用它的 cmets 也会被删除。有趣的东西。
  • 啊,是的,我猜这个问题与 BC 层有关,然后与旧结构有关。编辑:不,我也刚刚删除了我的,因为它似乎不再相关:D
  • 我刚刚使用旧的标准框架样式将 3.4.1 更新为 3.4.2,并且 server:start 似乎工作得很好。
  • 有趣。因此,这不是一个既好又坏的普遍错误。希望团队能为所有受影响的人解决这个问题。
猜你喜欢
  • 1970-01-01
  • 2011-06-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-04
  • 2017-10-29
  • 2019-08-07
  • 2010-12-13
相关资源
最近更新 更多