需要在 hostgator 上的 ssh 上运行“composer update”,但 php -v 要低

Posted

技术标签:

【中文标题】需要在 hostgator 上的 ssh 上运行“composer update”,但 php -v 要低【英文标题】:Need to run 'composer update' on ssh on hostgator, but php -v to low 【发布时间】: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 并在您愿意的情况下构建一个。 【参考方案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/phpVERSION_NUMBER/bin/php'
alias composer='/opt/phpVERSION_NUMBER/bin/php ~/bin/composer'
export DRUSH_PHP='/opt/phpVERSION_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 的符号链接,但它不起作用(权限被拒绝)。

【讨论】:

以上是关于需要在 hostgator 上的 ssh 上运行“composer update”,但 php -v 要低的主要内容,如果未能解决你的问题,请参考以下文章

从托管在 Hostgator 服务器上的 PHP 脚本发送 SMTP 电子邮件

HostGator 上的 Linux 服务器显示未找到“HTTPRequest”类

如何将 wordpress 从 root 移动到 hostgator 上的新目录?

网络 Python 问题

为 PHP 安装 SSH2 以在 OSX 10.9.1 上的 Xampp Apache 服务器上运行

如何在一台机器上使用资源(.txt 文件)和另一台机器上的脚本在 ssh 上运行 shell 脚本?