У попередньому дописі в блозі я описав, як безкоштовно розмістити Node.js за допомогою Heroku . Зараз я покажу вам спосіб, як ви можете встановити Node.js , npm та Composer на будь-який інший спільний хост без прав користувача з декількома рядками коду. За допомогою нього ви можете встановлювати пакети, розгортати програми Vue.js або просто запускати сервер Express.js. Ми завжди працюємо в каталозі користувачів і використовуємо nvm - менеджер пакетів вузлів.
Важливо заздалегідь переконатися, що композитор і вузол недоступні і що наступні рядки не генерують жодного результату:
16c389ff1cdd9380cc5f9244775eb6c8
Спочатку ми встановлюємо тимчасові змінні середовища, які нам знадобляться пізніше. Для цього ми визначаємо каталог користувача користувача (зазвичай ~ /, на деяких спільних хостах також / www / htdocs / xxxxxxx /) та бажану версію PHP (наприклад, у постачальника All-Inkl / usr / bin / php72, за допомогою DomainFactory / usr / local / bin / php7-72LATEST-CLI):
16c389ff1cdd9380cc5f9244775eb6c8
Тепер ми переконуємось, що на консолі запущена остання версія PHP. Для цього ми створюємо нову папку в домашньому каталозі, створюємо м’яке посилання та додаємо каталог на початок PATH.
16c389ff1cdd9380cc5f9244775eb6c8
Тепер ми встановлюємо глобальний композитор, завантажуючи, перевіряючи та виконуючи сценарій інсталяції, а також розміщуючи composer.phar у каталозі користувача та знову створюючи символічне посилання:
16c389ff1cdd9380cc5f9244775eb6c8
Ми використовуємо nvm для встановлення Node.js. Це скрипт bash, який фактично використовується для зручного перемикання між версіями вузлів. Тут ми використовуємо властивість, що Node.js встановлюється без прав адміністратора:
16c389ff1cdd9380cc5f9244775eb6c8
Мені було потрібно невелике виправлення в .bashrc:
16c389ff1cdd9380cc5f9244775eb6c8
Тепер ми можемо встановити та активувати поточну стабільну версію Node.js:
16c389ff1cdd9380cc5f9244775eb6c8
За допомогою nvm ми також можемо легко переключати версії.
16c389ff1cdd9380cc5f9244775eb6c8
Я зміг виконати всі ці кроки з деякими німецькими провайдерами спільного хостингу без будь-яких проблем. Деякі хости мають проблеми із символічними посиланнями, але псевдонім також може допомогти . Наприклад, наступний .bashrc допомагає з DomainFactory:
16c389ff1cdd9380cc5f9244775eb6c8
Також виникають проблеми при доступі до / proc / stat у віртуальних / спільних середовищах, тому функція вузла os.cpus (), наприклад, повертає невизначену замість правильної кількості ядер . При встановленні пакетів npm це призводить до повідомлень про помилки, таких як "Не вдається прочитати властивість" довжина "невизначеного". Я був в змозі вирішити цю проблему за допомогою останньої версії Node.js (наприклад , 11.15.0) , що адресований проблему.