Je suis coincé à cela depuis quelques jours. J'utilise l'hébergement 1and1, et ils ont leurs PHP installés un peu bizarres.
Si je n'utilise que php composer.phar install
, j'utilise PHP 4.4.6, ce qui est terriblement insuffisant. Cependant, je peux exécuter php5.5 composer.phar install
, aller un peu plus loin, mais cela échoue toujours car quelque part dans la ligne, PHP est appelé à nouveau, mais il échoue car il utilise 4.4.6.
Existe-t-il un moyen d'indiquer à Composer d'utiliser la commande php5.5
? Quelqu'un at-il réussi à configurer Composer sur un hébergement 1and1?
J'essaie de faire fonctionner Laravel (qui utilise Composer). J'ai pu le faire sur mon domaine GoDaddy, mais pas 1and1.
Sur xubuntu j'avais php 7.2 par défaut. Mais nécessaire d'exécuter composer avec php 5.6.
Donc cela a fonctionné pour moi:
php5.6 /usr/bin/composer
Ubuntu 18.04 cas ... cette course pour moi.
/usr/bin/php7.1 /usr/local/bin/composer update
Vous pouvez changer votre PATH
pour écraser la version php.
PATH="/home/user/bin:$PATH"
Dans /home/user/bin
(ou tout autre répertoire réellement), créez un lien symbolique nommé php vers le binaire php5.
Une autre option, utilisez un alias de shell:
alias php="/path/to/php5"
Moi aussi j'ai un compte d'hébergement partagé sur 1 & 1 (ionos) et voici ce que j'ai dû faire:
si vous vous connectez en tant que compte ssh racine, vous pouvez créer un ~/.bash_profile et ajouter
alias php="php7.1"
alias composer="php7.1 composer.phar"
afin que vous puissiez maintenant utiliser les commandes que vous utiliseriez normalement et cela fonctionne. (mettez composer.phar à la racine du dossier de votre projet)
Ensuite, assurez-vous que votre fichier laravel composer.lock de votre ordinateur dev se trouve dans votre dossier de projet sur 1and1 et exécutez
composer install
En utilisant cette astuce de @tobymackenzie: sur des hôtes partagés, vous ne devez exécuter que l’installation de composer (et non la mise à jour!) À partir d’un fichier composer.lock que vous avez créé sur votre propre ordinateur. De cette façon, l'utilisation de la mémoire reste très faible.
J'ai toujours eu des problèmes STDIN avec des commandes artisan alors assurez-vous de modifier le fichier .env en
APP_ENV=local
le fait de le mettre en production génère des avertissements STDIN infinis pendant l'attente de la saisie de yes
. Au moins sur mon compte, c'est le cas.
J'espère que ça aide quelqu'un.
Essayez cette approche
ea-php72 /opt/cpanel/composer/bin/composer
Ajoutez simplement le code ci-dessous à votre fichier composer.json pour définir une version différente de php.
"config": {
"platform": {
"php": "7.1.3"
}
}
php5.5 composer.phar install
échoue car votre composer.json
lui dit d'exécuter php
et non pas php5.5
, éditez le fichier composer.json
et remplacez les références de scripts php à php5.5
. Exemple:
De:
"post-root-package-install": [
"php -r \"copy('.env.example', '.env');\""
],
À:
"post-root-package-install": [
"php5.5 -r \"copy('.env.example', '.env');\""
],
Même dans ce cas, 1and1 a une limite de mémoire pour l'exécution des scripts, donc php5.5 composer.phar install
n'échouera pas mais son exécution ne sera pas terminée non plus. Vous pouvez toujours exécuter les scripts après l'installation manuellement.
J'ai déployé Laravel webapps sur 1and1 sans le répertoire commit vendor
, en suivant ce guide: Déployez Laravel Webapp sur 1and1
Vous pouvez essayer de copier les fichiers php et php-config dans/usr/local/bin à la place. Ce chemin a un ordre de priorité plus élevé et doit remplacer le dossier/usr/bin sans avoir à désactiver SIP. C'est ce que j'ai fait.