【问题标题】:Internal Server Error with Endroid/Qrcode and __DIR__ const on Symfony 2Symfony 2 上 Endroid/Qrcode 和 __DIR__ const 的内部服务器错误
【发布时间】:2017-05-03 14:45:44
【问题描述】:

我正在使用 endroid 二维码包来创建二维码对象。我有一个严重错误,因为此捆绑包中的 QRCode 对象 (https://github.com/endroid/QrCode/blob/master/src/QrCode.php) 使用此常量。如果我修改 QRCode 的来源一切正常,但显然这不是一个好的解决方案。为什么我在 symfony 上有这个错误?我该如何解决? 这是我的错误

Parse Error: syntax error, unexpected '.', expecting ',' or ';'
500 Internal Server Error - FatalErrorException

这是捆绑包:https://github.com/endroid/QrCode

【问题讨论】:

    标签: php symfony qr-code


    【解决方案1】:

    原因可能是您当前服务器的 PHP 版本:如果您的 PHP 版本低于 5.6,则 PHP 不允许在常量中连接。仅从 PHP 5.6.0

    开始允许

    注意
    PHP 5.6.0 中添加了常量表达式支持。

    来源:http://php.net/manual/en/language.oop5.constants.php#example-185

    来自 SO 的相关回答让我到达了那里:https://stackoverflow.com/a/36693544/2123530

    【讨论】:

    • 我刚刚将我的虚拟机 (vagrant) 的 php 升级到 php 5.6.30 以运行该捆绑包。我会做错什么?
    • Apache 还没有加载升级后的 php.so 模块?请记住,您可能有不同版本的 PHP 客户端或 apache 端。您可以通过 Symfomy 调试栏确认应该从 apache 端为您提供 PHP 版本。
    • 这可能是我的情况,当我在 phpunit 中启动测试一切正常时,我只能在手动测试我的 webapp 时看到该错误。那么,如何在我的 vagrant 虚拟机上查看 apache 端的 php 版本?
    • 在 Symfony 上最简单的方法是单击 Symfony 调试栏,然后从左侧菜单进入 Configuration。另一种方法是简单地创建一个虚拟 php 文件,该文件将读取 <?php phpinfo(); ?> 并访问它。
    • 您必须编辑您的 apache 配置才能使用新的 PHP 版本。您很可能应该查看 /etc/apache2/https.conf。在那里寻找一个加载的 PHP 模块(一个 .so 文件)并将其调整为指向您更新的 PHP 版本。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-19
    • 1970-01-01
    相关资源
    最近更新 更多