Il peut rester qq bogues dans la procédure car j'ai un peu gratté avant d'y arriver...
Note: on peut remplacer les 'sudo vi' par des 'gksudo gedit' pour plus de confort d'édition de fichiers texte ...
1. Installer libaio1 (prérequis Oracle 11g).
sudo apt-get install libaio1
2. Installer alien:
sudo apt-get install alien
3. Télécharger les RPMs ici: http://www.oracle.com/technetwork/da...ex-097480.html Prendre les fichiers RPM Basic, Devel et SqlPlus pour votre architecture.
4. Convertir les RPMs en .deb avec alien (ignorer l'erreur alien qui peut se produire):
Code (i386):
1 2 3
| sudo alien oracle-instantclient11.2-basic-11.2.0.1.0-1.i386.rpm
sudo alien oracle-instantclient11.2-devel-11.2.0.1.0-1.i386.rpm
sudo alien oracle-instantclient11.2-sqlplus-11.2.0.1.0-1.i386.rpm |
Code (x64):
1 2 3
| sudo alien oracle-instantclient11.2-basic-11.2.0.1.0-1.x86_64.rpm
sudo alien oracle-instantclient11.2-devel-11.2.0.1.0-1.x86_64.rpm
sudo alien oracle-instantclient11.2-sqlplus-11.2.0.1.0-1.x86_64.rpm |
5. Installer les paquets debian:
Code (i386):
1 2 3
| sudo dpkg -i oracle-instantclient11.2-basic_11.2.0.1.0-2_i386.deb
sudo dpkg -i oracle-instantclient11.2-devel_11.2.0.1.0-2_i386.deb
sudo dpkg -i oracle-instantclient11.2-sqlplus_11.2.0.1.0-2_i386.deb |
Code (x64):
1 2 3
| sudo dpkg -i oracle-instantclient11.2-basic_11.2.0.1.0-2_x86_64.deb
sudo dpkg -i oracle-instantclient11.2-devel_11.2.0.1.0-2_x86_64.deb
sudo dpkg -i oracle-instantclient11.2-sqlplus_11.2.0.1.0-2_x86_64.deb |
6. On peut vérifier que l'installation de Oracle Instant Client 11g s'est bien passée.
sudo aptitude search oracle
1 2 3 4 5 6 7 8
| p cl-sql-oracle - CLSQL database backend, Oracle
p libmono-oracle1.0-cil - Mono Oracle library (for CLI 1.0)
p libmono-oracle2.0-cil - Mono Oracle library (for CLI 2.0)
i oracle-instantclient11.2-basic - Instant Client for Oracle Database 11g
i oracle-instantclient11.2-devel - Development headers for Instant Client.
i oracle-instantclient11.2-sqlplus - SQL*Plus for Instant Client.
p spamoracle - A statistical analysis spam filter based on Bayes' formula
v spamoracle-byte - |
7. Installer le pilote PDO pour Oracle: pdo_oci
1 2 3 4 5
| sudo apt-get install php5-dev php-pear
cd /tmp
pecl download PDO_OCI
tar xzvf PDO_OCI-1.0.tgz
cd ../PDO_OCI-1.0 |
PDO_OCI-1.0 ne supporte pas la version 11g d'Oracle, mais il est facile de le modifier pour celà.
Vous devez créer un fichier config.m4.patch avec le contenu suivant:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| --- config.m4 2005-09-25 01:23:24.000000000 +0200
+++ config.m4.new 2010-09-01 13:03:43.030964765 +0200
@@ -7,6 +7,8 @@
if test -s "$PDO_OCI_DIR/orainst/unix.rgs"; then
PDO_OCI_VERSION=`grep '"ocommon"' $PDO_OCI_DIR/orainst/unix.rgs | sed 's/[ ][ ]*/:/g' | cut -d: -f 6 | cut -c 2-4`
test -z "$PDO_OCI_VERSION" && PDO_OCI_VERSION=7.3
+ elif test -f $PDO_OCI_DIR/lib/libclntsh.$SHLIB_SUFFIX_NAME.11.1; then
+ PDO_OCI_VERSION=11.1
elif test -f $PDO_OCI_DIR/lib/libclntsh.$SHLIB_SUFFIX_NAME.10.1; then
PDO_OCI_VERSION=10.1
elif test -f $PDO_OCI_DIR/lib/libclntsh.$SHLIB_SUFFIX_NAME.9.0; then
@@ -119,6 +121,12 @@
10.2)
PHP_ADD_LIBRARY(clntsh, 1, PDO_OCI_SHARED_LIBADD)
;;
+ 11.1)
+ PHP_ADD_LIBRARY(clntsh, 1, PDO_OCI_SHARED_LIBADD)
+ ;;
+ 11.2)
+ PHP_ADD_LIBRARY(clntsh, 1, PDO_OCI_SHARED_LIBADD)
+ ;;
*)
AC_MSG_ERROR(Unsupported Oracle version! $PDO_OCI_VERSION)
;; |
Ensuite appliquez le patch
patch config.m4 config.m4.patch
Et finalement construisez le et installez le:
1 2 3 4
| phpize
./configure --with-pdo-oci=instantclient,/usr,11.2
make
sudo make install |
8. Ajoutez les libs Oracle et PDO_OCI dans le php.ini
sudo vi /etc/php5/apache2/conf.d/oci8.ini
Insérez le contenu suivant et sauvegardez:
1 2 3
| extension=oci8.so
#extension=pdo.so
extension=pdo_oci.so |
9. Ajouter les librairies Oracle client dans le chemin d’accès des librairies
Créer un fichier /etc/ld.so.conf.d/oracle11-2.conf
sudo vi /etc/ld.so.conf.d/oracle11-2.conf
Avec le contenu suivant:
/usr/lib/oracle/11.2/client/lib
10. Redémarrer apache
sudo /etc/init.d/apache2 restart
Partager