Custom compile o sqlite como php

1

Em Compile o sqlite com o recurso soundex Aprendi a fazer uma compilação personalizada de sqlite. Embora esse tenha sido um passo em direção ao meu objetivo de usar o soundex do sqlite em um teste funcional, acho que ainda não estou lá. Eu preciso substituir o sqlite.so existente. Vários esforços para modificar este comando:

$ sudo ./configure --prefix=/usr --disable-static CFLAGS="-g -O2 -DSQLITE_ENABLE_FTS3=1 -DSQLITE_ENABLE_COLUMN_METADATA=1 -DSQLITE_ENABLE_UNLOCK_NOTIFY=1 -DSQLITE_SECURE_DELETE=1 -DSQLITE_SOUNDEX"

falhou. Instalando php5-dev e executando phpize no diretório do código-fonte sqlite resulta em

Cannot find config.m4

Embora as correções ao meu procedimento sejam muito bem-vindas, eu também gostaria de encontrar algumas referências mais completas sobre como chegar onde quero ir. Eu sou apenas ignorante, não estúpido. Por exemplo, onde eu teria descoberto que o D era necessário antes do recurso sqlite SQLITE_SOUNDEX ?

[EDIT: resposta parcial = uso dos compiladores GNU , assumindo que eu sabia que CFLAGS são opções do gcc, para use uma opção de pré-processador e que o recurso sqlite seja considerado uma macro.]

CompilingEasyHowTo e CompilingSoftware são insuficientes. Construir extensões PHP também não ajuda muito.

    
por geoB 13.11.2014 / 19:17

1 resposta

0

No Ubuntu você tem dois pacotes para o SQLite: sqlite e sqlite3 . Se você usar o segundo, ele é compilado com suporte para essa função (não tenho certeza se existe mesmo na outra versão ...)

sqlite> SELECT SOUNDEX("John"), SOUNDEX("Joahn");
J500|J500

Então, primeiro tente usar a segunda versão:

$ sudo apt-get remove sqlite
$ sudo apt-get install sqlite3

Agora para sua pergunta: Eu tentei compilá-lo e parece funcionar:

  • Faça o download do código-fonte do SQLite em aqui . Eu usei sqlite-autoconf

  • Extraia e execute o comando configure sem sudo . Você só precisará disso depois

    $ ./configure --prefix=/usr --disable-static CFLAGS="-g -O2 -DSQLITE_ENABLE_FTS3=1 -DSQLITE_ENABLE_COLUMN_METADATA=1 -DSQLITE_ENABLE_UNLOCK_NOTIFY=1 -DSQLITE_SECURE_DELETE=1 -DSQLITE_SOUNDEX"
    
  • Compilar SQLite

    $ make
    
  • Teste-o

    $ ./sqlite3
    sqlite> SELECT SOUNDEX("John"), SOUNDEX("Joahn");
    J500|J500
    
  • Instale no seu sistema

    $ sudo make install
    
por Salem 13.11.2014 / 21:37