Inštalácia PHP s unixODBC

link: http://www.unixodbc.org/doc/php3.html

Táto inštalácia je založená na apache 1.3.12 a PHP 3.0.16, ale je identická späť aspoň pre apache 1.3.6 a php 3.0.9. PHP4 z verzie beta 3 bude mať konfigurovateľnú možnosť používať unixODBC, takže väčšina z nasledujúcich bude zbytočná.

Tento dokument predpokladá, že bol nainštalovaný a nainštalovaný unixODBC, v tomto prípade v predvolenom umiestnení / usr / local a že v domovskom adresári používateľov boli uložené aj Apache a PHP.

  1. V adresári Apache spustite nasledujúci príkaz
       ./configure --prefix = / www
    

    plus všetky ostatné miestne konfigurácie, ktoré potrebujete

  2. Vytvorte súbor v adresári / usr / local / include nazvaný odbc.h obsahujúci nasledujúce tri riadky
       # include <sql.h>
       # include <sqlext.h>
       #include <odbcinst.h>
    

    nahradiť / www s požadovanou inštalačnou cestou apache

  3. Presun do adresára PHP Definujte nasledujúce premenné prostredia
       CFLAGS = "- I / usr / local / include"
       LDFLAGS =
       CUSTOM_ODBC_LIBS = "- L / usr / local / lib-lodbc"
    

    nezabudnite exportovať tieto premenné

       export CFLAGS LDFLAGS CUSTOM_ODBC_LIBS 
    
  4. Nakonfigurujte PHP pomocou
       ./configure --with-apache = .. / apache_1.3.12 - s-custom-odbc = / usr / local --enable-track-vars
    

    plus všetky ostatné miestne konfigurácie, ktoré potrebujete potom …

    make
    make install
  5. Vráťte sa do adresára Apache a urobte
       ./configure --prefix = / www - aktivačný modul = src / modules / php3 / libphp3.a
       make
       make install
    
  6. Späť do adresára PHP Potom citovať z PHP INSTALL
       cp php3.ini-dist / usr / local / lib / php3.ini
       Súbor /usr/local/lib/php3.ini môžete upraviť tak, aby ste nastavili možnosti PHP.
       Upravte súbor httpd.conf alebo srm.conf a pridajte:
         AddType application/x-httpd-php3 .php3

A to by malo byť to.

Podpora Apache DSO

Ďalší problém bol nájdený pri vytváraní PHP ako dynamického zdieľaného objektu s apache. Pretože v predvolenom nastavení buduje unixODBC s podporou vlákien a v predvolenom nastavení apache nie je, ak nie sú navzájom prepojené v zostave a stretávajú sa iba v čase spustenia, kombinácia zlyhá.

Existujú dva spôsoby, ako tento ether definovať a exportovať nasledujúce prostredia vars pred budovaním apache

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

alebo obnoviť unixODBC bez podpory vlákien konfiguráciou ./configure –enable-threads = no

V oboch prípadoch nezabudnite odstrániť súbor config.cache z koreňového adresára Apache alebo unixODBC

Ak to niekomu pomôže, dobre, akékoľvek problémy mi dajte vedieť.

Nick Gorham