O que irá permitir a comunicação entre a interface GPIB e o utilizador será uma extensão PHP construída na Linguagem C utilizando as livrarias do Core do PHP-ZEND. Devido á pouca existência de documentação de criação de extensões PHP em ambiente win32, fiz uma pesquisa e após muitos erros de compilação e falhas de versões (Abençoado UNIX), consegui encontrar a forma mais simples de compilação.
Optei por utilizar um versão do php >5, devido a existirem menos bugs de gestão de memoria e nova funções que podem vir a ser muito uteis.
Software Necessário:
Microsoft® Windows Server 2003 R2 Platform SDK (Caso seja necessário compilar o Core do PHP)
http://www.microsoft.com/downloads/details.aspx?FamilyId=0BAF2B35-C656-4969-ACE8-E4C0C0716ADB&displaylang=en
(Nota: A instalação típica tem tudo o que precisamos, mas (400MB é muito) aconselho a fazer costum e só instalar o Core do SDK)
Visual Studio 6 C++
Apache http Server 2.0.59
http://httpd.apache.org/
PHP 5.1.6 Windows Binary
http://php.mirror.camelnetwork.com/get/php-5.1.6-Win32.zip/from/a/mirror
PHP 5.1.5 Source Code
http://php.mirror.camelnetwork.com/get/php-5.1.6.tar.bz2/from/a/mirror
win32 buildtools do PHP em /extra/win32build.zip
O código-fonte para o DNS name resolver usado pelo PHP em /extra/bindlib_w32.zip. Esse é um substituto para a biblioteca resolv.lib inclusa no arquivo win32build.zip
Passos:
1. Instalar PHP 5.1.6 e Servidor Apache
2. Criar Pasta “mãe” num local de trabalho ex.: c: \projecto
3. Descompactar win32build.zip nesta pasta –> c: \projecto\win32build
4. Descompactar bindlib_w32.zip nesta pasta –> c: \projecto\ bindlib_w32
5. Descompactar código fonte do PHP –> c: \ projecto\php-5.1.6
6. Compilar bindlib_w32, para isso abrir bindlib.dsp com VS6 C++ fazer build (F7), de seguida copiar resolv.lib para a pasta win32build e substituir a que lá está.
7. O primeiro passo para construir a extensão será correr o script tipo SKEL do unix, que irá criar uma pasta na directoria php5.1.6/ext com o projecto para Visual Studio.
a. Colocar a pasta c: \PHP no PATH do Windows
b. Entrar na directoria c: \projecto\php-5.1.6\ext\
c. Linha de Comandos do Windos: php ext_skel_win32.php --extname= [nome da extensão]
8. Copiar a livraria php5ts.lib do directório c: \php\dev para a pasta da extensão
9. Entrar na directoria c: \projecto\php-5.1.6\ext\ [nome da extensão] e abrir ficheiro .dsp para o visual studio
10. Fazer Build (F7) da versão RELEASE_TS
11. A extensão DLL foi criada na pasta c:\projecto\php-5.1.6\release_ts
12. Copiar o DLL para a pasta c:\php\ext (ter em atenção o PHP.INI extension_dir= c:\php\ext e extension=php_[nome da extensão].dll)
13. Restart ao Apache e fazer um phpinfo() para ver se tudo está bem.
14. Esta extensão ira ter algum lixo desnecessário que se pode limpar, como por exemplo :
a. linha 43 em php_[nome da extensão].h
b. linha 42 em [nome da extensão].c
c. linha 155-167 em [nome da extensão].c
Básico Concluído :)
1 comment:
essa informação é muito útil e difícil de encontrar,
vlw
Post a Comment