【发布时间】:2018-02-28 22:03:29
【问题描述】:
在将我的 Laravel 项目克隆到服务器后,我一直在尝试使用 php artisan key:generate。但是,我收到以下错误:
Parse error: syntax error, unexpected '?' in /home/user/public_html/Score-Keeper/vendor/laravel/framework/src/Illuminate/Foundation/helpers.php on line 233
打开网站显示Laravel错误:RuntimeException. No application encryption key has been specified.
我在论坛上搜索过类似的问题,发现大多数人在使用 Laravel 5.5 时遇到了错误,并通过升级到 PHP7 来修复它。但是,我已经在本地和服务器上使用 PHP7 几个月了(还制作了一个 phpinfo 文件来确认 PHP7 在这个站点上运行)。
错误消息所指的代码行是下面的返回语句。
return app('cache')->get($arguments[0], $arguments[1] ?? null);
更新: 我在服务器上运行了 php -v,它说它是 PHP 5.6.31 (cli)。我假设我使用的 PHP 7 仅用于网站(在 .htaccess 文件中设置)而不是 cli。是否可以更新 cli 以在共享主机上使用 PHP7?我能找到的唯一适用于 linux 的示例需要 sudo
更新 2(解决方案): 发现 cli 使用的是 PHP 5.6 后,我联系了主机,他们说:
“php”别名的 PHP 版本无法更新,但您可以使用 PHP-CLI 二进制文件的路径来使用您需要的任何 PHP 版本,例如:
/usr/local/php70/bin/php-cli
所以我用/usr/local/php71/bin/php-cli artisan migrate代替了php artisan,这解决了问题。
【问题讨论】:
-
只有在没有运行 php7 时才会出现该错误,在 cli 上运行
php -v并将其粘贴到您的问题中。 -
谢谢!我已经更新了问题
-
web 和 artisan/cli 都需要 >=7 - 如果它是共享主机,您需要询问您的主机为什么它在 cli 上只有 5.6 而不是 7。您可以这样做
php -c /path/to/php.ini artisan ...但我不认为这会有所帮助。 -
你用的是什么类型的linux?
标签: php laravel-5 laravel-5.5