Node.js / npm / Composer без рута

В более старом сообщении блога я описал, как бесплатно разместить Node.js с помощью Heroku . Теперь я покажу вам, как вы можете установить Node.js , npm и Composer на любой другой общий хост без прав root с помощью нескольких строк кода. С его помощью вы можете устанавливать пакеты, развертывать приложения Vue.js или просто запускать сервер Express.js. Мы всегда работаем в каталоге пользователя и используем nvm - диспетчер пакетов узлов.


Заранее важно убедиться, что composer и node недоступны и что следующие строки не генерируют никаких выходных данных.:

16c389ff1cdd9380cc5f9244775eb6c8

Сначала мы устанавливаем временные переменные среды, которые нам понадобятся позже. Для этого мы определяем каталог пользователя пользователя (обычно ~ /, на некоторых общих хостах также / www / htdocs / xxxxxxx /) и желаемую версию PHP (например, с поставщиком All-Inkl / usr / bin / php72, с DomainFactory / usr / local / bin / php7-72LATEST-CLI):

16c389ff1cdd9380cc5f9244775eb6c8

Теперь убеждаемся, что на консоли запущена последняя версия PHP. Для этого мы создаем новую папку в домашнем каталоге, создаем мягкую ссылку и добавляем каталог в начало PATH.

16c389ff1cdd9380cc5f9244775eb6c8

Теперь мы устанавливаем global composer, скачав, проверив и выполнив установочный скрипт, затем поместив composer.phar в каталог пользователя и снова создав символическую ссылку.:

16c389ff1cdd9380cc5f9244775eb6c8

Мы используем nvm для установки Node.js. Это сценарий bash, который на самом деле служит для простого переключения между версиями узла. Мы используем здесь свойство, что Node.js устанавливается без прав root.:

16c389ff1cdd9380cc5f9244775eb6c8

Мне потребовалась небольшая поправка в .bashrc:

16c389ff1cdd9380cc5f9244775eb6c8

Теперь мы можем установить и активировать текущую стабильную версию Node.js:

16c389ff1cdd9380cc5f9244775eb6c8

С помощью nvm мы также можем легко переключать версии.

16c389ff1cdd9380cc5f9244775eb6c8

Я смог без проблем выполнить все эти шаги с некоторыми немецкими провайдерами виртуального хостинга. У некоторых хостеров есть проблемы с символическими ссылками , но псевдоним также может помочь . Например, следующий .bashrc помогает с DomainFactory:

16c389ff1cdd9380cc5f9244775eb6c8

Также существуют проблемы при доступе к / proc / stat в виртуальных / общих средах, поэтому функция узла os.cpus (), например, возвращает undefined вместо правильного количества ядер . При установке пакетов npm это приводит к появлению сообщений об ошибках, таких как «Невозможно прочитать свойство 'length' of undefined». Мне удалось решить проблему, используя последнюю версию Node.js (например, 11.15.0), которая решала проблему.

Назад