Installer PHP avec unixODBC

Cette procédure d’installation est basée sur apache 1.3.12 et PHP 3.0.16, et c’est identique au moins à apache 1.3.6 et php 3.0.9. Le PHP4 à partir du beta 3 va avoir une option de configuration pour l’utilisation d’unixODBC, donc la plupart de ce qui suit sera redondant.

Ce document suppose qu’unixODBC est déjà construit et installé dans l’emplacement par défaut /usr/local, et qu’Apache et PHP ont été décompressés dans la répertoire de base des utilisateurs.

1.Dans le répertoire Apache, exécuter la commande suivante :

   ./configure --prefix=/www

En plus de toute autre configuration locale dont vous aurez besoin.

2. Créer un fichier sur /usr/local/include appelé odbc.h contenant les trois lignes suivantes :

   #include <sql.h>
   #include <sqlext.h>
   #include <odbcinst.h>

En remplaçant /www avec le dossier d’installation apache souhaité.

3. Aller au répertoire PHP et définir l’environnement de variables suivants.

   CFLAGS="-I/usr/local/include"
   LDFLAGS=
   CUSTOM_ODBC_LIBS="-L/usr/local/lib -lodbc"

Ne pas oublier d’exporter ces variables :

   export CFLAGS LDFLAGS CUSTOM_ODBC_LIBS 

4. Configurer PHP avec :

   ./configure --with-apache=../apache_1.3.12 --with-custom-odbc=/usr/local  --enable-track-vars

En plus de toute autre configuration locale dont vous aurez besoin. Ensuite…

   make

   make install

5. Revenir au répertoire Apache et faire :

 ./configure --prefix=/www --activate-module=src/modules/php3/libphp3.a
   make
   make install

6. Revenir au répertoire PHP ensuite faire une quote à partir du PHP INSTALL

   cp php3.ini-dist /usr/local/lib/php3.ini

Vous pouvez faire : edit /usr/local/lib/php3.ini file pour paramétrer les options PHP.
Editer httpd.conf ou le fichier srm.conf ensuite ajouter:

     AddType application/x-httpd-php3 .php3

Et c’est tout.

Support Apache DSO :

Un problème additionnel a été signalé lorsqu’on construit PHP sur Apache comme étant un objet dynamique partagé. Etant donné que, par défaut, unixODBC est construit avec l’article support et contrairement à apache,s’ils n’ont pas liés ensemble dans la construction et ne se croisent qu’au moment de l’exécution, la combinaison échoue.

Il y a deux façons pour remédier à cela :
Soit Définir et exporter l’environnement vars suivant avant de construire Apache

export CFLAGS=-D_REENTRANT
export LFLAGS=-lpthread
./configure --prefix=www

Soit reconstruire unixODBC sans sujet support en configurant :

./configure –enable-threads=no

Dans les deux cas de figure, il ne faut pas oublier de supprimer le fichier config.cache dans le répertoire racine d’Apache ou unixODBC

Si cela vous a aidé alors c’est bien mais si quelconque problème, n’hésitez pas à me contacter.

Nick Gorham