Pular para o conteúdo

Compilando php5 com suporte a mysql e mysqli simultâneamente

Dica publicada em PHP / Avançado
Eduardo Cereto Carvalho dudus
Hits: 17.963 Categoria: PHP Subcategoria: Avançado
  • Indicar
  • Impressora
  • Denunciar

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.

Nenhuma dica encontrada.

FirePHP: Depurador de códigos PHP

Váriaveis globais no PHP

Integração com PagSeguro no CakePHP 2.x

Funções com nomes variáveis em PHP, isso existe sim!

Dicas de segurança em PHP

Nenhum comentário foi encontrado.

Contribuir com comentário

Entre na sua conta para comentar.