告诉Composer使用不同的PHP版本

告诉Composer使用不同的PHP版本,php,linux,laravel,composer-php,Php,Linux,Laravel,Composer Php,这件事我已经做了好几天了。我使用1和1托管,他们的PHP设置有点奇怪 如果我只使用php composer.phar安装,那么我使用的是PHP4.4.6,这远远不够。但是,我可以运行php5.5 composer.phar安装,再深入一点,但它仍然失败,因为在某个地方,PHP再次被调用,但它失败了,因为它使用的是4.4.6 有没有办法告诉Composer使用php5.5命令?是否有人在1和1主机上成功配置了Composer 我正在试着让Laravel启动并运行(使用Composer)。我已经能够

这件事我已经做了好几天了。我使用1和1托管,他们的PHP设置有点奇怪

如果我只使用
php composer.phar安装
,那么我使用的是PHP4.4.6,这远远不够。但是,我可以运行
php5.5 composer.phar安装
,再深入一点,但它仍然失败,因为在某个地方,PHP再次被调用,但它失败了,因为它使用的是4.4.6

有没有办法告诉Composer使用
php5.5
命令?是否有人在1和1主机上成功配置了Composer


我正在试着让Laravel启动并运行(使用Composer)。我已经能够在我的GoDaddy域上执行此操作,但不是1和1。

您可以更改
路径以覆盖php版本

PATH="/home/user/bin:$PATH"
/home/user/bin
(或任何其他目录)中,将名为php的符号链接到php5二进制文件

另一个选项是使用shell别名:

alias php="/path/to/php5"

您可以尝试将php和php配置文件复制到/usr/local/bin中。该路径具有更高的优先级,应该覆盖/usr/bin文件夹,而无需禁用SIP。这就是我所做的。

php5.5 composer.phar安装失败,因为您的
composer.json
告诉它运行
php
而不是
php5.5
,编辑文件
composer.json
替换对
php5.5
的php脚本引用。例如:

发件人:

致:

即使在执行此操作时,1和1对脚本执行也有内存限制,因此
php5.5 composer.phar安装不会失败,但也不会完成其执行。您仍然可以在安装后手动运行脚本


我已将Laravel webapps部署到1和1,但没有提交
供应商
目录,遵循以下指南:

在xubuntu上,我默认使用PHP7.2。但需要使用PHP5.6运行composer

这对我来说很有效:

php5.6 /usr/bin/composer

Ubuntu 18.04案例。。。这是我的跑步

/usr/bin/php7.1 /usr/local/bin/composer update

我在1&1(ionos)上也有一个共享托管帐户,下面是我必须做的:

如果您以root ssh帐户登录,则可以创建~/.bash_配置文件并添加

alias php="php7.1"
alias composer="php7.1 composer.phar"
这样,您现在就可以使用通常使用的命令,并且它可以正常工作。(将composer.phar放在项目文件夹根目录中)

然后,确保开发人员机器上的laravel composer.lock文件在1和1上进入项目文件夹并运行

composer install
使用@tobymackenzie的提示:在共享主机上,您真的应该从自己机器上创建的composer.lock文件中运行composer安装(而不是更新!)。这样,内存使用率仍然很低

我仍然有artisan命令的STDIN问题,因此请确保将.env文件更改为

APP_ENV=local
因为将其设置为production会在等待您键入
yes
时抛出无限的STDIN警告。至少在我看来是这样

希望这对某人有所帮助。

试试这种方法

ea-php72 /opt/cpanel/composer/bin/composer

只需将以下代码添加到composer.json文件中即可设置不同的php版本:

“配置”:{
“平台”:{
“php”:“7.1.3”
}
}

composer
是一个PHP二进制脚本,用于定义要执行的解释器

root@home:~# head /usr/local/bin/composer -n 5

#!/usr/bin/env php
<?php
/*
 * This file is part of Composer.
 *


/usr/bin/php7.1 /usr/local/bin/composer update
或者只是

root@home:~# php7.1 /usr/local/bin/composer
root@home:~# php7.2 /usr/local/bin/composer
root@home:~# php7.3 composer
...
要检查并查找所有已安装的PHP软件包,请转到
/usr/bin/

root@home:~# ls /usr/bin/ | grep php
php
php5.6
php7.1
php7.2
php7.3
php-config
php-config7.1
phpdbg
phpdbg5.6
phpize
phpize7.1

知道这个问题有点老了。。。但如果将composer下拉到应用程序根目录中:

不依赖全局编写器,您可以运行:

php56 composer.phar{your command}

或者我相信新的霍姆斯特德版本会是这样的:

php7.1 composer.phar{your command}


ubuntu18.04
case。。。这对我有用。在这里,Composer自动选择所需的PHP版本

/opt/lampp/bin/php /usr/bin/composer install


如果您只需要让composer忽略版本要求,可以使用以下方法绕过:

composer install --ignore-platform-reqs

我使用的是Hostgator共享帐户,以下内容对我有效:

php5.6 /usr/bin/composer
  • 首先,找出您想要的PHP版本所在的位置(您可以开始键入
    ea-PHP
    并点击
    TAB
    列出所有可用的可执行文件,从
    ea-PHP
    开始):

    哪个ea-php73

    /usr/local/bin/ea-php73
    
  • 然后,找出作曲家住的地方:

    哪个作曲家

    /opt/cpanel/composer/bin/composer
    
  • 然后使用这些命令运行composer命令:

    /usr/local/bin/ea-php73/opt/cpanel/composer/bin/composer安装


  • 必须在composer.json文件中添加两个位置以设置不同的php版本:

    “配置”:{
    “平台”:{
    “php”:“7.4”
    }
    }
    

    在我的例子中,Composer检测到PHP版本7.2.6,但我实际的PHP版本是8.0.2

    步骤01:-将以下代码添加到composer.json文件中

    "config": {
        "platform": {
            "php": "7.2.6"
        }
    }
    
    步骤02:-然后,运行以下命令

    C:\xampp\htdocs\your project name>composer update
    

    你总是可以用那种方式

    在包含composer.json文件的项目文件夹中。运行命令

     php7.4 /usr/local/bin/composer install
    

    其中php7.4可以是您的特定版本(php7.0、php5.5、php7.3等) 其中/usr/local/bin/composer包含composer的系统文件夹的路径

    !!!您应该有php7.4-cli

    sudo apt-get install -y php7.4-cli
    
    对于linux/ubuntu用户来说就是这样


    干杯;-)

    我对上面的任何答案都没有把握,我在composer.json中有自动脚本,所以忽略或伪造平台只会导致脚本失败等。在命令中设置php版本根本不起作用

    然而,我确实注意到,尽管运行
    which php
    php-v
    返回了正确的版本
    which/usr/bin/env php
    返回了composer正在使用的有问题的php版本。因此,在这里找到了一个非常好的答案,并概述如下:

    问题:

    /usr/bin/env php
    在当前
    $PATH
    中查找名为
    php
    的可执行文件;它不注意别名、shell函数等。如果希望它执行PHPV5.3,您可以
    "config": {
        "platform": {
            "php": "7.2.6"
        }
    }
    
    C:\xampp\htdocs\your project name>composer update
    
     php7.4 /usr/local/bin/composer install
    
    php7.4 /usr/local/bin/composer update
    
    sudo apt-get install -y php7.4-cli
    
    mkdir /usr/local/bin/php-overrides
    ln -s /usr/local/bin/php7 /usr/local/bin/php-overrides/php
    
    PATH="/usr/local/bin/php-overrides:$PATH"