【问题标题】:Need to run 'composer update' on ssh on hostgator, but php -v to low需要在 hostgator 上的 ssh 上运行“composer update”,但 php -v 要低
【发布时间】:2017-01-31 07:30:13
【问题描述】:

需要帮助????

框架 - Laravel

托管 - Hostgator

问题陈述:- 我需要运行“作曲家更新”。所有依赖项都需要最低 5.5.9 的 php -v。我已经使用“Php configration”插件将项目目录的 php 版本从 cpanel 手动升级到 5.6。但是当我使用 ssh 登录时,我得到了 5.4.45 的 php -v。当然它针对的是服务器的默认php版本。有没有办法在 ssh 上将 php 更新到 5.6 或更高版本。没有 root 用户访问权限。支持团队也没有帮助。 ????

【问题讨论】:

  • 如果您尝试通过 cPanel 更新 PHP 但服务器上没有更新,您肯定需要与 HostGator 交谈。试试他们的论坛或开票。你说没有帮助,但他们应该能够做些什么来更新它。
  • 这是因为 command line (CLI) 和 webserver 运行的 PHP 版本不同。通过 SSH 执行功能时,它会查看 CLI。它们应该是相同的版本。
  • 嗨@aynber,谢谢,但我已经和hostgator谈过了,但他们回答说他们无法更新共享主机的默认php -v。
  • @Ohgodwhy,是的,我知道,这就是为什么我提到 “它针对服务器的默认 php 版本”。 感谢您的回复。
  • 确实如此。我指出为什么您永远无法在共享托管环境中执行此操作。不会发生。每月支付 20 美元购买 Laravel Forge 来管理您的服务器,或者购买便宜的 VPS 并在您愿意的情况下构建一个。

标签: php laravel ssh


【解决方案1】:

在 ssh 中使用这个命令

$ nano ~/.bashrc

然后粘贴这些行,你可以在opt/php55为5.5后更改php版本,71为7.1相应

alias php='/opt/php71/bin/php'
alias composer='/opt/php71/bin/php ~/bin/composer'
export DRUSH_PHP='/opt/php71/bin/php'

现在,重新获取文件,以便命令行获取新别名

 $ . ~/.bashrc

现在检查版本

$ php --version

简单的技巧是,如果您想使用 php7.1 运行工匠命令,请使用此命令

   $ /opt/php71/bin/php artisan

【讨论】:

  • 不错!我不知道这是可能的。获取 php 路径:composer diagnostic。对于 php 路径,我使用 composer slef-update commande 中的错误消息
  • @Adnan - 干得好!!
  • 我按照说明进行操作,但收到消息无法打开输入文件:/home1/username/bin/composer。我该怎么办?
  • 请将“composer.phar”文件上传到 bin/composer 文件夹中,然后尝试。您可以从getcomposer.org/download下载文件
  • alias composer='/opt/php71/bin/php /opt/cpanel/composer/bin/composer'
【解决方案2】:

使用 PRO/共享主机(在 Hostgator.com.br 中测试)您可以在 SSH 中执行此操作(将用户面板更改为您自己的):

vim /home/usercpanel/.bashrc

在下一页中,如果它是空白的,请插入值:

# .bashrc

# Source global definitions
if [ -f /etc/bashrc ]; then
 . /etc/bashrc
fi

# User specific aliases and functions

紧接着,你会放(你可以更改php版本:71、72、73或74):

alias php='/opt/cpanel/ea-php74/root/usr/bin/php'
export PATH="/opt/cpanel/ea-php74/root/usr/bin:$PATH"

保存更改并退出。

现在,插入此代码以加载新配置(将 usercpanel 更改为您自己的):

source /home/usercpanel/.bashrc

并且,插入此代码以验证是否已加载别名。

alias | egrep 'php'

然后,检查路径是否显示在 PATH 变量中:

echo $PATH | egrep '/opt/cpanel/ea-php74/root/usr/bin'

完成!经过测试,对我来说工作正常。

【讨论】:

    【解决方案3】:

    最近我更新了我的 ma​​c_system
    中的 composer 和 php 并通过终端

    使用这些命令

    -Mac os 本地 php 更新 curl -s http://php-osx.liip.ch/install.sh | bash -s 7.0

    -export PATH=/usr/local/php5/bin:$PATH(更改php版本创建项目)

    php update

    这个上面的链接..我用过..所以尝试使用命令或链接。 我想你会对此有所了解。

    【讨论】:

    • 感谢您的帮助,但我认为服务器上没有更新 OS X 版本,在终端上收到此消息“不支持您的 OS X () 版本,您至少需要 10.6”
    【解决方案4】:

    实际上有一种解决方法可以让较新版本的 php 和 composer 通过 ssh 在共享主机环境(例如 hostgator)上工作。

    尝试将以下行添加到您的 .bash_profile 或 .bashrc 并为您的 bash shell 提供资源。 PHP 的默认版本现在应该更改为您指定的任何版本。

    alias php='/opt/php{VERSION_NUMBER}/bin/php'
    alias composer='/opt/php{VERSION_NUMBER}/bin/php ~/bin/composer'
    export DRUSH_PHP='/opt/php{VERSION_NUMBER}/bin/php'
    

    使用 php -v 检查 php 的版本并测试 composer 是否工作。 如果 composer 仍然无法工作,请按照说明将其安装在 ~/bin/composer 文件夹中 首先使用说明 https://getcomposer.org/download/ 安装 composer。

    至少我就是这么做的!

    【讨论】:

      【解决方案5】:

      只为像我这样受苦的人。

      您可以在 Hostgator 命令行 (CLI) 中使用我的技巧。每次我想在 Hostgator 共享主机上使用 CLI 和 Laravel 5.6(需要 PHP 7.1)时,它都适用。

      $ /opt/php71/bin/php /home/{your_directory}/composer.phar update
      

      我在同一个共享主机上有几个 Laravel 项目,因此 {your_directory} 可以根据您的项目目录路径进行更改。

      【讨论】:

      • 如果您不想弄乱默认路径,在共享主机上,这也是 /opt/php71/bin/php /opt/cpanel/composer/bin/composer 安装的好方法
      【解决方案6】:

      使用别名对我不起作用。其实composer确实有效,但是调用ran artisan的时候,出现了“Parse error: syntax error, unexpected 'class'”之类的错误(用php5代替了php7)

      我不得不将/opt/php71/bin/php 复制到~/home/bin 然后修改~/.bash_profile 以首先使用我的本地bin 路径

      PATH=~/bin:$PATH
      

      (然后我运行. ~/.bash_profile 以应用更改)

      本来希望使用ln -s /opt/php71/bin/php ~/bin 的符号链接,但它不起作用(权限被拒绝)。

      【讨论】:

        猜你喜欢
        • 2016-09-07
        • 2012-12-02
        • 1970-01-01
        • 2017-02-06
        • 2020-02-07
        • 2020-02-02
        • 2022-01-16
        • 1970-01-01
        • 2021-10-27
        相关资源
        最近更新 更多