【问题标题】:Symfony 2 assetic error 500 using controller in dev mode, works fine dumping from CLI?Symfony 2 资产错误 500 在开发模式下使用控制器,从 CLI 转储正常吗?
【发布时间】:2014-01-01 20:01:26
【问题描述】:

我的服务器是一个运行 CentOS x64 的自定义虚拟服务器,node 已安装并正在运行。资产配置:

assetic:
    use_controller: false
    node:           /usr/bin/node
    filters:
        less:
            node_paths: [/usr/lib/node_modules/]

当我使用 less 过滤器访问任何页面时,我收到以下错误(CSS 生成文件的内容):

exception] 500 | Internal Server Error | Symfony\Component\Process\Exception\RuntimeException
[message] The process has been signaled with signal "11".
[1] Symfony\Component\Process\Exception\RuntimeException: The process has been signaled with signal "11".
    at n/a
        in /var/www/vhosts/mydomain.it/vendor/symfony/symfony/src/Symfony/Component/Process/Process.php line 318

    at Symfony\Component\Process\Process->wait()
        in /var/www/vhosts/mydomain.it/vendor/symfony/symfony/src/Symfony/Component/Process/Process.php line 197

    at Symfony\Component\Process\Process->run()
        in /var/www/vhosts/mydomain.it/vendor/kriswallsmith/assetic/src/Assetic/Filter/LessFilter.php line 149

    at Assetic\Filter\LessFilter->filterLoad(object(FileAsset))
        in /var/www/vhosts/mydomain.it/vendor/kriswallsmith/assetic/src/Assetic/Filter/FilterCollection.php line 62

    at Assetic\Filter\FilterCollection->filterLoad(object(FileAsset))
        in /var/www/vhosts/mydomain.it/vendor/kriswallsmith/assetic/src/Assetic/Asset/BaseAsset.php line 90

    at Assetic\Asset\BaseAsset->doLoad('@vendor-dir: "../../../../../vendor";

但是,使用php app/console assetic:dump --env=dev 倾销资产可以正常工作。非常感谢任何帮助,谢谢。

编辑:我打开了一个问题here

【问题讨论】:

  • 您使用的是 APC 还是任何其他缓存?它们可能是分段错误的原因。尝试不启用任何一项。
  • 完全没有,服务器上的 cgi 速度很快,所以没有必要使用 APC..
  • 这看起来像是权限问题。您的网络用户可能没有所有必要的访问权限。尝试sudo su apache -s/bin/sh 或任何你的网络服务器运行,然后运行app/console assetic:dump --env=dev
  • 在 Windows 中也会发生...我认为这不是权限问题...
  • 您想使用带有资产的控制器生成,但您已使用use_controller: false 将其关闭。

标签: symfony symfony-2.3 assetic


【解决方案1】:

您可能想要:

  • 清除缓存
  • 以详细模式 (app/console assetic:dump -vvv) 执行 app/console assetic:dump 以检查您在构建资产时是否确实没有任何错误。

为什么?因为有时资产不能正确清除您的缓存。当您处于控制台模式时,assetic 还倾向于通过透明地失败来隐藏错误。

【讨论】:

  • 你确定你的node_path吗?我的猜测是您可能遇到了环境变量问题。在控制台模式下运行时,您可能会获得更多信息。
  • 请记住,从 Apache / Nginx 运行 Assetic / Symfony 时,您不会以同一用户身份运行。大多数时候,您无法访问在控制台模式下可以访问的环境变量。请记住,信号 11 与分段错误有关。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-02-06
  • 2013-03-02
  • 1970-01-01
  • 2012-04-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多