Wiem, wiem o tym jak dodać paczkę debianową oracle 10g xe, jest aż nadto. Instrukcja instalacji rozszerzenia PDO_OCI też nie jest skomplikowana (Ci którzy instalowali mysql’a z paczki repozytoriów musza usunąć PDO mysql’owe i dodac to dostarczane przez pecl’a). Wpisujemy php -m i dostajemy PDO_OCI na liście zainstalowanych modułów, odpalamy skrypcik z wiersza poleceń i wyglada na to, że wszystko jest cacy…
…problem pojawia się jak chcemy ten sam skrypt odpalić za pośrednictwem apache’a
Mnie Xdebug nagrodził błędem:
Unable to open PDO connection [wrapped: SQLSTATE[]: pdo_oci_handle_factory: OCI_INVALID_HANDLE (/tmp/pear/temp/PDO_OCI-1.0/oci_driver.c:463)]
Pierwszy strzał to dodanie zmiennych środowiskowych ORA*, no ale to nie pomogło, później to samo dla użytkownika www-data, też nic, aż w końcu wyguglałem, że trzeba zmienne środowiskowe dopisac do pliku konfiguracyjengo apache’a (ustawianie ich w trakcie działania nic nie daje), no więc poniżej moja konfiguracja:
marek2@marek-laptop:~$ cat /etc/apache2/envvars
# envvars – default environment variables for apache2ctl# Since there is no sane way to get the parsed apache2 config in scripts, some
# settings are defined via environment variables and then used in apache2ctl,
# /etc/init.d/apache2, /etc/logrotate.d/apache2, etc.
export ORACLE_HOME=/usr/lib/oracle/xe/app/oracle/product/10.2.0/server
export ORACLE_SID=XE
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
export ORACLE_OWNER=oraclexeexport APACHE_RUN_USER=www-data
export APACHE_RUN_GROUP=www-data
export APACHE_PID_FILE=/var/run/apache2.pid