Установка стека MEAN.JS в CentOS 7
Centos, Java | Комментировать запись
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: CentOS 7, ExpressJS, Javascript, MEAN.js, MongoDB, Node.js, NoSQL