[TUTORIAL] Como usar o instalador do i-Educar 2.1.X - Ubuntu 18.04

Neste tópico vamos mostrar um passo a passo de como utilizar este recurso para instalar o i-Educar numa instância nova do Ubuntu Server 18.04.

Como esta é uma instância nova, vamos atualizar e fazer upgrade dos nossos pacotes:

$ sudo apt update
$ sudo apt upgrade -y

Depois de tudo atualizado vamos instalar as principais dependências do i-Educar, aquelas que precisam estar presentes e configuradas para usarmos o instalador:

$ sudo apt install nginx php-fpm postgresql

Este comando vai instalar as versões mais recentes do nginx e php-fpm presentes em seu repositório. Ele também deve instalar o PostgreSQL 10 (a versão padrão disponível enquanto escrevo este artigo). O i-Educar é extensivamente testado na versão 9.5 e não garantimos total compatibilidade com versões mais recentes. Recomendamos que, se possível, a versão 9.5 seja usada até que novas versões sejam devidamente validadas, mas para este artigo vamos prosseguir com a versão padrão do sistema que deve funcionar bem o suficiente pra gente instalar o i-Educar.

Neste ponto, se eu acessar o IP da minha máquina, devo ser capaz de ver a mensagem de boas vindas do nginx: “Welcome to nginx!”. Isso indica que o nginx foi devidamente instalado.

Agora vamos baixar o release do i-Educar e colocar num lugar onde o nginx possa ler seus conteúdos:

$ wget https://github.com/portabilis/i-educar/releases/download/2.1.X/ieducar-2.1.X.tar.gz
$ sudo tar -zxf ieducar-2.1.0.tar.gz -C /var/www/
$ sudo mv /var/www/ieducar-2.1.0/ /var/www/ieducar

Substitua o caminho de download do release pelo release atual. Dá pra ver todos os releases aqui:

No momento em que posto este tópico o release atual é o 2.1.13 então o meu comando ficaria assim:

$ wget https://github.com/portabilis/i-educar/releases/download/2.1.13/ieducar-2.1.13.tar.gz

Depois que o código foi devidamente copiado, vamos configurar o nginx para carregar o projeto. No repositório temos um exemplo de arquivo de configuração do nginx. Vamos copiá-lo realizando algumas adaptações (se você não está acostumado com o vim, fique à vontade para usar qualquer outro editor):

$ sudo vim /etc/nginx/sites-available/ieducar
server {
    index index.php index.html;
    server_name _;
    error_log  /var/log/nginx/error.log;
    access_log /var/log/nginx/access.log;
    root /var/www/ieducar/public;

    location ~ ^/intranet/?$ {
        rewrite ^.*$ /intranet/index.php redirect;
    }

    location ~ /module/(.*)/(styles|scripts|imagens)/(.*) {
        rewrite ^/module/(.*)/(imagens|scripts|styles)/(.*)$ /intranet/$2/$3 break;
    }

    location ~ /module/(.*)/(.*) {
        rewrite ^/module/(.*/)(.*intranet/.*)$ /$2 redirect;
        rewrite ^/module/(.*/)(.*index\.php)$ /$2 redirect;
        rewrite ^/module/(.*/)(.*logof\.php)$ /intranet/logof.php redirect;
        rewrite ^/module/(.*/)(.*meusdados\.php)$ /intranet/meusdados.php redirect;
        rewrite ^/module/(.*/)(.*_xml.*)(\.php)$ /intranet/$2.php redirect;
        rewrite ^/module/(.*/)(.*erro_banco\.php)$ /intranet/erro_banco.php redirect;
        rewrite ^/module/(.*/)(.*educar_pesquisa_cliente_lst\.php)$ /intranet/educar_pesquisa_cliente_lst.php redirect;
        rewrite ^/module/(.*/)(.*educar_pesquisa_obra_lst\.php)$ /intranet/educar_pesquisa_obra_lst.php redirect;
        rewrite ^/module/(.*)$ /module/index.php last;
    }

    location ~ ^(/intranet.*\.php|/modules.*\.php|/module/) {
        try_files /index.php =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/run/php/php7.2-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
    }

    location ~ \.php {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/run/php/php7.2-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
    }

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }
}

Alteramos a diretiva root indicando a nova pasta onde colocamos os arquivos do i-Educar. Veja que o root precisa ser a pasta public dentro da pasta que baixamos do i-Educar. Também alteramos a diretiva fastcgi_pass apontando para o socket do php-fpm rodando na nossa máquina. Vamos remover o site padrão do nginx e habilitar o i-Educar:

$ sudo rm /etc/nginx/sites-enabled/default
$ sudo ln -s /etc/nginx/sites-available/ieducar /etc/nginx/sites-enabled/ieducar
$ sudo service nginx restart

O próximo passo é conectar ao PostgreSQL e criar um banco de dados para o i-Educar. Antes vamos criar um novo usuário (role) para o nosso projeto. Aqui vou criar um usuário exatamente com o mesmo login que uso no meu sistema, neste caso ieducar:

$ sudo -u postgres createuser -P -s -e ieducar

Substitua ieducar pelo nome de usuário que você desejar e preencha a senha. Agora basta criar o banco de dados. Como criamos um usuário com o mesmo nome de usuário do nosso sistema, tudo o que precisamos fazer é chamar o seguinte comando.

$ createdb

Se você usou um outro nome de usuário, dê uma olhada na documentação do createdb para saber como proceder.

Com tudo pronto nós já devemos ser capazes de acessar o nosso instalador pelo browser:

http://endereco.de.ip/install.php

Troque “endereco.de.ip” pelo endereço de IP de sua instância ou domínio. A tela de instalação deve surgir.

O instalador pode encontrar uma série de problemas que nos impede de prosseguir com o processo. Primeiro ele avisa que existem extensões do PHP que ainda não foram instaladas, então vamos resolver isto:

$ sudo apt install php-bcmath php-curl php-xml php-mbstring php-pgsql php-zip php-gd
$ sudo service php7.2-fpm restart

O próximo erro indica que o arquivo de configuração ieducar.ini não está correto. Vamos configurá-lo exatamente da forma como o instalador sugere que façamos:

$ cd /var/www/ieducar/ieducar/configuration
$ vim ieducar.ini
[192.168.0.105 : production]

Como você pode ver, todas as sugestões de comandos e mudanças de arquivo levam em consideração o ambiente em que a aplicação está rodando. Assim fica fácil simplesmente copiar o que o instalador sugere.

Em seguida precisamos modificar o nosso arquivo .env para realizar a conexão com o banco:

$ cd /var/www/ieducar
$ vim .env
DB_CONNECTION=pgsql
DB_HOST=127.0.0.1
DB_PORT=5432
DB_DATABASE=ieducar
DB_USERNAME=ieducar
DB_PASSWORD=12345678

Estas configurações vão variar de acordo com a forma como você criou e configurou o banco de dados. Infelizmente para este passo o instalador não tem como descobrir os valores corretos de antemão então é necessário modificá-los de acordo com sua realidade.

Por fim vamos dar permissão de escrita ao servidor em algumas pastas e arquivos específicos. Novamente podemos usar exatamente a sugestão de comando que o instalador nos fornece:

$ sudo chown -R www-data:www-data /var/www/ieducar

Com isso podemos clicar no botão “Recarregar” e todas as checagens devem estar positivas agora.

Se algo ainda não estiver funcionando basta corrigir e tentar novamente.

Ao final da página defina uma senha segura e forte para o usuário “admin”, clique em “instalar” e aguarde pelo processo de instalação. Uma mensagem de sucesso irá surgir e, logo em seguida, você pode acessar o sistema instalado clicando no link “Clique aqui para acessar o i-Educar”.

Parabéns! Você acabou de instalar o i-Educar em seu servidor!

A instalação do i-Educar é bem simples. O mais complexo é organizar a infra-estrutura para permitir sua instalação de forma adequada. A preparação que fizemos aqui é apenas o primeiro passo no caminho de gestão do i-Educar, por isso é importante ter profissionais capacitados responsáveis por garantir seu bom funcionamento levando em consideração questões como segurança, backups, escalabilidade, atualizações, etc. A Portabilis, mantenedora do projeto i-Educar, oferece serviços que respondem a estas questões da melhor forma possível.

Esperamos que o instalador seja de grande ajuda para quem quer experimentar o i-Educar sem dificuldades. Mas se houver qualquer dúvida ou problema, manda a dúvida aqui no fórum ou entre em contato com a Portabilis para uma assessoria profissional.

Agora que você é um expert em instalação do i-Educar considere contribuir conosco participando de nossa comunidade, escrevendo código, documentações, etc. Toda contribuição é super bem-vinda. Para mais informações visite nosso GitHub!

3 Curtidas

Olá bom dia, parabenizo a equipe pelo ótimo tutorial.
instalação no ubuntu server 18.04 com ambiente gráfico lubuntu.
Estou com dois problemas na instalação.

  1. quando sigo os passos e chego na hora de criar um banco de dados aparece um erro no terminal “could not connect to database template1: FATAL: role “root” does not exist”
  2. em seguida sigo os passos e chego ao final, mas quando vou na página de instalação apresenta esses dois erros :slight_smile:

Arquivo de configuração (ieducar.ini)

O arquivo ieducar.ini não está presente ou não está devidamente configurado. Antes de tudo verifique se o arquivo ieducar.ini está presente na pasta ieducar/configuration . Se não estiver lá faça uma cópia com o seguinte comando:

cd /var/www/ieducar/ieducar/configuration cp ieducar.ini.example ieducar.ini

Com o arquivo criado, abra-o no seu editor de texto favorito e acrescente seu host às configurações conforme exemplo abaixo:

no final do arquivo coloque: [192.168.0.170 : production]

e o outro problema:

Conexão com o banco de dados

Não foi possível estabelecer comunicação com o banco de dados. Verifique se os parâmetros abaixo estão configurados corretamente no seu arquivo .env :

DB_CONNECTION=pgsql DB_HOST=postgres DB_PORT=5432 DB_DATABASE=ieducar DB_USERNAME=ieducar DB_PASSWORD=ieducar

gostaria de ajuda para solucionar esse problema.

Isso quer dizer que você está tentando usar o usuário root para se conectar ao banco mas o usuário root não existe. É necessário usar um usuário existente para conectar ao banco.

Com relação ao erro do arquivo de configuração, basta seguir as instruções para resolver o problema.

Sobre o erro do banco, é necessário seguir as instruções alterando as variáveis para os valores corretos dentro de seu ambiente.

O uso do tutorial retorna o seguinte erro quando executado o install.php:

**Warning** : require_once(/var/www/ieducar/vendor/composer/autoload_real.php): failed to open stream: No such file or directory in **/var/www/ieducar/vendor/autoload.php** on line **5**

**Fatal error** : require_once(): Failed opening required '/var/www/ieducar/vendor/composer/autoload_real.php' (include_path='.:/usr/share/php') in **/var/www/ieducar/vendor/autoload.php** on line **5**

Versão do i-Educar: ieducar-2.1.18.tar.gz
Versão do Ubuntu:
Description: Ubuntu 18.04.2 LTS
Release: 18.04
Codename: bionic

@ferox acredito que este problema esteja vinculado com as permissões do outro tópico.

A questão é que eu rodei o chown -R www-data:www-data /var/www/ieducar depois do erro e continua a mesma coisa, o erro persiste. Adicionei ainda o chmod -R 777 /var/www/ieducar .

O erro do outro tópico é diferente @edersoares , pois o ambiente é outro. Aqui o ambiente está rodando numa VM do Ubuntu 18.04LTS.

Pessoal, tudo bem???

Consegui resolver o problema, bom, eu ainda não entendi muito bem como ele se resolveu, coisas da computação. Eu fiz o mesmo processo que fiz na primeira vez, porém removi o projeto clonado, apaguei todas configurações do NGinx, removi o NGinx pelo apt usando o remove e depois o purge. Instalei o NGinx, tive problemas nessa etapa, bom, clonei o projeto novamente e segui os passos deste tutorial e bum, funcionou.

"Tudo o que puder dar errado dará."

2 Curtidas