Essa conexão pode não ser segura e os dados de usuário/senha podem ser descobertos
HTML; // } exit(); } else { $continua = \admin\php\funcoesAdmin\verificaMaster($_POST["usuario"], $_POST["senha"], $i3geomaster); if ($continua == false) { echo << Usuário não registrado em i3geo/ms_configura.php na variável i3geomaster HTML; exit(); } } error_reporting(E_ALL); $ip = "UNKNOWN"; if (getenv("HTTP_CLIENT_IP")) $ip = getenv("HTTP_CLIENT_IP"); else if (getenv("HTTP_X_FORWARDED_FOR")) $ip = getenv("HTTP_X_FORWARDED_FOR"); else if (getenv("REMOTE_ADDR")) $ip = getenv("REMOTE_ADDR"); else $ip = "UNKNOWN"; $os = PHP_OS; $phpversion = phpversion(); echo <<

TESTE DE INSTALAÇÃO DO i3Geo

$mensagemInicia

HTML; $versao = versao(); $versao = $versao["principal"]; $exts = get_loaded_extensions(); if (! function_exists("ms_GetVersion")) { echo ''; } echo "

MapServer:

";
echo ms_GetVersion();
echo "
"; echo "

Array que armazena os parâmetros da versão:

";
var_dump(versao());
echo "
"; echo "

Configuração da projeção default: (saiba mais)

"; if (! isset($i3GeoProjDefault)) { echo ''; } echo "
";
var_dump(pegaProjecaoDefault());
echo "
"; if (! function_exists("ms_GetVersion")) { echo ''; } if (get_cfg_var("safe_mode") == 1) { echo ''; } echo <<Acentuação
As seguintes letras devem aparecer corretamente acentuadas:
çÇãâáÁóÓ
Caso contrário, verifique os parâmetros de configuração do Apache
AddDefaultCharset (httpd.conf) e default_charset (php.ini)
(default_charset='' no php.ini geralmente funciona)
		
HTML; // executa as opcoes linux definidas no formulario echo "

Aplicando as operações opcionais

";
if (! empty($_POST["criaPastaMstmp"]) && $_POST["criaPastaMstmp"] == "on") {
    echo "Criando a pasta $dir_tmp";
    if (! file_exists($dir_tmp)) {
        @mkdir($dir_tmp, 0744);
        chmod($dir_tmp, 0744);
    }
    if (! file_exists($dir_tmp)) {
        echo "Arquivo $dir_tmp não pode ser criado";
    } else {
        echo "...OK";
    }
} else {
    echo "Criação de pastas não solicitada\n";
}
if (! empty($_POST["criaPastaMstmp"]) && $_POST["criaLink"] == "on") {
    $d = dirname(dirname(__FILE__)) . "/../ms_tmp";
    echo "Criando o link simbólico $d\n";
    if (! file_exists($d)) {
        @symlink($dir_tmp, $d);
        chmod($d, 0744);
    }
    if (! file_exists($d)) {
        echo "Link $d não pode ser criado\n";
    } else {
        echo "...OK\n";
    }
} else {
    echo "Criação de link simbólico não solicitada\n";
}
if (! empty($_POST["criaPastaMstmp"]) && $_POST["permPastaI3geo"] == "on") {
    echo "Alterando permissões i3geo i3geo/temas i3geo/admin i3geo/admin/admin.db\n";
    if (file_exists($locaplic)) {
        chmod($locaplic, 0744);
        chmod($locaplic . "/temas", 0744);
        chmod($locaplic . "/admin", 0744);
        chmod($locaplic . "/admin/admin.db", 0744);
        echo "...OK\n";
    }
} else {
    echo "Alterações de permissão não solicitada\n";
}
echo "
"; echo "

Extensões PHP

";
if (! extension_loaded("curl")) {
    echo "";
}
if (! extension_loaded("json")) {
    echo "";
}
if (! extension_loaded("libxml")) {
    echo "";
}
if (! extension_loaded("PDO")) {
    echo "";
}
if (! extension_loaded("pdo_sqlite")) {
    echo "";
}
if (! extension_loaded("SQLite") && ! extension_loaded("sqlite3")) {
    echo "";
}
if (! extension_loaded("SimpleXML")) {
    echo "";
}
if (! extension_loaded("dom")) {
    echo "";
}
if (! extension_loaded("xml")) {
    echo "";
}
if (! extension_loaded("zlib")) {
    echo "";
}
if (! extension_loaded("mbstring")) {
    echo "";
}
if (! extension_loaded("yaml")) {
    echo "";
}

var_dump($exts);
echo "
"; echo "

ms_configura.php

"; if (! file_exists("../ms_configura.php")) { echo ""; } include ("../ms_configura.php"); $loceste = getcwd(); $spath = session_save_path(); echo <<
  • Mensagem de inicialização $mensagemInicia
  • dir_tmp $dir_tmp
  • locmapserv $locmapserv
  • Localização deste PHP $loceste
  • HTML; echo "

    Banco de administração

    "; if ($conexaoadmin == "" && file_exists($locaplic . "/admin/admin.db")) { echo ""; } include_once ("../classesphp/conexao.php"); echo "

    Verificando banco de dados de administração

    "; echo "
    ";
    // TODO Verificar ao fechar versao - verificar tabelas
    $tabelas = array(
        "i3geoadmin_sistemasf" => "abrir_funcao,h_funcao,id_funcao,id_sistema,nome_funcao,perfil_funcao,w_funcao",
        "i3geoadmin_tags" => "id_tag,nome",
        "i3geoadmin_perfis" => "id_perfil,perfil",
        "i3geoadmin_atlasp" => "ordem_prancha,desc_prancha,h_prancha,icone_prancha,id_atlas,id_prancha,link_prancha,mapext_prancha,titulo_prancha,w_prancha",
        "i3geoadmin_atlast" => "ordem_tema,codigo_tema,id_prancha,id_tema,ligado_tema",
        "i3geoadmin_mapas" => "publicado_mapa,ordem_mapa,perfil_mapa,ligados_mapa,temas_mapa,desc_mapa,ext_mapa,id_mapa,imagem_mapa,linkdireto_mapa,nome_mapa,outros_mapa,mapfile",
        "i3geoadmin_atlas" => "publicado_atlas,ordem_atlas,basemapfile_atlas,desc_atlas,h_atlas,icone_atlas,id_atlas,link_atlas,pranchadefault_atlas,template_atlas,tipoguias_atlas,titulo_atlas,w_atlas",
        "i3geoadmin_sistemas" => "publicado_sistema,id_sistema,nome_sistema,perfil_sistema",
        "i3geoadmin_identifica" => "publicado_i,abrir_i,id_i,nome_i,target_i",
        "i3geoadmin_raiz" => "ordem,id_tema,id_menu,id_nivel,id_raiz,nivel,perfil",
        "i3geoadmin_n1" => "publicado,ordem,id_menu,id_grupo,id_n1,n1_perfil",
        "i3geoadmin_n2" => "publicado,ordem,id_n1,id_n2,id_subgrupo,n2_perfil",
        "i3geoadmin_n3" => "publicado,ordem,id_n2,id_n3,id_tema,n3_perfil",
        "i3geoadmin_ws" => "nacessosok,nacessos,autor_ws,desc_ws,id_ws,link_ws,nome_ws,tipo_ws",
        "i3geoadmin_grupos" => "it,es,en,desc_grupo,id_grupo,nome_grupo",
        "i3geoadmin_subgrupos" => "it,es,en,desc_subgrupo,id_subgrupo,nome_subgrupo",
        "i3geoadmin_temas" => "it,es,en,kmz_tema,id_tema,kml_tema,ogc_tema,download_tema,tags_tema,tipoa_tema,link_tema,desc_tema,nome_tema,codigo_tema",
        "i3geoadmin_menus" => "it,es,en,publicado_menu,perfil_menu,aberto,desc_menu,id_menu,nome_menu",
        "i3geoadmin_comentarios" => "comentario,data,openidnome,openidimagem,openidservico,openidusuario,openidurl,id_tema",
        "i3geoadmin_acessostema" => "codigo_tema,nacessos,dia,mes,ano",
        "i3geoadmin_log" => "id_log,sql,serializedata,usuario,ip,timestamp,outros",
        "i3geousr_usuarios" => "id_usuario,ativo,data_cadastro,email,login,nome_usuario,senha",
        "i3geousr_papeis" => "id_papel,nome,descricao",
        "i3geousr_papelusuario" => "id_usuario,id_papel",
        "i3geousr_operacoes" => "id_operacao,codigo,descricao",
        "i3geousr_operacoespapeis" => "id_operacao,id_papel",
        "i3geousr_grupos" => "id_grupo,nome,descricao",
        "i3geousr_grupotema" => "id_grupo,id_tema",
        "i3geousr_grupousuario" => "id_usuario,id_grupo",
        "i3geoestat_conexao" => "codigo_estat_conexao,bancodedados,host,porta,usuario,senha",
        "i3geoestat_tipo_regiao" => "codigo_tipo_regiao,nome_tipo_regiao,descricao_tipo_regiao,codigo_estat_conexao,esquemadb,tabela,colunageo,data,identificador,colunanomeregiao,srid,colunacentroide,colunasvisiveis,apelidos",
        "i3geoestat_agregaregiao" => "id_agregaregiao,codigo_tipo_regiao,codigo_tipo_regiao_pai,colunaligacao_regiaopai",
        "i3geoestat_tipo_periodo" => "codigo_tipo_periodo,nome,descricao",
        "i3geoestat_unidade_medida" => "codigo_unidade_medida,nome,sigla,permitesoma,permitemedia",
        "i3geoestat_variavel" => "codigo_variavel,nome,descricao",
        "i3geoestat_medida_variavel" => "id_medida_variavel,codigo_unidade_medida,codigo_tipo_periodo,codigo_variavel,codigo_tipo_regiao,codigo_estat_conexao,esquemadb,tabela,colunavalor,colunaidgeo,filtro,nomemedida,colunaidunico",
        "i3geoestat_classificacao" => "id_classificacao,nome,id_medida_variavel,observacao",
        "i3geoestat_classes" => "id_classe,expressao,titulo,vermelho,verde,azul,id_classificacao,tamanho,simbolo,overmelho,overde,oazul,otamanho",
        "i3geoestat_fonteinfo" => "id_fonteinfo,titulo,link",
        "i3geoestat_fonteinfo_medida" => "id_medida_variavel,id_fonteinfo",
        "i3geoestat_medida_variavel_link" => "link,id_medida_variavel,nome,id_link",
        "i3geoestat_parametro_medida" => "id_parametro_medida,coluna,nome,descricao,id_pai,id_medida_variavel,tipo"
    );
    include_once ("../classesphp/conexao.php");
    if (! empty($esquemaadmin)) {
        $esquemaadmin = str_replace(".", "", $esquemaadmin) . ".";
    }
    
    foreach (array_keys($tabelas) as $tabela) {
        echo "     Tabela: " . $tabela . "";
        $sql = "select * from " . $esquemaadmin . $tabela;
        $q = $dbh->query($sql, PDO::FETCH_ASSOC);
        if ($q !== false) {
            $resultado = $q->fetchAll();
            if (count($resultado) > 0) {
                echo " ok\n";
                foreach (explode(",", $tabelas[$tabela]) as $coluna) {
                    echo "         coluna: " . $coluna;
                    if (in_array($coluna, array_keys($resultado[0]))) {
                        echo " ok\n";
                    } else {
                        echo " não encontrada. Consulte o i3geo/guia_de_migracao.txt\n";
                    }
                }
            } else {
                echo " não existem registros cadastrados\n";
            }
        } else {
            echo " não encontrada. Consulte o i3geo/guia_de_migracao.txt\n";
        }
    }
    echo "
    "; echo "

    CGI

    "; $proto = "http" . ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == "on") ? "s" : "") . "://"; $server = isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : $_SERVER['SERVER_NAME']; $enderecocgi = $proto . $server . $locmapserv; echo ""; echo ""; echo "

    Testes de escrita

    ";
    if (file_exists("../temas/teste.txt")) {
        echo "
    "; echo "

    Carregando o map_file base

    "; $versao = versao(); $versao = $versao["principal"]; if (isset($base) && $base != "") { if (file_exists($base)) { $f = $base; } else { $f = $locaplic . "/aplicmap/" . $base . ".map"; } if (! file_exists($base)) { echo ""; exit(); } } else { $f = ""; if (strtoupper(substr(PHP_OS, 0, 3) == 'WIN')) { $f = $locaplic . "/aplicmap/geral1windowsv" . $versao . ".map"; } else { if ($f == "" && file_exists('/var/www/i3geo/aplicmap/geral1debianv' . $versao . '.map')) { $f = "/var/www/i3geo/aplicmap/geral1debianv" . $versao . ".map"; } if ($f == "" && file_exists('/var/www/html/i3geo/aplicmap/geral1fedorav' . $versao . '.map')) { $f = "/var/www/html/i3geo/aplicmap/geral1fedorav" . $versao . ".map"; } if ($f == "" && file_exists('/opt/www/html/i3geo/aplicmap/geral1fedorav' . $versao . '.map')) { $f = "/opt/www/html/i3geo/aplicmap/geral1v" . $versao . ".map"; } if ($f == "") { $f = $locaplic . "/aplicmap/geral1v" . $versao . ".map"; } } } echo ""; echo "
    ";
    echo "

    Criando o objeto com ms_newMapObj..."; echo "

    Desenhando o mapa (se o mapa não aparecer \nverifique os caminhos no ms_configura.php e no $f)

    "; $mapa = ms_newMapObj($f); // para evitar erros que possam ser originados da conexao com o banco for ($i = 0; $i < ($mapa->numlayers); $i ++) { $layern = $mapa->getLayer($i); if ($layern->connectiontype == MS_POSTGIS) { $layern->set("status", MS_OFF); } } $l = $mapa->getLayerByname("mundo"); if ($l != "") { $l->set("status", MS_DEFAULT); } $imgo = @$mapa->draw(); $nome = ($imgo->imagepath) . "teste.png"; echo "
    Nome da imagem gerada: $nome
    "; if (! $imgo) { echo ""; } if ($imgo->imagepath == "") { echo ""; } $imgo->saveImage($nome); $nome = ($imgo->imageurl) . basename($nome); echo ""; echo " \n"; $error = ""; ms_ResetErrorList(); echo "

    Carregando o map_file geral1... e acrescentando os limites estaduais (aplicmap/estadosl...)

    "; if (isset($estadosl)) { $maptemp = ms_newMapObj($locaplic . "/aplicmap/" . $estadosl . ".map"); } else { if (strtoupper(substr(PHP_OS, 0, 3) == 'WIN')) { $maptemp = ms_newMapObj($locaplic . "/aplicmap/estadoslwindows.map"); } else { $maptemp = ms_newMapObj($locaplic . "/aplicmap/estadosl.map"); } } while ($error && $error->code != MS_NOERR) { printf("", $error->routine, $error->message); $error = $error->next(); } echo <<Se o mapa não aparecer verifique os caminhos no ms_configura.php e no estadosl.map ou estadoslwindows.map\n Um problema bastante comum é o não reconhecimento do diretório ms_tmp pelo Apache. \n O diretorio ms_tmp é utilizado pelo Mapserver e pelo i3geo para armazenar dados temporários. É nesse diretorio\n que ficam as imagens do mapa. Quando o Apache não consegue utilizar esse diretório, a imagem não será mostrada,\n apesar de ser gerada dentro do ms_tmp (vc pode verificar se as imagens do mapa estão sendo criadas no ms_tmp apos \n rodar o testainstal.php).Para solucionar esse problema, vc pode criar um link simbólico (nos sistemas linux),\n no mesmo local onde está instalado o i3geo, apontando para o local físico onde está o ms_tmp.\n O nome do link simbolico deve ser o mesmo que estiver definido em aplicmap/geral1.map ou geral1debian.map na linha IMAGEURL. \n Esse nome por default é definido como ms_tmp. No wiki do portal do software público vc poderá encontrar mais detalhes sobre isso. HTML; for ($i = 0; $i < ($maptemp->numlayers); $i ++) { $layern = $maptemp->getLayer($i); if ($layern->name == "estadosl") { $layern->set("data", $locaplic . "/aplicmap/dados/estados.shp"); } ms_newLayerObj($mapa, $layern); } $imgo = @$mapa->draw(); if (! $imgo) { echo "Problemas ao gerar o mapa
    "; $error = ""; $error = ms_GetErrorObj(); while ($error && $error->code != MS_NOERR) { echo "", $error->routine, $error->message; $error = $error->next(); } } if ($imgo->imagepath == "") { echo ""; } $nome = ($imgo->imagepath) . "teste1.png"; echo "
    Nome da imagem gerada: $nome
    "; $imgo->saveImage($nome); $nome = ($imgo->imageurl) . basename($nome); echo "
    "; function saindo($men) { echo ""; } /* * Retorna as permissões de um arquivo * * Parametros: * * $arquivo */ function permissoesarquivo($arquivo) { $perms = fileperms($arquivo); if (($perms & 0xC000) == 0xC000) { // Socket $info = 's'; } elseif (($perms & 0xA000) == 0xA000) { // Symbolic Link $info = 'l'; } elseif (($perms & 0x8000) == 0x8000) { // Regular $info = '-'; } elseif (($perms & 0x6000) == 0x6000) { // Block special $info = 'b'; } elseif (($perms & 0x4000) == 0x4000) { // Directory $info = 'd'; } elseif (($perms & 0x2000) == 0x2000) { // Character special $info = 'c'; } elseif (($perms & 0x1000) == 0x1000) { // FIFO pipe $info = 'p'; } else { // Unknown $info = 'u'; } // Owner $info .= (($perms & 0x0100) ? 'r' : '-'); $info .= (($perms & 0x0080) ? 'w' : '-'); $info .= (($perms & 0x0040) ? (($perms & 0x0800) ? 's' : 'x') : (($perms & 0x0800) ? 'S' : '-')); // Group $info .= (($perms & 0x0020) ? 'r' : '-'); $info .= (($perms & 0x0010) ? 'w' : '-'); $info .= (($perms & 0x0008) ? (($perms & 0x0400) ? 's' : 'x') : (($perms & 0x0400) ? 'S' : '-')); // World $info .= (($perms & 0x0004) ? 'r' : '-'); $info .= (($perms & 0x0002) ? 'w' : '-'); $info .= (($perms & 0x0001) ? (($perms & 0x0200) ? 't' : 'x') : (($perms & 0x0200) ? 'T' : '-')); return $info; } ?>