Node.js / npm / Composer bez rootowania

W starszym poście na blogu opisałem, jak bezpłatnie hostować Node.js przy użyciu Heroku . Teraz pokażę ci sposób, w jaki możesz zainstalować Node.js , npm i Composer na dowolnym innym udostępnionym hoście bez praw roota za pomocą kilku linijek kodu. Dzięki niemu możesz instalować pakiety, wdrażać aplikacje Vue.js lub po prostu uruchamiać serwer Express.js. Zawsze pracujemy w katalogu użytkownika i używamy nvm - Node Package Manager.


Ważne jest, aby wcześniej upewnić się, że kompozytor i węzeł nie są dostępne, a kolejne wiersze nie generują żadnych wyników:

16c389ff1cdd9380cc5f9244775eb6c8

Najpierw ustawiamy tymczasowe zmienne środowiskowe, które będą nam potrzebne później. Aby to zrobić, określamy katalog użytkownika użytkownika (zwykle ~ /, na niektórych współdzielonych hostach również / www / htdocs / xxxxxxx /) i żądaną wersję PHP (na przykład u dostawcy All-Incl / usr / bin / php72, z DomainFactory / usr / local / bin / php7-72LATEST-CLI):

16c389ff1cdd9380cc5f9244775eb6c8

Teraz upewniamy się, że na konsoli działa najnowsza wersja PHP. Aby to zrobić, tworzymy nowy folder w katalogu domowym, tworzymy miękki link i dodajemy katalog na początek PATH.

16c389ff1cdd9380cc5f9244775eb6c8

Teraz instalujemy globalnego kompozytora, pobierając, sprawdzając i wykonując skrypt instalacyjny, a następnie umieszczając plik composer.phar w katalogu użytkownika i ponownie tworząc łącze symboliczne:

16c389ff1cdd9380cc5f9244775eb6c8

Używamy nvm do instalacji Node.js. To jest skrypt bash, który w rzeczywistości służy do łatwego przełączania się między wersjami węzłów. Używamy tutaj właściwości, że Node.js jest instalowany bez praw roota:

16c389ff1cdd9380cc5f9244775eb6c8

Niezbędna była mi mała poprawka w .bashrc:

16c389ff1cdd9380cc5f9244775eb6c8

Teraz możemy zainstalować i aktywować aktualną stabilną wersję Node.js.:

16c389ff1cdd9380cc5f9244775eb6c8

Z pomocą nvm możemy również łatwo zmieniać wersje.

16c389ff1cdd9380cc5f9244775eb6c8

Wszystkie te kroki mogłem bez problemu przeprowadzić z niektórymi niemieckimi dostawcami hostingu współdzielonego. Niektórzy dostawcy usług hostingowych mają problemy z linkami symbolicznymi, ale aliasy też mogą pomóc . Na przykład poniższy plik .bashrc pomaga w DomainFactory:

16c389ff1cdd9380cc5f9244775eb6c8

Występują również problemy podczas uzyskiwania dostępu do / proc / stat w środowiskach wirtualnych / współdzielonych, dlatego na przykład funkcja węzła os.cpus () zwraca wartość undefined zamiast prawidłowej liczby rdzeni . Podczas instalowania pakietów npm prowadzi to do komunikatów o błędach, takich jak „Nie można odczytać właściwości„ długość ”wartości undefined”. Udało mi się rozwiązać problem, używając aktualnej wersji Node.js (np. 11.15.0), która rozwiązała problem.

Plecy