[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

cd /var/www/ieducar/ieducar/configuration
bash: cd: /var/www/ieducar/ieducar/configuration: Arquivo ou diretório inexistente
Nas últimas, me vem esse erro. Não achei a pasta configuration.

Essa pasta não existe mais a partir da versão 2.2

Você não precisa mais alterar as configurações dos arquivos .ini. Agora todas as configurações ficam no banco, na tabela public.settings

1 Curtida

Quando tento salvar a edição no .env
.env"
“.env” E212: Impossível abrir arquivo para escrita
Aperte ENTER ou digite um comando para continuar

eber to precisando de um tutorial de instalacao do i-Diario no ubuntu 18.04. Tem como criar um topico e postar por favor.

Versao ieducar 2.1.15

Erro ao reiniciar Nginx:

educar@ieducar:~ sudo vim /etc/nginx/sites-available/ieducar ieducar@ieducar:~ sudo rm /etc/nginx/sites-enabled/default
ieducar@ieducar:~ sudo ln -s /etc/nginx/sites-available/ieducar /etc/nginx/sites-enabled/ieducar ieducar@ieducar:~ sudo service nginx restart
Job for nginx.service failed because the control process exited with error code.
See “systemctl status nginx.service” and “journalctl -xe” for details.

Resolvido apos refazer a configuracao desta etapa.

1 Curtida

Alguem pode me ajudar com esse erro, segue “erro.log” :

2020/02/03 20:36:41 [crit] 20967#20967: *11 connect() to unix:/run/php/php7.2-fpm.sock failed (2: No such file or directory) while connecting to upstream, client: 10.0.2.15, server: _, request: “GET / HTTP/1.1”, upstream: “fastcgi://unix:/run/php/php7.2-fpm.sock:”, host: “10.0.2.15”

Resolvido alterando a versão do PHP em sites-available/ieducar:

fastcgi_pass unix:/run/php/php7.x-fpm.sock;
fastcgi_pass unix:/run/php/php7.x-fpm.sock;
```![Captura de tela de 2020-02-04 11-26-18|690x388](upload://xaOimlkq3M60eAlKqlxh9FWG6IP.png)

Chegou tudo certo, inclusive a página de checagem está tudo ok.
Porém quando eu tento rodar a instalação ele aparece o seguinte erro durante a instalação. Alguma sugestão?o Log está mais abaixo. Grato.

(ERRO)
erro

LOG:
cat laravel-2020-08-06.log
[2020-08-06 22:03:06] production.ERROR: SQLSTATE[0A000]: Feature not supported: 7 ERROR: tables declared WITH OIDS are not supported (SQL:
SET default_with_oids = true;

            CREATE SEQUENCE cadastro.deficiencia_cod_deficiencia_seq
                START WITH 15
                INCREMENT BY 1
                MINVALUE 0
                NO MAXVALUE
                CACHE 1;

            CREATE TABLE cadastro.deficiencia (
                cod_deficiencia integer DEFAULT nextval('cadastro.deficiencia_cod_deficiencia_seq'::regclass) NOT NULL,
                nm_deficiencia character varying(70) NOT NULL,
                deficiencia_educacenso smallint,
                desconsidera_regra_diferenciada boolean DEFAULT false,
                    updated_at timestamp NULL DEFAULT now()
            );

            ALTER TABLE ONLY cadastro.deficiencia
                ADD CONSTRAINT pk_cadastro_escolaridade PRIMARY KEY (cod_deficiencia);

            SELECT pg_catalog.setval('cadastro.deficiencia_cod_deficiencia_seq', 15, false);
        ) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 0A000): SQLSTATE[0A000]: Feature not supported: 7 ERROR:  tables declared WITH OIDS are not supported (SQL:
            SET default_with_oids = true;

            CREATE SEQUENCE cadastro.deficiencia_cod_deficiencia_seq
                START WITH 15
                INCREMENT BY 1
                MINVALUE 0
                NO MAXVALUE
                CACHE 1;

            CREATE TABLE cadastro.deficiencia (
                cod_deficiencia integer DEFAULT nextval('cadastro.deficiencia_cod_deficiencia_seq'::regclass) NOT NULL,
                nm_deficiencia character varying(70) NOT NULL,
                deficiencia_educacenso smallint,
                desconsidera_regra_diferenciada boolean DEFAULT false,

\t updated_at timestamp NULL DEFAULT now()
);

            ALTER TABLE ONLY cadastro.deficiencia
                ADD CONSTRAINT pk_cadastro_escolaridade PRIMARY KEY (cod_deficiencia);

            SELECT pg_catalog.setval('cadastro.deficiencia_cod_deficiencia_seq', 15, false);
        ) at /var/www/ieducar/vendor/laravel/framework/src/Illuminate/Database/Connection.php:669, Doctrine\\DBAL\\Driver\\PDOException(code: 0A000): SQLSTATE[0A000]: Feature not supported: 7 ERROR:  tables declared WITH OIDS are not supported at /var/www/ieducar/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php:43, PDOException(code: 0A000): SQLSTATE[0A000]: Feature not supported: 7 ERROR:  tables declared WITH OIDS are not supported at /var/www/ieducar/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php:41)

[stacktrace]
#0 /var/www/ieducar/vendor/laravel/framework/src/Illuminate/Database/Connection.php(629): Illuminate\Database\Connection->runQueryCallback()
#1 /var/www/ieducar/vendor/laravel/framework/src/Illuminate/Database/Connection.php(516): Illuminate\Database\Connection->run()
#2 /var/www/ieducar/vendor/laravel/framework/src/Illuminate/Database/DatabaseManager.php(349): Illuminate\Database\Connection->unprepared()
#3 /var/www/ieducar/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php(261): Illuminate\Database\DatabaseManager->__call()
#4 /var/www/ieducar/database/migrations/legacy/2020_01_01_110000_create_cadastro_deficiencia_table.php(17): Illuminate\Support\Facades\Facade::__callStatic()
#5 /var/www/ieducar/vendor/laravel/framework/src/Illuminate/Database/Migrations/Migrator.php(392): CreateCadastroDeficienciaTable->up()
#6 /var/www/ieducar/vendor/laravel/framework/src/Illuminate/Database/Concerns/ManagesTransactions.php(29): Illuminate\Database\Migrations\Migrator->Illuminate\Database\Migrations\{closure}()
#7 /var/www/ieducar/vendor/laravel/framework/src/Illuminate/Database/Migrations/Migrator.php(400): Illuminate\Database\Connection->transaction()
#8 /var/www/ieducar/vendor/laravel/framework/src/Illuminate/Database/Migrations/Migrator.php(200): Illuminate\Database\Migrations\Migrator->runMigration()
#9 /var/www/ieducar/vendor/laravel/framework/src/Illuminate/Database/Migrations/Migrator.php(165): Illuminate\Database\Migrations\Migrator->runUp()
#10 /var/www/ieducar/vendor/laravel/framework/src/Illuminate/Database/Migrations/Migrator.php(110): Illuminate\Database\Migrations\Migrator->runPending()
#11 /var/www/ieducar/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/MigrateCommand.php(71): Illuminate\Database\Migrations\Migrator->run()
#12 [internal function]: Illuminate\Database\Console\Migrations\MigrateCommand->handle()
#13 /var/www/ieducar/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(32): call_user_func_array()
#14 /var/www/ieducar/vendor/laravel/framework/src/Illuminate/Container/Util.php(37): Illuminate\Container\BoundMethod::Illuminate\Container\{closure}()
#15 /var/www/ieducar/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(90): Illuminate\Container\Util::unwrapIfClosure()
#16 /var/www/ieducar/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(34): Illuminate\Container\BoundMethod::callBoundMethod()
#17 /var/www/ieducar/vendor/laravel/framework/src/Illuminate/Container/Container.php(590): Illuminate\Container\BoundMethod::call()
#18 /var/www/ieducar/vendor/laravel/framework/src/Illuminate/Console/Command.php(134): Illuminate\Container\Container->call()
#19 /var/www/ieducar/vendor/symfony/console/Command/Command.php(255): Illuminate\Console\Command->execute()
#20 /var/www/ieducar/vendor/laravel/framework/src/Illuminate/Console/Command.php(121): Symfony\Component\Console\Command\Command->run()
#21 /var/www/ieducar/vendor/symfony/console/Application.php(1000): Illuminate\Console\Command->run()
#22 /var/www/ieducar/vendor/symfony/console/Application.php(271): Symfony\Component\Console\Application->doRunCommand()
#23 /var/www/ieducar/vendor/symfony/console/Application.php(147): Symfony\Component\Console\Application->doRun()
#24 /var/www/ieducar/vendor/laravel/framework/src/Illuminate/Console/Application.php(93): Symfony\Component\Console\Application->run()
#25 /var/www/ieducar/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(131): Illuminate\Console\Application->run()
#26 /var/www/ieducar/artisan(37): Illuminate\Foundation\Console\Kernel->handle()
#27 {main}
"}

Bom dia @dimattos!

Qual versão do postgres você está utilizando?

Oi Tiago! Não estava achando esse meu post. Já coloquei em outro post que alguém referenciava o mesmo problema. Já resolvi, eu estava usando a versão 12, quando fiz o downgrade para 9.5 deu tudo certo!

Obrigado!

1 Curtida

Gente segui o passo a passo acima e estou com erro com a conexão com o banco de dados? meu arquivo .env está padrão , criei o banco da msm forma do arquivo .env

Que tipo de erro? Posta o log para gente!

problema corrigido, era so trocar o username na criação do banco