2013-12-07 33 views
8

Używam Bluehost i mam dostęp do SSH, na szczęście. Ustawiłem również PHP na 5.4 w ustawieniach Panelu sterowania. Oto dwa duże pytania, których nie jestem w stanie zrozumieć: jak zainstalować Composer, a po zainstalowaniu Composer w jaki sposób uzyskać zależności?Używanie PHP kompozytor na współdzielonej przestrzeni

W tym przypadku próbuję użyć urzędnika Tumblr PHP Library, który ma zależności - wszystkie z nich można znaleźć pod adresem Packagist.

Odwołałem się do this question, w której OP używa HostGatora. Próbowałem zainstalować Composer w podobny sposób i osiągnąłem to z pozornie udanymi wynikami. Problem polega jednak na tym, że nie wiem, gdzie zainstalować go na Bluehost, więc teraz mam zainstalowany Composer w kilku losowych miejscach na serwerze, ponieważ nie wiem, jak nawigować, aby znaleźć miejsce, w którym można go umieścić w tym udostępnionym przestrzeń.

Wiem, że to jest problem (tj. Jest zainstalowany w niewłaściwym miejscu), ponieważ gdy używam plików i składni kompilatora phar do instalowania pakietów, pojawia się komunikat, że polecenia nie istnieją.

Naprawdę nienawidzę prosić o pomoc przy trzymaniu ręki, ale jeśli ktoś mógłby przeprowadzić mnie przez odpowiednią instalację Kompozytora na wspólnej przestrzeni i prawidłową instalację pakietu Composer od Packagist na tej samej wspólnej przestrzeni, byłoby to dużo docenione. Przeszukałem dokumentację Composer i nie mogę znaleźć odpowiedniego poradnika - jeśli taki istnieje - dla tej sprawy. W tym momencie zastanawiam się, czy to będzie inne dla każdego hosta.

Odpowiedz

0

Myślę, że powinieneś zrobić coś takiego. W konsoli

echo $PATH 

użyć jednego z tych pathes

mv composer.phar {selected path}/composer 
chmod +x {selected path}/composer 

Teraz można po prostu wywołać kompozytor wszędzie

2

Nie należy prawdopodobnie użyć Composer na zdalnym komputerze, ale zamiast zainstalować go na lokalna maszyna używana do przesyłania twojego projektu do Bluehost. Tam możesz zarządzać wszystkimi rzeczami, które są potrzebne do pobrania zależności, co może obejmować włączenie rozszerzenia ZIP lub posiadanie programu ZIP, zainstalowanie GIT lub Mercurial, jeśli musisz pobrać wersję z oddziału i tak dalej.

Wszystkie te zależności związane z używaniem Composer mogą być niedostępne na tym zdalnym hoście i szczerze mówiąc: naprawdę nie chcesz instalować tych narzędzi programistycznych na maszynie produkcyjnej, tak myślę. Każde oprogramowanie, które potencjalnie pomaga atakującemu, nie powinno być obecne, jeśli można tego uniknąć.

+0

'Nie należy prawdopodobnie użyć Composer na zdalnym komputerze, ale zamiast go zainstalować na lokalnym komputerze, który jest używany do przesyłania Ten projekt to..' jest całkiem niezły! O ile teraz rozumiem, należy najpierw zainstalować * XAMPP *, a następnie * Composer *? – Peter

+0

Composer wymaga zainstalowania PHP. Możesz użyć XAMPP lub dowolnej innej metody instalacji PHP. Sam kompozytor to po prostu pobieranie pliku 'phar' - opisana metoda instalacji upewnia się, że ustawienia PHP są poprawne w twojej instalacji. – Sven

2

Problem jest jednak to, że nie wiem, gdzie go zainstalować na Bluehost ...

Aby rozwiązać ten problem, musisz dowiedzieć się, gdzie dokładnie folderu projektu jest. W tym folderze musi być zainstalowany kompozytor. Jeśli masz dostęp do powłoki systemu UNIX, polecam, aby zmienić katalog na tym folderze projektu

cd $_SERVER['DOCUMENT_ROOT']/project_folder/ 

Generalnie serwerze zdalnym nastąpi tego samego drzewa katalogów plik jako że na lokalnym komputerze.Jednakże, jeśli nie jesteś pewien, jak swoją strukturę plików mogą być zorganizowane, zawsze można wydrukować katalog roboczy na komputerze lokalnym:

pwd 

Po pomyślnym się poprawną ścieżkę do pliku na dysku wspólnej przestrzeni, wystarczy zainstalować kompozytor:

curl -sS https://getcomposer.org/installer | php 

będzie to zgłoś się coś takiego:

Wszystkie ustawienia prawidłowego korzystania kompozytor Pobieranie ...

Kompozytor pomyślnie zainstalowane: /var/www/my_project/composer.phar

Użyj go: PHP composer.phar

masz teraz dostęp do composer.phar w projekcie. Daj mi znać, jeśli potrzebujesz dalszej pomocy.

5

Po zainstalowaniu kompozytu zgodnie z informacją podaną przez KLVTZ. W środowisku bluehost użyj php-cli zamiast php.

php-cli composer.phar install 
4

Podczas instalowania kompozytora, największym problemem wpadłem na to, że wiersz polecenia php bluehost była 5,2 i kompozytor potrzebuje 5.3+.

Na szczęście Bluehost daje dostęp do 5.4. Można go znaleźć na

/ramdisk/php/54/bin/php54-cli 

skończyło się na utworzenie aliasu zadzwonić composer.phar pomocą powyższego polecenia php i to było wspaniałe. Więcej szczegółowych informacji o tym, jak wykonać install composer on bluehost.

+0

Mam ten sam problem, który miałeś. Postępowałem zgodnie z twoimi instrukcjami podanym przez ciebie linkiem, ale kiedy już utworzę alias ... nie mogę go uruchomić. Nie rozumiem, jak utworzyłeś alias. Jeśli spróbuję uruchomić ten kod, nic się nie dzieje – Battousai

2

Jednym z problemów Bluehost jest to, że polecenie php w Bluehost nie wykonuje php-cli. Więc "omijam" to, mając własny skrypt php wcześniej w PATH, a następnie przekazując argumenty do php-cli. W tym samym procesie stworzyłem skrypt o nazwie kompozytor, który bezpośrednio wywołuje php-cli composer.phar.

Tak, ta konfiguracja pracował dla mnie na Bluehost:

W ~/bin Mam bash skrypty composer.phar i dwa zwane php i composer. W wersji ~/.bash_profile dodałem ~/bin do mojego PATH.

  • ~/bin/php wygląda następująco:

    #!/bin/bash 
    php-cli "[email protected]" 
    
  • ~/bin/composer wygląda następująco:

    #!/bin/bash 
    php-cli ~/bin/composer.phar "[email protected]" 
    
  • I dodatki do ~/.bash_profile są takie:

    PATH=$HOME/bin:$PATH 
    PATH=$PATH:$HOME/.composer/vendor/bin 
    export PATH 
    

    (Dodałem także ~/.composer/vendor/bin, jak widać, jest to przydatne do globalnego dostępu dla niektórych skompilowanych aplikacji (dla mnie jest to laravel)).

Pamiętaj o source ~/.bash_profile. (Lub ponownie połączyć)

0

Jeśli masz kompozytora zainstalowany w katalogu głównym (w public_html), może być coś związanego z wersją PHP. Jako Bluehost po wybraniu wersji PHP "Pamiętaj, że to tylko modyfikuje twój plik ~/public_html/php.ini.Jeśli zdecydujesz się na użycie PHP 5.4, będziesz chciał, aby twoje crony używały"/usr/php/54/usr/bin/php ", w przeciwnym razie użyje PHP 5.2."

więc można spróbować z poleceniem

/usr/php/54/usr/bin/php-cli composer.phar install