Mais

Como compilar ou encontrar a última versão do PHP MapScript (MapServer) para Windows?

Como compilar ou encontrar a última versão do PHP MapScript (MapServer) para Windows?


Tive grandes dificuldades de desempenho com MapServer versão 6.0.3 (MS4W 3.0.6) e precisa última versão do MapScript mas não consigo encontrar no Windows.

Qualquer um pode me ajudar a encontrar as últimas compilado (binário) de MapScript (PHP) ou compilá-lo da fonte para o Windows?


Não encontrei nenhum php_mapscript compilado para nenhum PHP atual também, então tentei compilá-lo sozinho. Levei muito tempo e muitos fracassos, mas consegui.

Não sei se você precisa mais disso, pois sua postagem tem mais de um ano, mas eu tenho php_mapscript.dll compilado contra php-5.6.27-win32-vc11-ts-x86 e Mapserver-7.0-vc11-x86 (estável pacote de ramificação para 7-0 da gisinternals) agora.

A breve história para obter o php_mapscript.dll é:

Construa php conforme descrito na documentação no site php. Eu tenho meu php-sdk emC: dev work php-dev. Baixe gisinternals sdk e extraia tudo paraC: gisinteralssdk. Descompacte tudo no mesmo diretório para obter diretóriosbin,doc,gdal,incluir,lib,mapserver,regex-0.23,lançamento-1700eSWIG-1.3.39dentroC: gisinteralssdk .

Clonei o repositório mapserver no github e apliquei as alterações necessárias para compilar com êxito o php-mapscript para https://github.com/AlexanderGabriel/mapserver. Neste ponto, você pode decidir fundir as mudanças de branchbranch-7-0-fixphpmapscriptwin32buildwithcmakepara o mapserver-sources para estar no repositório oficial ou apenas clonar o repositório comgit clone https://github.com/AlexanderGabriel/mapserver/ C: gisinteralssdk mapserver.

Acabei de abrir um pull-request e espero que eles o incluam em versões futuras.

Esses comandos farão o resto:

cd C: gisinteralssdk mapserver mkdir build cd build cmake… -G "NMake Makefiles" -DBUILD_SHARED_LIBS = 1 -DCMAKE_BUILD_TYPE = Release -Wno-dev -DCMAKE_PREFIX_PATH = C: gisinteralssdk: bin lib; C: gisinteralssdk incluem -DREGEX_DIR = C: gisinteralssdk regex-0,12 -DWITH_SOS = 1 = 1 -DWITH_KML -DWITH_CLIENT_WMS = 1 = 1 -DWITH_CLIENT_WFS -DWITH_THREAD_SAFETY = 1 = 1 -DWITH_FCGI -DWITH_CAIRO = 1 -DCAIRO_LIBRARY = C: gisinteralssdk lib cairo.lib -DWITH_SVGCAIRO = 1 -DSVGCAIRO_LIBRARY = C: gisinteralssdk lib libsvg-cairo.lib -DSVG_LIBRARY = 1 -DSVG_LIBRARY = C: gisinteralssdk libsdk gisinteralssdk = C: gisinteralssdk libsvg-cairo.lib 0

Teste se funciona comnmake. Em seguida, habilite o php:

cmake… -DWITH_PHP = 1 -DPHP5_INCLUDES = C: dev work php-dev phpdev vc11 x86 php-5.6.27-src -DPHP5_EXTENSION_DIR = C: gisinteralssdk

E, finalmente, construir PHP-MapScript comnmake.

Não sei, se você está familiarizado com CMake. Escolha as opções necessárias. PostGIS funciona se você instalar PostGIS em seu sistema e adicionar o caminho para o diretório bin para a variável PATH de seus sistemas ou usuários antes de iniciar o CMake pela primeira vez.

A partir deste ponto, é mais fácil alterar qualquer biblioteca para uma versão diferente ou alterar as opções do CMake para habilitar um recurso necessário. Levei vários dias para compilar o mapscript pela primeira vez (não sabia se eu poderia fazer isso), mas então comecei a reduzir o trabalho para essas poucas etapas. Na minha opinião, é totalmente louco e desnecessário compilar todas as dependências do zero. Sistemas de construção diferentes, muito para ler, fazer e testar. Se quiser, pode ter minhas anotações sobre isso, mas não farei dessa forma mais uma vez;)

O processo de construção do PHP é realmente direto. Exatamente conforme descrito em https://wiki.php.net/internals/windows/stepbystepbuild.

Como não tenho tanta experiência nessas coisas do Windows Build, não tenho certeza se tudo que mudei está bom. Portanto, teste, teste, teste, antes de usar isso na produção.

Espero que isso ajude você a construir seu PHP-Mapscript. Qualquer feedback é bem-vindo.

PS: Eu poderia compilar php-mapscript 'no Windows' com o novo "Linux Subsystem" -Recurso do Windows 10 em alguns minutos. Existem até pacotes nos repositórios para que você possa instalar com apt-get. Você pode instalar um Apache lá e iniciá-lo. Ele ouvirá em 'localhost' de sua máquina Windows. Louco, mas funciona e você pode acessar Mapfiles em C ou qualquer outra unidade de lá. Portanto, se você deseja usar o Windows apenas para desenvolvimento, esta pode ser uma opção. Mas ainda não para produção.

ATUALIZAÇÃO 04-01-2017: O projeto Mapserver mesclou meu pull-request no github. A versão 7.0.3 contém todos os patches, mas nenhuma documentação atualizada. No branch atual, já existe uma nova documentação em README.WIN32 para ambos, Mapserver e PHP / MapScript, então você pode usar a documentação lá para construir Mapserver com PHP / MapScript no Windows


Desde que você postou sua pergunta, o MapServer for Windows (MS4W) lançou uma nova versão, que fornece a versão 7 do MapServer e suporte a MapScript para PHP, Python, Java e CSharp.

Uma fonte alternativa de binários do Windows para MapServer (com suporte para Mapscript) pode ser encontrada em GISInternals


Assista o vídeo: How to compile your Php code by Phpdefender