Laravel认为我的PHP版本不符合他们的最低要求,即使它不是

时间:2016-05-15 16:39:32

标签: php apache laravel cpanel

我将我的php版本更改为5.6但是当我运行composer update时,它仍然认为我使用的是5.4版本。

我的服务器版本是5.4,但我将项目目录php版本更改为5.6。我通过cpanel php配置更改了那个。这是截图: enter image description here

正如你所看到我将我的项目目录php版本更改为5.6,但是当我运行composer update时,它仍然认为我使用的是5.4版本。

我也尝试在我的composer.json中添加它:

"platform": {
            "php": "5.5.9"
        }

当我运行composer update时,它会安装一些依赖项,除了最后一个..它给了我这个错误:

Generating autoload files
> Illuminate\Foundation\ComposerScripts::postUpdate

Parse error: syntax error, unexpected 'class' (T_CLASS), expecting identifier (T_STRING) or variable (T_VARIABLE) or '{' or '$' in /home3/idmadm/public_html/app/vendor/laravel/framework/src/Illuminate/Foundation/helpers.php on line 146

当我检查helpers.php的第146行时,这是代码:

function auth($guard = null)
{
    if (is_null($guard)) {
        return app(AuthFactory::class); //THIS IS THE CODE!!
    } else {
        return app(AuthFactory::class)->guard($guard);
    }
}

我研究了这个错误,有些人说是因为我的PHP版本。我猜Laravel仍然认为我的PHP版本是5.4,实际上我将其改为5.6。

我怎样才能让Laravel知道我使用的是PHP 5.6版。

请帮忙!

您的帮助将受到高度赞赏和奖励!

谢谢! :)

PS:我之所以在目录中更改PHP版本,是因为我服务器中托管的某些网站不支持PHP 5.5 +。

2 个答案:

答案 0 :(得分:0)

删除作曲家并重新安装。因为当你安装composer时,它会写入php文件夹的路径作为路径。你现在应该更新这条路径。

答案 1 :(得分:0)

cpanel的普通服务器有2个PHP:

  • 内部使用的PHP / usr / local / cpanel / 3rdparty / bin /
  • 其他用于/ usr / local / lib上的apache。

系统管理员在/ usr / local / cpanel / 3rdparty / bin /上安装composer,这就是现在,PHP 5.4.31

 /usr/local/cpanel/3rdparty/bin/php -v

你有两个选择。

  • 与使用PHP的Sysadmin安装编写器托管您的托管
  • 在您的共享帐户上安装作曲家(最佳方式)