MEAN é um conjunto de aplicativos composta pelos seguintes componentes:

  • MongoDB, um banco de dados NoSQL com suporte para execução de JavaScript do lado do servidor.
  • ExpressJS, uma estrutura de aplicativo da web Node.js.
  • AngularJS, uma estrutura de aplicativo da web adequada para desenvolver aplicativos dinâmicos de uma única página.
  • NodeJS, uma estrutura assíncrona orientada a eventos, adequada para construir aplicativos de rede escalonáveis.

Neste guia, vamos instalar a stack MEAN em um servidor CentOS 7 usando o MEAN.JS. Usar esse método envolve primeiro instalar o MongoDB, depois o NodeJS e, em seguida, clonar os arquivos MEAN.JS do GitHub.

Pré-requisitos

Para começar, você precisa ter o seguinte:

Um servidor do CentOS 7 com pelo menos 4 GB de RAM. E lembre-se que alguns dos componentes da stack MEAN, como o npm, exigem muita memória.

Um usuário sudo non-root configurado.

Passo 1 – Instalando as dependências

Como estamos compilando aplicativos da origem, clonando um repositório Git e instalando gems do Ruby, precisaremos instalar algumas dependências primeiro. libpng-devele e fontconfig são necessários para o MEAN.JS.

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

Alguns dos módulos do Node.js que iremos instalar requerem o SasS, uma linguagem de extensão CSS. Instale-o usando gem, gerenciador de pacotes do Ruby.

# sudo gem install sass

Agora que as dependências estão instaladas, podemos instalar o primeiro componente da stack: o MongoDB.

Passo 2 – Instalando MongoDB

O MongoDB não está no repositório oficial do CentOS, portanto, para instalá-lo, você terá que habilitar o repositório oficial. Isso lhe dará acesso aos pacotes mais recentes e permitirá que você o instale a partir daí.

Para este tutorial, vamos instalar a edição da comunidade, que está disponível para download gratuito. Há também uma edição Enterprise, mas isso requer uma licença.

No momento da publicação, o MongoDB 3.2 é a última edição estável disponível para download e instalação.

Para ativar o repositório, crie um arquivo para ele /etc/yum.repos.d, no diretório do repositório do CentOS. Para o MongoDB 3.2, chamaremos esse arquivo mongodb.org-3.2.repo.

Crie e abra /etc/yum.repos.d/mongodb.org-3.2.repo usando o vi ou seu editor de texto favorito.

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

Para apontar o gerenciador de pacotes para o repositório oficial do MongoDB e ativá-lo, copie e cole o seguinte código no arquivo.

A configuração enabled=1 permite que o repositório e a configuração gpgcheck=1 ativem a verificação de assinatura do GNU Privacy Guard (GPG) em todos os pacotes instalados a partir do repositório.

Arquivo: /etc/yum.repos.d/mongodb.org-3.2.repo

[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

Salve e feche o arquivo e instale o pacote mongodb-org para instalar o MongoDB e suas ferramentas relacionadas. Quando solicitado para importar a chave GPG, digite “y” para continuar.

# sudo yum install mongodb-org

Após a conclusão da instalação, inicie o daemon do MongoDB.

# sudo systemctl start mongod

mongod, o daemon MongoDB, agora deve estar em execução, e você pode verificar isso usando o seguinte comando:

# sudo systemctl status mongod

Se estiver em execução, a saída deverá ser semelhante à seguinte:

Output

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..

A próxima parte da stack que precisamos instalar é o Node.js.

Passo 3 – Instalando o Node.js

Uma maneira fácil de instalar o Node.js é usando o binário do repositório NodeSource Node.js. Primeiro, adicione o repositório com a versão estável. Você pode ler o conteúdo do script antes de executá-lo usando o comando abaixo, visitando o URL em seu navegador.

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

Em seguida, instale o Node.js e npm (gerenciador de pacotes para o Node.js).

# sudo yum install -y nodejs

Verifique se Node.js e npm estão instalados.

# npm version

A saída deve ser:

Output

{ 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' }

Agora que npm está instalado, podemos instalar o restante dos componentes da stack MEAN.

Passo 4 – Instalando Bower e Gulp

Os componentes que iremos instalar nesta etapa são o Bower, um gerenciador de pacotes que é usado para gerenciar o aplicativo front-end, e o Gulp, que é usado para automatizar tarefas comuns.

Tanto o Bower quanto o Gulp precisam ser instalados globalmente, o que realizamos passando a opção g para o npm. Instalar os dois aplicativos globalmente os torna disponíveis em todo o sistema, e não apenas no diretório do projeto local.

Primeiro instale o Bower:

# sudo npm install -g bower

Então instale o Gulp:

# sudo npm install -g gulp

Agora, finalmente temos todos os pacotes de pré-requisitos instalados. Podemos passar a instalar o MEAN.JS usado para criar aplicativos.

Passo 5 – Instalando o MEAN

Primeiro, vamos clonar o repositório oficial do MEAN.JS do GitHub.

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

Isso clona o diretório do MEAN.JS em um diretório chamado meanjs em seu diretório home. Para instalar todos os pacotes referenciados pelo projeto, você precisa estar dentro desse diretório, então mude para ele.

# cd ~/meanjs

Em seguida, instale os pacotes necessários como o usuário non-root.

# npm install

A instalação levará vários minutos. Quando estiver concluído, você terá tudo o que precisa para desenvolver um aplicativo MEAN. Na última etapa, vamos testar a stack para garantir que tudo funcione.

Passo 6 – Executando o aplicativo MEAN

Vamos executar o aplicativo de amostra para garantir que o sistema esteja funcionando corretamente.

Um método é usar npm start, e o outro método é usar gulp. Ambos os comandos permitem que você teste seu aplicativo no modo de desenvolvimento. Aqui, vamos usar npm.

# npm start

Nota:

A execução inicial de um desses comandos pode falhar com uma saída semelhante a esta:

Error output

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

Se você receber esse erro, a correção é simples. Faça a exclusão do diretório node_modules, a limpeza do cache e a reinstalação dos pacotes.

# rm -rf node_modules
# npm cache clean
# npm install

Em seguida, reinicie o aplicativo de amostra com npm start ou gulp como antes.


Agora você pode acessar a aplicação visitando seu navegador favorito. Isso deve renderizar uma página com o logotipo do MEAN.JS, incluindo o texto: Congrats! Você configurou e executou o aplicativo de amostra.

Isso significa que você tem uma stack MEAN totalmente funcional em seu servidor. http://your_server_ip:3000