Установка PHP с UnixODBC

Original:http://www.unixodbc.com/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 called odbc.h, содержащий следующие три строки
       #include <sql.h>
       #include <sqlext.h>
       #include <odbcinst.h>
    

    замена / WWW с нужным апачом путем установки

  3. Перейдите в каталог PHP. Определите следующие переменные среды
     CFLAGS="-I/usr/local/include"
     LDFLAGS=
     CUSTOM_ODBC_LIBS="-L/usr/local/lib -lodbc"

    не забудьте экспортировать эти переменные

    export 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
       You can edit /usr/local/lib/php3.ini file to set PHP options.
       Edit your httpd.conf or srm.conf file and add:
         AddType application/x-httpd-php3 .php3

И это должно быть так.

Поддержка Apache DSO

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

Есть два способа обойти этот эфир: определить и экспортировать следующие переменные среды перед построением apache

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

Или перестроить unixODBC без поддержки потоков, настроив ./configure –enable-threads = no

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

Leave a Reply

Your email address will not be published. Required fields are marked *