Installing PHP with unixODBC

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

Грецький переклад, люб'язно наданий Димитрісом Галатасом

Ця процедура установки заснована на apache 1.3.12 і PHP 3.0.16, але ідентична тому, принаймні, для apache 1.3.6 і php 3.0.9. PHP4 з бета-версії 3 матиме параметр configure для використання unixODBC, тому більшість із наведених нижче буде зайвим.

У цьому документі передбачається, що unixODBC був побудований та встановлений, в цьому випадку за замовчуванням розташування /usr/local, а також, що обидва Apache та PHP були непідтверджені у домашньому каталозі користувачів.

  1. У каталозі Apache запустіть таку команду
       
     ./configure --prefix=/www
    
    
    плюс будь-яка інша локальна конфігурація, що вам потрібно

  2. Створіть файл у /usr/local/include, який називається odbc.h і містить три наступні рядки
       
     #include <sql.h>   
     #include <sqlext.h>   
     #include <odbcinst.h>
    
    
    замінивши /www на бажаний шлях встановлення для apache

  3. Перехід до каталогу PHP Визначте наступні змінні середовища
       
     CFLAGS="-I /usr/local/include"   
     LDFLAGS =   
     CUSTOM_ODBC_LIBS="-L /usr/local/lib -lodbc"
    
    
    Не забудьте експортувати ці змінні
       
     експорт CFLAGS LDFLAGS CUSTOM_ODBC_LIBS
     
    

  4. Налаштувати PHP з
       
     ./configure --with-apache =../apache_1.3.12 --with-custom-odbc =/usr/local --enable-track-vars
    
    
    плюс будь-яка інша локальна конфігурація, яка вам потрібна потім ...
    make
    make install
  5. Поверніться до своєї директорії apache і зробите це
       
     ./configure --prefix =/www --activate-module = src/modules/php3/libphp3.a
    make
    make install

  6. Повернутися до каталогу PHP Тоді цитувати з PHP INSTALL
       
     cp php3.ini-dist /usr/local/lib/php3.ini
    
       
     Ви можете редагувати файл /usr/local/lib/php3.ini для налаштування параметрів PHP.
    
       
     Відредагуйте файл httpd.conf або srm.conf та додайте:
    
         
     AddType AddType /x-httpd-php3 .php3
    
    
І це має бути таким.

Apache DSO підтримка

Додаткова проблема виявлена, якщо ви створюєте PHP як динамічний об'єкт спільного доступу з apache. Як і за замовчуванням, unixODBC будує з підтримкою потоку, і за замовчуванням apache не має, якщо вони не пов'язані між собою в збірці і зустрічаються лише під час виконання, комбінація не зможе.

Навколо цього ефіру можна визначити два способи і експортувати наступні середовища vars перед створенням apache

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

або відновити unixODBC без підтримки потоку шляхом налаштування ./configure --enable-threads = no

В обох випадках не забудьте видалити файл config.cache з кореневого каталогу Apache або unixODBC

Якщо це хтось допомагає комусь, добре, будь-які проблеми дають мені знати.

Нік Горхем