[RESOLVIDO] Cadastro de aluno não carrega Pessoa Física no i-educar 2.6.1

Boa tarde, o cadastro de aluno no i-educar 2.6.1 não faz a busca das pessoas físicas previamente cadastradas para utilizar nos campos Pessoa e Responsável. Assim não consigo cadastrar um aluno.

Sabem como posso resolver?

Obrigado!

Ver imagens a seguir.

iEducar_pf


Resolvido!

Isso está ocorrendo porque a aplicação não está conseguindo encontrar a biblioteca jquery.form.js. Alterei o endereço informado no corpo da função loadJQueryFormLib no arquivo /var/www/ieducar/ieducar/lib/Portabilis/View/Helper/Application.php

Antes
self::loadJavascript($viewInstance, 'scripts/jquery/jquery.form.js', false);

Depois
self::loadJavascript($viewInstance, 'intranet/scripts/jquery/jquery.form.js', true);

}
2 curtidas

@williams isso pode ter acontecido porque é necessário algumas reescritas de URL no Nginx i-educar/default.conf at 2.6 · portabilis/i-educar · GitHub.

Boa noite @edersoares!

A minha instância do Nginx já havia sido configurada igual ao link que você mandou, código fonte a seguir. O erro continua.

server {

    listen 80;

    server_name default_server;

    root /var/www/ieducar/public;
    index index.php index.html;

    error_log  /var/log/nginx/error.log;
    access_log /var/log/nginx/access.log;

    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/) {
        rewrite ^(.*)$ /index.php$1;
    }

    location ~ \.php {
        fastcgi_read_timeout 300;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass php-fpm;
        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;
    }
}

Dá uma olhada no log do nginx, vai te ajudar a entender para onde ele está apontando.

@williams você rodou o comando composer new-install pra fazer a instalação? Se não foi através dele, use o comando php artisan legacy:link.

@edersoares O comando composer new-install já foi executado no momento da instalação (segui o script criado por @moliveirasoares postado neste link)

Acabei de rodar o php artisan legacy:link mas o problema continuou acontecendo. Obtive a seguinte saída do comando:
criandoUsuario

@tiago.camargo No log do nginx tem o seguinte:

2021/07/01 00:24:33 [error] 60542#60542: *478 directory index of "/var/www/ieducar/public/intranet//" is forbidden, client: meu_client, server: default_server, request: "GET /module/Cadastro/scripts/jquery/jquery.form.js HTTP/1.1", host: "meu_host", referrer: "http://meu_host/module/Cadastro/aluno"
2021/07/01 00:24:34 [error] 60542#60542: *478 directory index of "/var/www/ieducar/public/intranet//" is forbidden, client: meu_client, server: default_server, request: "GET /module/Cadastro/scripts/jquery/jquery.form.js HTTP/1.1", host: "meu_host", referrer: "http://meu_host/module/Cadastro/aluno"
2021/07/01 00:24:34 [error] 60542#60542: *483 directory index of "/var/www/ieducar/public/intranet//" is forbidden, client: meu_client, server: default_server, request: "GET /module/Cadastro/imagens/indicator.gif HTTP/1.1", host: "meu_host", referrer: "http://meu_host/module/Cadastro/aluno"

Como o log indica que não há permissão para acesso ao diretório, tentei liberar a permissão através do comando sudo chmod 755 -R public/intranet/*, mas o problema continua ocorrendo.

No log do navegador indica:

image

Olá @williams, bom dia. Essa não é a forma correta de resolver, fazendo isso não resolve outro problemas de redirecionamento de URI.

O @edersoares está correto ao afirmar que isso está ocorrendo porque é necessário algumas rescritas de URL no Nginx.

Além disso @williams, o lance da permissão negada no log do ngnix não significa permissão no sistema de arquivo linux, é só uma questão de indexação no location do nginx

Resolver isso na versão 2 do script referenciado no post que você mencionou.

Boa tarde!

O erro estava realmente no arquivo de configuração do nginx gerado pela versão 1 desse script de instalação. Se colocar a barra invertida (\) antes dos parâmetros ($) no script de geração desse arquivo, esse problema será resolvido. @moliveirasoares

Na imagem abaixo, o lado esquerdo representa o arquivo original e o lado direito representa o arquivo gerado pelo script de instalação.

Nas mensagens anteriores acabei conferindo o arquivo de configuração direto no script, em vez de conferir o arquivo final gerado, por isso não percebi antes.

Obrigado a todos pela disponibilidade!

UPDATE:
Não consegui achar a opção para marcar o tópico como resolvido. Quem souber onde faz isso, me avise, por favor.

2 curtidas

Que bom que conseguiu resolver @williams.

Recomendo atualizar o título, adicionando o prefixo [RESOLVIDO] -

Só é possível concertar com a reinstalação?

@AdielSan basta corrigir no arquivo de configuração do nginx e reiniciar a aplicação, conforme a imagem com os destaques em vermelho que anexei anteriormente.