1

我在我的家庭(开发)系统上使用 Bolt CMS 系统制作了一个功能齐全的网站。在完成并测试所有内容后,我将网站放在生产网络服务器上,它就像一个魅力,除了一件事:访问、上传和选择文件不起作用。此外,当我尝试访问后端(http://.../bolt/files)中的文件部分时,我收到错误:

Whoops\Exception\ErrorException thrown with message "syntax error, unexpected '['"

Stacktrace:
#0  in /home/etxean/domains/etxean.net/public_html/vendor/league/flysystem/src/Filesystem.php:154

这是writeStream我检查文件权限的函数内部,这些都可以。知道在哪里可以调试此错误吗?

4

2 回答 2

2

有问题的文件使用 PHP 5.4。数组表示法。

在 5.4 之前,数组总是被声明为

$foo = array(1, 2, 3);

从 PHP 5.4 开始,您可以使用 JS(ON)/Python 样式的数组表示法:

$foo = [1, 2, 3];

解决方案:如果你想使用这个库,你应该将你的服务器至少升级到 PHP 5.4。

从理论上讲,您也可以修改源文件以使用 PHP 5.3 运行,但这在可维护性方面是一个非常糟糕的主意。

于 2014-09-13T21:28:06.973 回答
2

@lxg 是正确的,因为这是由 PHP 5.3/5.4 错误引起的。

为了保持与 5.3 的兼容性,我们使用了 Flysystem 存储库的分叉版本,但您似乎正在加载真正的版本。

我猜这可能是因为您已将 Bolt 作为作曲家包安装,而不是下载发行版。

如果是这样,那么您可以将 fork 添加到您 Bolt 站点根目录中的 composer.json 文件中。它应该如下所示:

"repositories": [{
    "type": "vcs",
        "url": "http://github.com/rossriley/flysystem"
}],

然后运行 ​​composer update 并且 Flysystem 包将被 fork 替换。

于 2014-09-14T08:31:41.153 回答