VirtualBox + Apache + PHP + SQL Server
Que tal programar no Linux usando PHP + SQL Server 2005? É isso mesmo, neste artigo vou ensinar desde como instalar o Windows numa máquina virtual até a conexão com o SQL via PHP, que rodará no Linux.
Parte 4: Apache e PHP
Considerações iniciais
Algumas distribuições já vem com o Apache (httpd) e o PHP instalados, como é o caso do Slackware. Antes de ir compilando, vamos remover o que já está instalado, execute (como root):# /etc/rc.d/rc.httpd stop
# removepkg httpd
# removepkg php
Se você usa outra distribuição, utilize o método de remoção dela.
Instalando o apache
Se você instalou o apache usando um pacote pré-compilado, pule esta parte.Copie o apache para o diretório /opt/ (como root):
# cp httpd-XXX.tar.gz /opt/ # Onde XXX é a versão do apache
Extraia seu conteúdo e entre em seu diretório:
# tar -xvzf httpd-XXX.tar.gz
# cd httpd-XXX
Vamos a compilação (ainda como root):
# ./configure --enable-so
# make
# make install
Agora o PHP:
# cp php-XXX.tar.gz /opt
# tar -xvzf php-XXX
# cd php-XXX
É aqui que vem o 'pulo do gato', existem 3 formas de compilar o PHP para que ele funcione com acesso a SQL Server, a primeira (db-lib) funciona, mas obtive erros inesperados de estouro de memória.
A segunda (ct-lib) é a que vamos usar e a terceira (ODBC) não funcionou nem com reza brava aqui. Então vamos lá:
# ./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-sybase-ct=/usr/local/freetds
Antes de executar o resto da compilação, devemos remover alguns parâmetros para que não dê erro, para isso edite o arquivo MakeFile (como root):
# vim MakeFile
Procure a linha EXTRA_LIBS, você vai notar que existem inúmeros parâmetros e alguns deles vão ter que ser excluídos, são eles:
-lsybtcl -lintl -lcomn -lcs
Somente esses, não mexa nos outros. Agora vamos compilar (como root):
# make
# make install
Se tudo correu bem até aqui, seu ambiente de desenvolvimento está pronto!!!
Inicie o apache (como root):
# /etc/rc.d/rc.httpd start
Inicie sua máquina virtual e divirta-se!
Estranho que o ODBC no PHP não tenha funcionado. Eu conheço o FreeTDS por fazer funcionar esse tipo de conexão exatamente com o ODBC. Você instalou o UnixODBC?
Tb não recomendaria Windows XP. Um Windows Server seria mais adequado.