我在家庭(开发)系统上建立了一个功能齐全的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
函数内部,这些都没问题。知道在哪里调试这个错误吗?
答案 0 :(得分:2)
The file in question使用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运行,但在可维护性方面这是一个非常糟糕的主意。
答案 1 :(得分:2)
@lxg是正确的,因为这是由PHP 5.3 / 5.4错误引起的。
为了保持与5.3的兼容性,我们使用Flysystem repo的分叉版本,但似乎你正在加载真实的版本。
我猜这可能是因为你已经将Bolt安装为作曲家包而不是下载发行版。
如果是,那么您可以将fork添加到Bolt站点根目录中的composer.json文件中。它应该是这样的:
"repositories": [{
"type": "vcs",
"url": "http://github.com/rossriley/flysystem"
}],
然后运行一个作曲家更新,Flysystem包将被替换为fork。