Установка стека MEAN.JS в CentOS 7

MEAN – это программный стек, который включает в себя следующие компоненты:

  • MongoDB (база данных NoSQL с поддержкой JavaScript на стороне сервера);
  • ExpressJS (фреймворк для разработки веб-приложений Node.js);
  • AngularJS (фреймворк для разработки динамических одностраничных приложений);
  • NodeJS (асинхронный событийный фреймворк для построения масштабируемых сетевых приложений).

Кодирование в Javascript обеспечивает прирост производительности программы и разработчиков. MongoDB позволяет хранить документы в JSON-подобном формате, создавать запросы в формате JSON на серверах ExpressJS и NodeJS передавать документы JSON на фронтенд AngularJS. Отладка и администрирование баз данных становится намного проще, когда объекты, хранящиеся в базе данных, идентичны объектам, которые видит клиент Javascript. Разработчик на клиентской стороне может легко понять код и запросы  БД сервера. При использовании одинакового синтаксиса и объектов разработчикам гораздо проще понять базу кода.

На сегодняшний день существует две параллельные реализации стека MEAN: MEAN.io и MEAN.JS.

MEAN.JS поддерживается сообществом, а MEAN.io спонсируется компанией под названием Linnovate. Обе реализации включают в себя одни и те же компоненты, но MEAN.io предоставляет дополнительный инструмент командной строки mean и коммерческую поддержку.

Данное руководство поможет установить реализацию MEAN.JS в CentOS 7. Для этого нужно сначала установить MongoDB, затем NodeJS, а затем клонировать файлы MEAN.JS с GitHub.

Требования

  • Сервер CentOS 7.
  • Минимум 4GB RAM; некоторые компоненты стека MEAN (например, npm) требуют много памяти.
  • Не-root пользователь с доступом к команде sudo (создать такого пользователя поможет это руководство).

1: Установка зависимостей

Сначала установите дополнительные пакеты, которые пригодятся при компиляции приложений, установке Ruby gems и клонировании репозитория Git. Для работы модуля MEAN.JS под названием pngquant необходимы libpng-devel и fontconfig.

sudo yum install gcc-c++ make git fontconfig bzip2 libpng-devel ruby ruby-devel

Для работы отдельных модулей Node.js нужно установить Sass, расширение CSS. Установите его с помощью gem, пакетного менеджера Ruby.

sudo gem install sass

2: Установка MongoDB

Пакет MongoDB отсутствует в официальных репозиториях CentOS. Чтобы установить его, добавьте официальный репозиторий MongoDB.

В данном руководстве используется поддерживаемая сообществом версия MongoDB.

Примечание: Существует также корпоративная версия MongoDB, но для её использования нужна лицензия.

На момент написания руководства последней доступной версией является MongoDB 3.2. Чтобы добавить репозиторий, создайте и откройте файл в /etc/yum.repos.d, этот каталог в CentOS специально отведён под репозитории.

sudo vi /etc/yum.repos.d/mongodb.org-3.2.repo

Чтобы включить официальный репозиторий MongoDB, скопируйте и вставьте в файл следующий код. Параметр enabled=1 включит репозиторий, а gpgcheck=1 включает проверку GPG-подписи для всех пакетов этого репозитория.

[mongodb-org-3.2] name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.2/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.2.asc

Сохраните и закройте файл.

Установите пакет mongodb-org. Когда программа предложит импортировать GPG-ключ, нажмите y.

sudo yum install mongodb-org

После завершения установки запустите демон MongoDB.

sudo systemctl start mongod

Убедитесь, что демон запущен:

sudo systemctl status mongod

Если демон был запущен, на экране появится такой вывод:

mongod.service - SYSV: Mongo is a scalable, document-oriented database.
Loaded: loaded (/etc/rc.d/init.d/mongod)
Active: active (running) since Tue 2016-09-06 12:42:16 UTC; 9s ago
Docs: man:systemd-sysv-generator(8)
Process: 9374 ExecStart=/etc/rc.d/init.d/mongod start (code=exited, status=0/SUCCESS)
CGroup: /system.slice/mongod.service
└─9385 /usr/bin/mongod -f /etc/mongod.conf
Sep 06 12:42:16 centos-mean-js systemd[1]: Starting SYSV: Mongo is a scalable, document-oriented database....
Sep 06 12:42:16 centos-mean-js runuser[9381]: pam_unix(runuser:session): session opened for user mongod by (uid=0)
Sep 06 12:42:16 centos-mean-js mongod[9374]: Starting mongod: [  OK  ] Sep 06 12:42:16 centos-mean-js systemd[1]: Started SYSV: Mongo is a scalable, document-oriented database..

3: Установка Node.js

Чтобы установить Node.js, нужно загрузить бинарный файл из репозитория NodeSource. Добавьте стабильную версию репозитория; при желании изучите содержимое сценария:

curl -sL https://rpm.nodesource.com/setup_4.x | sudo -E bash -

Установите Node.js и npm (пакетный менеджер Node.js).

sudo yum install -y nodejs

Чтобы убедиться, что установка прошла успешно, введите:

npm version
{ npm: '2.15.9',
ares: '1.10.1-DEV',
http_parser: '2.7.0',
icu: '56.1',
modules: '46',
node: '4.5.0',
openssl: '1.0.2h',
uv: '1.9.1',
v8: '4.5.103.37',
zlib: '1.2.8' }

4: Установка Bower и Gulp

Bower –это пакетный менеджер для управления приложениями фронтенда. Gulp – инструмент для автоматизации рутинных задач.

Bower и Gulp нужно установить глобально. Для этого передайте менеджеру npm опцию g.

sudo npm install -g bower
sudo npm install -g gulp

Итак, все компоненты установлены, и теперь можно приступать к установке MEAN.JS.

5: Установка MEAN.JS

Клонируйте официальный репозиторий MEAN.JS с GitHub.

git clone https://github.com/meanjs/mean.git meanjs

Это скопирует MEAN.JS в каталог meanjs в домашнем каталоге. Чтобы установить все необходимые проекту пакеты, перейдите в этот каталог:

cd ~/meanjs

и запустите команду:

npm install

Установка займёт несколько минут, после чего сервер будет полностью готов к разработке приложений MEAN.

6: Тестирование установки

Чтобы убедиться, что всё работает должным образом, запустите тестовое приложение. Для этого можно использовать команду npm start или gulp. Обе команды позволяют протестировать приложение в режиме разработки.

npm start

Примечание: При первом запуске любой из этих команд может возникнуть такая ошибка:

[12:56:49] 'lint' errored after 702 ms
[12:56:49] Error in plugin 'run-sequence'
Message:
An error occured in task 'sass'.

Чтобы исправить ошибку, удалите каталог node_modules, очистите кэш и повторно установите пакеты:

rm -rf node_modules
npm cache clean
npm install

После этого перезапустите тестовое приложение.

Теперь доступ к приложению можно получить по ссылке:

http://your_server_ip:3000

На экране появится логотип MEAN.JS и текст:

Congrats! You've configured and run the sample application

Это значит, что стек работает правильно.

Заключение

Стек MEAN.JS полностью готов к работе, и вы можете приступать к сборке, тестированию и развёртыванию приложений. При необходимости можно обратиться к документации MEAN.JS.

Tags: , , , , , ,

Добавить комментарий