Установка MEAN.JS на Ubuntu 15.04
Краткое руководство по установке MEAN.JS (MongoDB, Express, AngularJS, Node.js) на Ubuntu 15.04: обновите репозитории, установите MongoDB из репозитория Ubuntu, установите Node.js через nodesource (в примере — 5.x), затем глобально установите bower, gulp и mean-cli. Создайте проект mean init, выполните npm install и запустите приложение через gulp или node server.
Введение
MEAN.JS — это полный JavaScript-стэк, объединяющий MongoDB, Express, AngularJS и Node.js. Он ускоряет разработку веб-приложений, позволяя писать серверную и клиентскую логику на JavaScript. В этом руководстве показано, как установить MEAN.JS на Ubuntu 15.04 (пример из исходного материала). Для современных развёртываний рекомендуется рассматривать актуальные LTS-релизы Ubuntu и поддерживаемые версии Node.js.
Что вам нужно
- Ubuntu 15.04 — 64-bit (в исходном примере). Для реальных проектов лучше использовать поддерживаемую LTS-версию Ubuntu.
- Права root или sudo.
- Нормальная (не root) учётная запись для создания проекта MEAN.JS.
Шаг 1 — Обновите репозитории Ubuntu
Подключитесь к серверу по SSH, получите права root/sudo и обновите список пакетов:
sudo su
apt-get updateВажно
Если вы используете VPS или контейнер, убедитесь, что у вас корректно настроен сетевой доступ к репозиториям и что system clock синхронизирован — это влияет на HTTPS-запросы к внешним источникам.
Шаг 2 — Установите MongoDB
В примере MongoDB устанавливается из репозитория Ubuntu (в исходном материале доступна версия 2.xx). Если вам нужна более свежая версия, установите её из официального репозитория MongoDB.
Установка MongoDB:
apt-get install mongodb -yПроверьте версию и слушающие порты:
mongo --version
netstat -plntu | grep mongo
mongo
Примечание
По умолчанию MongoDB слушает порт 27017. Если вы используете брандмауэр (ufw, iptables), откройте только необходимые порты и ограничьте доступ по IP.
Шаг 3 — Установите Node.js и npm
В репозиториях Ubuntu может быть устаревшая версия Node.js. В примере используется nodesource-скрипт для установки Node.js 5.x. В реальных проектах выбирайте текущую LTS-ветку Node.js.
Установите curl и скачайте установочный скрипт nodesource:
apt-get install curl -y
curl -sL https://deb.nodesource.com/setup_5.x | sudo bash -Затем установите Node.js и npm:
apt-get install nodejs -yПроверьте версии:
nodejs --version
v5.2.0npm --version
3.3.12Node.js и npm установлены.
Важно
Если вы используете nvm (Node Version Manager), управление версиями будет гибче и безопаснее для разработчиков. nodesource удобен для системных установок.
Шаг 4 — Установите Bower и Gulp
Bower управляет клиентскими библиотеками, Gulp автоматизирует задачи (сборка, слежение, перезапуск).
Установите Bower глобально:
npm install -g bowerФлаг -g означает глобальную установку в систему.
Установите Gulp глобально:
npm install -g gulpПроверьте глобально установленные пакеты:
npm list -g --depth=0
Полезные команды npm:
npm uninstall -g packagenameУдалить глобальный пакет.
npm cache -g cleanОчистить кеш npm после удаления пакета.
Шаг 5 — Установите mean-cli
mean-cli — утилита для инициализации и управления проектами на базе mean.io (в исходном материале используется mean-cli).
Установка:
npm install -g mean-cliПроверка:
npm list -g --depth=0 | grep meanЕсли mean-cli установлена, можно создавать проект.
Шаг 6 — Создание первого проекта через mean-cli
Переключитесь на обычного пользователя (в примере — mavis), не создавайте проект от root:
su - mavisСоздаём проект myfirstproject:
mean init myfirstprojectЕсли появится ошибка ROOT PERMISSIONS IN NPM, создайте директорию .npm в домашней папке пользователя:
cd ~
mkdir .npmУстановите зависимости проекта:
cd myfirstproject && npm installДождитесь окончания установки — это может занять время.
Запустите приложение:
gulpВывод при запуске Gulp:

Если gulp не запущен, можно стартовать сервер напрямую:
node serverОткройте приложение в браузере по IP сервера и порту 3000, например 192.168.1.100:3000.

Критерии приёмки
- MongoDB установлена и слушает порт 27017.
- Node.js и npm установлены; команды nodejs –version и npm –version возвращают версии.
- global-пакеты bower, gulp и mean-cli установлены и видны в npm list -g –depth=0.
- npm install внутри проекта завершился без ошибок.
- Приложение успешно стартует при gulp или node server и доступно на порту 3000.
Частые проблемы и устранение неисправностей
- Ошибка прав npm при глобальной установке: используйте –unsafe-perm при необходимости или создайте .npm в домашней папке пользователя.
- Зависимости не устанавливаются или падают при npm install: проверьте логи npm, наличие build-essential и python (нужны для сборки нативных модулей).
- Порт 3000 занят: измените порт в конфигурации сервера или освободите порт.
- Недоступность MongoDB: убедитесь, что служба запущена и нет проблем с правами доступа к data-папке.
Мини-план восстановления
- Проверить логи npm и gulp.
- Проверить статус MongoDB и Node-приложения.
- Отключить firewall/брандмауэр временно для теста.
- Воспроизвести ошибку локально в среде разработки.
Альтернативные подходы
- Использовать nvm для управления версиями Node.js, чтобы легко переключаться между версиями (рекомендация для разработчиков).
- Рассмотреть другие стековые сборки: MERN (MongoDB, Express, React, Node.js) или MEVN (MongoDB, Express, Vue, Node.js) в зависимости от предпочтений фреймворка на клиенте.
- Вместо mean.io/mean-cli — использовать стартовые шаблоны и boilerplate-проекты или сборщики (Yeoman, custom scripts).
Рольовые чек-листы при развёртывании
Для разработчика
- Убедиться, что локальная версия Node.js совпадает с той, что на сервере.
- Прогнать unit-тесты и сборку gulp.
- Проверить зависимости в package.json.
Для системного администратора
- Настроить systemd unit для node server или использовать pm2 для управления процессом.
- Настроить бэкапы для MongoDB и мониторинг.
- Ограничить доступ к MongoDB по IP и включить firewall.
Для DevOps
- Подготовить Docker-контейнеры или CI/CD пайплайн для сборки и деплоя.
- Настроить окружения (dev/stage/prod) с конфигурацией переменных окружения.
Мини-методология быстрой проверки перед релизом
- Обновить пакеты и выполнить npm install в чистой среде.
- Прогнать сборку gulp и smoke-тесты.
- Перезапустить сервис и проверить доступность главной страницы и API.
- Проверить логи на наличие ошибок.
Совместимость и советы по миграции
- Ubuntu 15.04 использовалась как пример; для новых проектов выбирайте поддерживаемую LTS-версию Ubuntu.
- Node.js 5.x показан в примере, но это устаревшая версия; планируйте миграцию на текущую LTS-ветку Node.js.
- Перед обновлением крупных зависимостей прогоняйте тесты и проверяйте breaking changes в changelog зависимостей.
Безопасность и производительность
- Запускайте MongoDB под отдельным пользователем и с минимально необходимыми правами.
- В продуктиве используйте reverse-proxy (nginx) для SSL-терминации и управления статикой.
- Для управления Node-процессами используйте pm2 или systemd, чтобы обеспечивать автоперезапуск и логирование.
Короткий глоссарий
- MEAN.JS: стек MongoDB, Express, AngularJS, Node.js.
- mean-cli: утилита для инициализации проектов на базе mean.io.
- bower: менеджер клиентских библиотек.
- gulp: таск-раннер для автоматизации сборки.
Часто задаваемые вопросы
Q: Можно ли запускать проект от root?
A: Рекомендуется создавать и запускать проект от обычного пользователя, а не от root — это снижает риски безопасности.
Q: Нужно ли использовать именно Node.js 5.x?
A: Нет. В примере используется 5.x, но для новых проектов выбирайте поддерживаемую LTS-версию Node.js.
Q: Что делать, если npm install зависает?
A: Проверьте сетевой доступ к реестру npm, убедитесь, что нет корпоративного прокси без настроек, попробуйте очистить кеш npm и повторить.
Заключение
MEAN.JS — удобный стек для быстрого старта веб-приложений на JavaScript. В этом руководстве представлены шаги установки на Ubuntu 15.04: от установки MongoDB до создания первого проекта через mean-cli и запуска приложения. Для продакшена адаптируйте версии Node.js и Ubuntu, настройте мониторинг, бэкапы и безопасность.
Важно
Всегда тестируйте обновления зависимостей и операционной системы в отдельной среде перед переносом в продакшн.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента