Raspbian → Raspbian + Node.js на Raspberry Pi
Приобрёл себе этот микрокомпьютерчик и замыслил для начала поднять на нём небольшой сайт, а чтобы скучно не было, задумал этот сайт написать на JavaScript с серверной стороны. Да и просто для разминки мозгов.
Поскольку на борту самый обычный линукс на основе Debian, то всё показалось предельно простым, т.е.:
1 | sudo apt-get install nodejs npm
|
Однако стоило посмотреть версию установленных паркетов, так сразу и стало печально. И дело не только в циферках (0.6.19 для nodejs и 1.1.4 для npm), тот же модуль forever уже не запустишь. Хотя и сам Debian тоже не радует дремучестью своих пакетов, ну да ладно, хотят люди стабильности - пусть им будет стабильность :) А я пошёл гуглить.
И, естественно, нагуглил. Ниже будет краткая выжимка из интернетов.
Для начала создаём директорию, где будут находиться файлы Node.js, скачиваем сами файлы и копируем их в подготовленную директорию
1 2 3 4 5 | sudo mkdir /opt/nodejs
cd /tmp
wget http://nodejs.org/dist/v0.10.26/node-v0.10.26-linux-arm-pi.tar.gz
tar xvzf node-v0.10.26-linux-arm-pi.tar.gz
sudo cp -r node-v0.10.26-linux-arm-pi/* /opt/nodejs
|
Потом добавляем эту директорию в пути поиска программ, т.е. в переменную PATH. Происходить это будет в файле /etc/profile. Недостающие строки кода нужно вставить непосредственно перед export $PATH
1 2 3 4 5 6 7 8 9 10 | sudo nano /etc/profile
#/etc/profile
#bla-bla-bla
NODE_JS_HOME="/opt/nodejs"
NODE_PATH="/opt/nodejs"
PATH="$NODE_JS_HOME/bin/:$PATH"
export $PATH
|
Ну вот, собственно, и всё. Версия v0.10.26, которая мелькает выше, оказалась последней на момент написания этой заметки, включающей исполняемые файлы для процессоров архитектуры ARM. Может быть уже имеются и более новые, надо просто проверить.
Комментарии
У всех тарифов есть бесплатный тестовый период: https://sprinthost.ru. Регистрируйтесь, создавайте приложение, присылайте замечания, пожелания и вопросы на support@sprinthost.ru или в группу https://vk.com/sprinthost, мы будем бесконечно благодарны.
Что нужно знать:
В каталоге с приложением ( ~/domains/example.org/public_html ) создаем файл app.js со следующим содержимым:
require('/home/login/domains/example.org/public_html/index.js');
process.chdir('/home/login/domains/example.org/public_html');
Создаем файл .htaccess в этом же каталоге и добавляем в него правило:
PassengerStartupFile app.js
PassengerResolveSymlinksInDocumentRoot on
Require all granted
PassengerAppType node
PassengerAppRoot /home/login/domains/example.org/public_html
Options -MultiViews
Для работы приложений у нас используется Phusion Passenger https://www.phusionpassenger.com/#about