Composer에게 다른 PHP 버전을 사용하도록 지시합니다.
며칠 동안 이 일을 계속하고 있어요.1and1 호스팅을 사용하고 있는데 PHP 설정이 좀 이상해요.
php composer.phar installPHP 4.4.6을 사용하고 있습니다만, 이것은 매우 불충분합니다.저는 달리기는 할 수 요.php5.5 composer.phar install되지만 4 4.4.6, 4.4를
에게 Composer를 ?php5.5" hosting" "1and1 "Composer" "1and1" "Composer" "Configured on 1and1" "Composer" "1and1" "Composer" "1and1" "Composer" "1" "Composer" "" "1" "Composer" "1" "1" "1" "
Larabel을 가동시키려 하고 있습니다(Composer를 사용).GoDaddy 도메인에서는 할 수 있었지만 1and1은 할 수 없습니다.
Ubuntu 18.04 케이스...날 위해 달려온거야
/usr/bin/php7.1 /usr/local/bin/composer update
이것이 당신의 문제를 정확히 해결하지는 못할 수도 있지만, 아마도 웹 검색에서 여기로 오는 다른 사람들에게 도움이 될 것입니다.
합니다.composer.jsonPHP:
$ composer config platform.php 8.0.7
"config": {
"platform": {
"php": "8.0.7"
}
}
xubuntu에서는 php 7.2를 디폴트로 사용하고 있습니다.단, php 5.6으로 컴포저를 실행해야 합니다.
그래서 이게 통했어.
php5.6 /usr/bin/composer
버전 요구 사항을 무시하도록 컴포저에게 요청해야 하는 경우 다음을 사용하여 건너뛸 수 있습니다.
composer install --ignore-platform-reqs
당신은 항상 그렇게 사용할 수 있습니다.
composer.json 파일이 있는 프로젝트 폴더.명령어를 실행합니다.
php7.4 /usr/local/bin/composer install
또는
php7.4 /usr/local/bin/composer update
여기서 php7.4는 특정 버전(http7.0, php5.5, php7.3 등)이 될 수 있습니다.여기서 /usr/local/bin/flash path for system folder with composer
!!! php7.4-cli가 필요합니다.
sudo apt-get install -y php7.4-cli
Linux/ubuntu 사용자용
건배;-)
composer는 PHP 바이너리 스크립트이며 Unix Shebang을 사용하여 실행할 인터프리터를 정의합니다.
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
만약 달리고 있다면composer옵션 버전이 됩니다./usr/bin/env php PHP (PHP)
Linux에는 많은 버전의 PHP를 포함할 수 있습니다.또, 다음과 같이, 어느 버전의 PHP 버전을 유연하게 사용할 수 있습니다.
root@home:~# /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 goto를 사용합니다./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가 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
저도 1&1(ionos)에 공유 호스팅 계정을 가지고 있습니다.그것은 다음과 같습니다.
root ssh 계정으로 로그인하면 ~/.ssh_profile을 만들고
alias php="php7.1"
alias composer="php7.1 composer.phar"
정상적으로 사용하던 명령어를 사용할 수 있게 되었습니다.(put composer)프로젝트 폴더 루트 내의 par)
그런 다음 개발 머신의 laravel composer.lock 파일이 1and1의 프로젝트 폴더에 도달하여 실행되는지 확인합니다.
composer install
@tobymackenzie의 힌트를 사용하여 공유 호스트에서는 자신의 머신에서 작성한 composer.lock 파일에서 composer install(업데이트가 아님)을 실행해야 합니다.이렇게 하면 메모리 사용량이 매우 낮게 유지됩니다.
기술자 명령어에 대한 STDIN 문제가 계속 발생했으므로 .env 파일을 로 변경해 주세요.
APP_ENV=local
상태로 하면, 「」를 해, 「STDIN 경고」를 하기 때문입니다.yes이치노
이게 도움이 됐으면 좋겠네요.
이 방법을 사용해 보세요.
ea-php72 /opt/cpanel/composer/bin/composer
기존 답변은 부분적으로 질문에 답하지 않거나, 효과가 없는 제안을 하거나, 나쁜 조언을 합니다.
질문 내용은 다음과 같습니다.
하지만 저는 php5.5 composer를 실행할 수 있습니다.par install, 좀 더 자세히 알아보겠습니다만, 회선상의 어딘가에서 PHP가 다시 호출되고 있기 때문에 아직 실패합니다.하지만 4.4.6을 사용하고 있기 때문에 실패합니다.
대신, 저는 이 제안을 테스트하고 검증하는 방법을 보여드리고자 합니다.
저도 좀 더 나은 대답을 하고 싶었지만 어떻게 하면 최선책인지 잘 모르겠습니다.개인적으로 Composer에 관계없이 호스트 상에서 PHP가 올바른 버전으로 호출되도록 하는 솔루션(예를 들어 에일리어스를 통해 PHP 환경을 올바르게 설정하거나 컨테이너 내에서 전체 작업을 실행하거나 다른 솔루션)을 선택하고 플랫폼 php 제약을 추가합니다.
스크립트를 실행하지 않고 의존관계를 올바르게 해결하기 위한 요건만 필요한 경우 config:platform:php가 가장 적합합니다.
기본 php 버전이 7.4인데 프로젝트에는 7.2가 필요하다고 가정해 보겠습니다.
기본 PHP 버전을 확인합니다.
명령줄:
# shows version of default PHP php --version # show path of default PHP which php # show version of /usr/bin/env php # /usr/bin/env php --versioncomposer.json에서 테스트 스크립트를 만듭니다.
"scripts": { "php-version": "php --version" }이제 Composer가 호출하는 명령에 사용되는 PHP 버전을 테스트할 수 있습니다.
composer php-version /usr/bin/php7.2 /usr/bin/composer php-version제 경우 둘 다 기본 php 스크립트(버전 7.4)를 사용합니다.따라서 7.2 버전을 사용하여 Composer를 실행하는 동안 Composer에서 호출하는 스크립트는 기본 명령을 사용합니다.
이제 몇 가지 답변에 제시된 플랫폼 설정을 추가해 보겠습니다.
"config": { "platform": { "php": "7.2.0" } }스크립트 실행에 대해서는 아무것도 변경하지 않습니다.
/usr/bin/php7.2 /usr/bin/composer php-version # result is still 7.4실제로 플랫폼 옵션은 요건을 해결하는 것이 중요하므로 (프로젝트 composer.json에) 추가해야 합니다.PHP를 올바른 버전으로 사용하는 작곡가의 문제는 해결되지 않습니다.플랫폼에 대한 Composer 문서도 참조하십시오.
수 요.PATHphp 버전을 덮어씁니다.
PATH="/home/user/bin:$PATH"
»/home/user/bin(또는 실제로 다른 디렉토리는) php라는 이름의 심볼링크를 php5 바이너리에 만듭니다.
다른 옵션으로는 셸 에일리어스를 사용합니다.
alias php="/path/to/php5"
이 질문은 좀 오래된 거 알아둬...하지만 앱 루트에 작곡가를 풀다운하면 다음과 같습니다.
https://getcomposer.org/download/
글로벌 컴포저에 의존하지 않고 다음을 실행할 수 있습니다.
php56 작곡가.phar 명령어}
새로운 홈스테드 버전은 다음과 같습니다.
php7.1 작곡가.phar 명령어}
https://laracasts.com/discuss/channels/laravel/run-composer-commands-with-different-php-versions
현재 Hostgator 공유 계정을 사용하고 있으며, 다음 작업을 수행할 수 있습니다.
가 어디에합니다('PHP'를 ).
ea-phpTAB가능한 합니다.ea-phpwhich ea-php73/usr/local/bin/ea-php73그런 다음 작곡가가 어디에 사는지 알아봅니다.
which composer/opt/cpanel/composer/bin/composer그런 다음 다음 composer 명령을 실행합니다.
/usr/local/bin/ea-php73 /opt/cpanel/composer/bin/composer install
Ubuntu 18.04케이스...난 이거면 돼여기서 Composer는 필요한 PHP 버전을 자동으로 선택합니다.
/opt/lampp/bin/php /usr/bin/composer install
또는
/opt/lampp/bin/php /usr/bin/composer update
Plesk를 사용하는 사용자에게는 다음과 같은 다양한 부품이 필요합니다.
- PHP에서 .
/opt/plesk/php/<version/bin/php:/opt/plesk/php/7.4/bin/php - 을 찾아보세요.
/usr/local/bin/composer입니다(Plesk 스크립트).cat /usr/local/bin/composer'오빠'였습니다/usr/local/psa/var/modules/composer/composer.phar - 모든 것을 종합하면:
# /opt/plesk/php/7.4/bin/php /usr/local/psa/var/modules/composer/composer.phar install
).또는 간단하게 하기 위해서, 새로운 파일을 작성하기만 하면 됩니다.composer74의 in ) ) 。/usr/local/bin:
cat > /usr/local/bin/composer74을- 다음을 붙여넣습니다.
#!/bin/bash
/opt/plesk/php/7.4/bin/php /usr/local/psa/var/modules/composer/composer.phar
터미널을 설치하다
- 리
CTRL+D을 chmod +x /usr/local/bin/composer74가능하게- 어디서든 사용 가능:
# composer74 install
두 가지 방법이 있습니다.
- 단말기에서 명령어를 실행하는 동안 플랫폼 요건을 무시하도록 컴포저에게 지시합니다.
composer update --ignore-platform-reqs
- 에게 '무조건'의합니다.
composer.json파일을 프로젝트 루트 디렉토리에 저장합니다.
"config": {
"platform-check": false,
},
Composer.json 파일의 플랫폼 구성을 사용하여 Composer에게 다음 구성을 추가하여 앱에서 지원하는 PHP 버전을 알려줄 수 있습니다.
{
"config": {
"platform": {
"php": "5.5"
}
},
"require": {
...
}
}
또는 명령줄에서
composer config platform.php 5.5
저도 같은 문제가 있었습니다만, 이렇게 하면 시스템을 망가뜨리지 않고 공유 호스팅에서 다른 PHP 버전을 사용하여 작곡가를 실행할 수 있었습니다.
다행히 다른 PHP 버전을 사용하는 작곡가와 함께 이 문제를 해결하는 것은 매우 간단합니다.
조사 결과:
기본 PHP가 /usr/local/bin 또는 유사한 폴더에서 실행되지 않았습니다.사용방법
which php
또는
whereis php
가장 좋은 답을 주지 못할 겁니다.
아래의 간단한 안내에 따라 주십시오.
먼저 컴포저 바이너리 자체에 대한 실제 경로를 찾습니다.공유 호스팅 서버에서는
/opt/cpanel/composer/bin/composer
저는 cPanel을 사용하는 대부분의 호스팅 프로바이더가 작곡가로의 경로를 가지고 있다고 생각합니다.
다음으로 사용할 PHP 버전에 대한 에일리어스를 만듭니다.제 프로젝트에서는 php 7.4 이상이 필요했습니다.
한 바와 같이 , 하는 실제 PHP 은 "cPanel" 내에 ./opt/cpanel/
가 른른른가가 php로 됩니다./opt/cpanel/(ea-phpxx에 의해 수정됨) 예를 들어 php 7.4의 경우 ea-php74라는 폴더, PHP 8.0의 경우 ea-php80이라는 폴더가 됩니다.
이제 php가 다음과 같은 경로로 존재하는지 확인합니다.
/opt/cpanel/ea-php80/root/usr/bin
「 」를 php폴더 내에서 폴로(follows)로 별칭을 지정할 수 있습니다.
alias php='/opt/cpanel/ea-php80/root/usr/bin/php'
를 실행하여 에일리어스가 동작하고 있는지 테스트합니다.
php --version
아래 스크린샷과 같이 php 버전을 확인합니다.
이제 정상적으로 작곡가를 실행합니다.예를들면
php /opt/cpanel/composer/bin/composer update
php /opt/cpanel/composer/bin/composer install
php /opt/cpanel/composer/bin/composer install
컴포저 바이너리는 /opt/cpanel/composer/bin/composer에서 찾은 것입니다.이 경로가 서버상의 컴파일러 바이너리 경로와 일치하지 않으면 적절한 바이너리를 사용합니다.
이게 도움이 됐으면 좋겠어요.해피 코딩!
php5.5 composer.phar installcomposer.json 하고 php andphp5.5composer.json 스크립트 를 php로 .php5.5 §:
다음부터는
"post-root-package-install": [
"php -r \"copy('.env.example', '.env');\""
],
수신인:
"post-root-package-install": [
"php5.5 -r \"copy('.env.example', '.env');\""
],
이 있기 에 1and1은 스크립트 실행에 제한이 있습니다.php5.5 composer.phar install실패하지는 않지만 실행도 완료되지 않습니다.인스톨 후에도 수동으로 스크립트를 실행할 수 있습니다.
Laravel webapps 을 커밋하지 에 Laravel 했습니다.vendor디렉토리, 이 메뉴얼에 따릅니다.1and1에 Larabel WebApp 도입
다른 php 버전을 설정하려면 composer.json 파일의 두 곳에 추가해야 합니다.
"config": {
"platform": {
"php": "7.4"
}
}
"require": {
"php": "^7.4",
}
위의 답변 중 어느 것도 할 수 없었습니다.composer.json에는 자동 스크립트가 있기 때문에 플랫폼을 무시하거나 조작하는 것만으로 스크립트가 실패했을 뿐입니다.명령어로 php 버전을 설정하는 것이 제대로 작동하지 않았습니다!
, 「 」를 실행하고 것을 알 수 있었습니다.which php ★★★★★★★★★★★★★★★★★」php -v 버전이 되었습니다.which /usr/bin/env php해당 작곡가가 사용하던 문제가 있는 버전의 php를 반환했습니다.이치아래에 개요를 나타냅니다.
문제:
/usr/bin/env php 、 「 」라고 하는 이름의 .php$PATH, 함수 에일리어스, 셸 함수 등에는 관심이 없습니다.php v5.3을 실행하려면 해당 버전을 php라는 이름의 디렉토리에 배치하고 문제가 있는 버전을 포함하는 디렉토리보다 PATH 내의 어딘가에 해당 디렉토리를 배치해야 합니다.
수정:
아래에 링크된 특정 php 실행 파일을 사용하여 다음과 같은 새로운 php 실행 파일 폴더를 만듭니다.
mkdir /usr/local/bin/php-overrides
ln -s /usr/local/bin/php7 /usr/local/bin/php-overrides/php
★★★★에 .~/.bash_profile 기타 스크립트 ('기타 스타트업 스크립트')
PATH="/usr/local/bin/php-overrides:$PATH"
https://serverfault.com/questions/579956/alias-doesnt-work-in-script-with-usr-bin-env-php
나는 이 문제를 해결할 방법이 있다.
export PATH=/usr/local/Cellar/php/8.0.12/bin:$PATH && composer -vvv
환경변수를 일시적으로 변경하고 컴포저 사용
PHP 8과 8.1이 출시되면 CLI에서 몇 가지 버전을 정기적으로 작업해야 하는데, 가장 좋은 방법은 에일리어스를 만드는 것이었습니다.
brew를 사용하여 설치했거나 PHP 버전이 어디에 있는지 이미 알고 있다고 가정합니다.
다음 항목을 bash 프로파일에 추가합니다.
alias php7='/usr/local/opt/php@7.4/bin/php'
alias php8='/usr/local/opt/php@8.0/bin/php'
PHP 8.1 을 할 .brew install php@8.1에일리어스를 추가합니다.
하면 " " " " 를 할 수 있습니다.php8 composer 간단한 , 을 됩니다.index.php 및 " " 추가"phpinfo()그렇게.
php7 index.php | grep "PHP Version"
php8 index.php | grep "PHP Version"
대신 php 및 php-config 파일을 /usr/local/bin에 복사할 수 있습니다.이 패스는 우선순위가 높기 때문에 SIP를 디세블로 할 필요 없이 /usr/bin 폴더를 덮어씁니다.그게 내가 한 일이야.
언급URL : https://stackoverflow.com/questions/32750250/tell-composer-to-use-different-php-version
'programing' 카테고리의 다른 글
| 속성별로 개체 목록 그룹화 (0) | 2022.11.02 |
|---|---|
| 30분 후에 PHP 세션을 만료하려면 어떻게 해야 합니까? (0) | 2022.11.02 |
| 서브 쿼리를 사용한mysql 업데이트 쿼리 (0) | 2022.11.02 |
| Android Studio 프로젝트에서 .jar를 만드는 방법 (0) | 2022.11.02 |
| 클리어하기 위한 리모트 접속DB heroku 데이터베이스 (0) | 2022.10.31 |
