Compilando php5 com suporte a mysql e mysqli simultâneamente

Publicado por Eduardo Cereto Carvalho em 20/04/2006

[ Hits: 16.503 ]

 


Compilando php5 com suporte a mysql e mysqli simultâneamente



Olá. Essa é a minha primeira dica. Na verdade, é a minha primeira contribuição concreta para o comunidade. Vou cobrir umas dúvidas que eu tive ao compilar o PHP 5.

O meu sistema é um Ubuntu 5.10 'Breezy Badger' com kernel 2.6.12-9. Estarei compilando a versão 5.0.5 do PHP.

Bom, vou cobrir desde o ínicio da compilação.

Primeiro você deve checar se tem as duas bibliotecas que o PHP 5 precisa:
Baixe o fonte das duas para uma pasta temporária e compile da seguinte maneira:

1. Zlib

$ cd zlib-xxx
$ ./configure --prefix=/usr/local/lib
$ make
$ su -c "make install"


LibXML

$ cd libxml-xxx
$ ./configure --prefix=/usr/local/lib
$ make
$ su -c "make install"


Agora baixe o fonte do PHP para o seu diretório temporário também. Aqui vão os parâmetros que eu costumo usar:

$ cd php-5.0.5
$ ./configure --prefix=/usr/local/php5 \
> --with-apxs2=/usr/local/apache2/bin/apxs \
> --with-libxml-dir=/usr/local/lib \
> --with-zlib --with-zlib-dir=/usr/local/lib \
> --with-mysql=/usr/local/mysql \
> --with-mysql-sock=/tmp/mysql.sock \
> --with-mysqli=/usr/local/mysql/bin/mysql_config \
> --with-gd --enable-soap --enable-sockets
  • --with-apxs2=: deve apontar para o arquivo apxs do seu Apache 2, qualquer que seja o caminho dele. O comando para o Apache 1 é diferente, cuidado;
  • --with-mysql=: deve apontar para o diretório base do MySQL;
  • --with-mysql-sock=: deve apontar para o arquivo mysql.sock que permite conexão por socket com o MySQL;
  • --with-mysqli=: deve apontar para o arquivo mysql_config que vem junto com o MySQL. Normalmente ele está no diretório bin do mesmo.

Antes de chamar a compilação pelo make vem o pulo do gato. O PHP (pelo menos até a versão 5.0.5) tem um bug: se você tenta compilar o suporte à classe MySQL e MySQLi simultâneos, mas esse é facilmente contornado.

Depois de rodar o ./configure com os parâmetros, abra o arquivo Makefile em um editor de textos e procure pela linha que começa com EXTRA_LIBS. Nessa linha ele inclui -lmysqlclient duas vezes. Basta deletar a segunda, salvar e fechar o arquivo.

Agora continue compilando:

$ make
$ su -c "make install"


Pronto basta testar.

Outras dicas deste autor
Nenhuma dica encontrada.
Leitura recomendada

Criando variáveis dinâmicas em PHP a partir de um formulário

Framework PHP

Escovando bits em PHP - operações bitwise sobre grupos e permissões

Docker, Git e PHP

Agilizando criação de formulários em PHP usando o laço FOR

  

Comentários

Nenhum comentário foi encontrado.



Contribuir com comentário