Po uruchomieniu composer update
system operacyjny zajrzy do skonfigurowanych ścieżek i spróbuje zlokalizować plik wykonywalny o tej nazwie.
Uruchamiając php composer update
The composer
ciąg jest traktowana jako parametr do PHP, które nie są wyszukiwane w żadnej ścieżki. Aby go uruchomić, musisz podać pełną ścieżkę.
Uruchomienie which composer
powie ci, gdzie system operacyjny znajduje plik wykonywalny kompozytora, a następnie po prostu użyj pełnej ścieżki w poleceniu PHP:
$>which composer
/usr/local/bin/composer
$>php -d memory_limit=512M /usr/local/bin/composer update
...
Pamiętaj, że 512 MB może być za mało. Uważam, że szczęśliwie zajmie 1 GB lub więcej, w zależności od liczby zależności, których używasz i różnorodności wersji, na które teoretycznie zezwalasz, tj. Jeśli pozwolisz Symfony ~2.3
, wtedy Composer poradzi sobie z dużo większą liczbą możliwych wersji w porównaniu do używania ~2.7
.
Pamiętaj również, że uruchomienie Composera na maszynie produkcyjnej nie jest najlepszym pomysłem. Musisz mieć dostęp do Github, być może podać dane dostępu, mieć zainstalowane narzędzia VCS i łatwo zepsujesz swoją witrynę, jeśli którykolwiek ze zdalnych serwerów hostingowych jest offline podczas aktualizacji. Lepszym pomysłem jest użycie Composera w systemie wdrożeniowym, który wykonuje wszystkie przygotowania, a następnie przenosi wszystkie pliki na serwer produkcyjny.
Aktualizacja
Teraz jest rok 2020, a sposób, w jaki Composer zarządza swoją pamięcią, nieco się zmienił. Najważniejsze jest to, że Composer sam zwiększy limit pamięci, jeśli napotka limit ustawiony zbyt nisko. To jednak natychmiast powoduje problem braku pamięci na maszynach, które mają za mało zainstalowanej pamięci. Możesz sprawić, by Composer zużywał mniej pamięci, ustawiając zmienną środowiskową, taką jak COMPOSER_MEMORY_LIMIT=512M
, ale spowoduje to problemy, jeśli Composer będzie potrzebował więcej pamięci do prawidłowego działania.
Mój główny punkt pozostaje prawdziwy: nie uruchamiaj Composera na maszynach, które mają za mało zainstalowanej pamięci. Potencjalnie potrzebujesz 1,5 GB wolnej pamięci, aby móc zaktualizować wszystko.
composer install
wystarczy. W twoim przypadku, korzystając z hostingu współdzielonego, myślę, że nie będzieszcomposer update
działać, więc jedynym sposobem jest zakup hostingu VPS, takiego jak Digital Ocean, Linode.