告诉Composer使用不同的PHP版本
这件事我已经做了好几天了。我使用1和1托管,他们的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)。我已经能够
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"