Si vous souhaitez utiliser une base de données depuis PHP sur une Centos 5.x, voilà la procédure à suivre.
On partira du principe que vous avez déjà installé PHP et apache.
Vous devez aussi installer les outils de développement afin de pouvoir compiler PECL:
yum -y groupinstall "development tools"
Sur Centos 5.4 X64, les paquets suivants sont installés:
flex-2.5.4a-41.fc6.x86_64 gcc-4.1.2-48.el5.x86_64 redhat-rpm-config-8.0.45-32.el5.centos.noarch strace-4.5.18-5.el5_5.5.x86_64 rpm-build-4.4.2.3-20.el5_5.1.x86_64 1:make-3.81-3.el5.x86_64 1:pkgconfig-0.21-2.el5.x86_64 gettext-0.14.6-4.el5.x86_64 gettext-0.14.6-4.el5.i386 automake-1.9.6-2.3.el5.noarch gdb-7.0.1-23.el5_5.2.x86_64 bison-2.3-2.1.x86_64 libtool-1.5.22-7.el5_4.x86_64 autoconf-2.59-12.noarch gcc-c++-4.1.2-48.el5.x86_64 binutils-2.17.50.0.6-14.el5.x86_64 ltrace-0.5-13.45svn.el5.x86_64 diffstat-1.41-1.2.3.el5.x86_64 splint-3.1.1-16.el5.x86_64 1:valgrind-3.5.0-1.el5.x86_64 1:valgrind-3.5.0-1.el5.i386 systemtap-1.1-3.el5_5.2.x86_64 subversion-1.4.2-4.el5_3.1.x86_64 subversion-1.4.2-4.el5_3.1.i386 texinfo-4.8-14.el5.x86_64 python-ldap-2.2.0-2.1.x86_64 patchutils-0.2.31-2.2.2.x86_64 byacc-1.9-29.2.2.x86_64 gcc-gfortran-4.1.2-48.el5.x86_64 elfutils-0.137-3.el5.x86_64 rcs-5.7-30.1.x86_64 automake16-1.6.3-8.el5.1.noarch automake17-1.7.9-7.el5.2.noarch automake14-1.4p6-13.el5.1.noarch automake15-1.5-16.el5.2.noarch ctags-5.6-1.1.x86_64 dogtail-0.6.1-3.el5.noarch swig-1.3.29-2.el5.x86_64 dev86-0.16.17-2.2.x86_64 1:doxygen-1.4.7-1.1.x86_64 indent-2.2.9-14.fc6.x86_64 cvs-1.11.22-7.el5.x86_64 pstack-1.2-7.2.2.x86_64 oprofile-0.9.4-15.el5.x86_64 cscope-15.5-15.1.el5_3.1.x86_64
Sur le site d’oracle, télécharger les paquets suivants (en RPM):
- oracle-instantclient11.2-basic
- oracle-instantclient11.2-sqlplus (optionnel)
- oracle-instantclient11.2-devel
Installer les paquets fraîchement téléchargés:
rpm -Uvh oracle-instantclient11.2-basic-11.2.0.2.0.x86_64.rpm oracle-instantclient11.2-devel-11.2.0.2.0.x86_64.rpm oracle-instantclient11.2-sqlplus-11.2.0.2.0.x86_64.rpm
Il est nécessaire d’indiquer au système le chemin des nouvelles librairies:
echo "/usr/lib/oracle/11.2/client64/lib/" > /etc/ld.so.conf.d/oracle_lib.conf ldconfig
Vous pouvez tester votre installation d’oracle en lançant /usr/bin/sqlplus64.
SQL*Plus: Release 11.2.0.2.0 Production on Wed Nov 10 14:41:50 2010 Copyright (c) 1982, 2010, Oracle. All rights reserved. Enter user-name:
Ensuite on va installer OCI8 à l’aide de PECL:
Si vous passez par un proxy HTTP, configurez PECL comme suit:
pear config-set http_proxy http://proxy.xxx:3128
Lancez l’installation proprement dite.
pecl install oci8
L’installation se lance. A la question « Please provide the path to the ORACLE_HOME directory. Use ‘instantclient,/path/to/instant/client/lib’ if you’re compiling with Oracle Instant Client [autodetect] :« , donnez le chemin où est installé le client oracle, ici: instantclient,/usr/lib/oracle/11.2/client64/lib
downloading oci8-1.4.3.tgz ... Starting to download oci8-1.4.3.tgz (153,515 bytes) ............done: 153,515 bytes 10 source files, building running: phpize Configuring for: PHP Api Version: 20041225 Zend Module Api No: 20050922 Zend Extension Api No: 220051025 Please provide the path to the ORACLE_HOME directory. Use 'instantclient,/path/to/instant/client/lib' if you're compiling with Oracle Instant Client [autodetect] : instantclient,/usr/lib/oracle/11.2/client64/lib building in /var/tmp/pear-build-root/oci8-1.4.3 running: /tmp/tmppNXlUK/oci8-1.4.3/configure --with-oci8=instantclient,/usr/lib/oracle/11.2/client64/lib checking for egrep... grep -E checking for a sed that does not truncate output... /bin/sed checking for gcc... gcc checking for C compiler default output file name... a.out checking whether the C compiler works... yes checking whether we are cross compiling... no checking for suffix of executables... checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ANSI C... none needed checking whether gcc and cc understand -c and -o together... yes ... Build complete. (It is safe to ignore warnings about tempnam and tmpnam). running: make INSTALL_ROOT="/var/tmp/pear-build-root/install-oci8-1.4.3" install Installing shared extensions: /var/tmp/pear-build-root/install-oci8-1.4.3/usr/lib64/php/modules/ running: find "/var/tmp/pear-build-root/install-oci8-1.4.3" -ls 4149348 4 drwxr-xr-x 3 root root 4096 nov 10 13:38 /var/tmp/pear-build-root/install-oci8-1.4.3 4149377 4 drwxr-xr-x 3 root root 4096 nov 10 13:38 /var/tmp/pear-build-root/install-oci8-1.4.3/usr 4149378 4 drwxr-xr-x 3 root root 4096 nov 10 13:38 /var/tmp/pear-build-root/install-oci8-1.4.3/usr/lib64 4149379 4 drwxr-xr-x 3 root root 4096 nov 10 13:38 /var/tmp/pear-build-root/install-oci8-1.4.3/usr/lib64/php 4149380 4 drwxr-xr-x 2 root root 4096 nov 10 13:38 /var/tmp/pear-build-root/install-oci8-1.4.3/usr/lib64/php/modules 4149376 476 -rwxr-xr-x 1 root root 481338 nov 10 13:38 /var/tmp/pear-build-root/install-oci8-1.4.3/usr/lib64/php/modules/oci8.so Build process completed successfully Installing '/var/tmp/pear-build-root/install-oci8-1.4.3//usr/lib64/php/modules/oci8.so' install ok: channel://pecl.php.net/oci8-1.4.3 You should add "extension=oci8.so" to php.ini
Comme indiqué, il faut maintenant configurer php pour utiliser le module OCI8.
echo "extension=oci8.so" > /etc/php.d/oci8.ini
redémarrez apache pour prendre en compte les modifications ( /etc/init.d/httpd restart ) . Vous pouvez vérifier la prise en compte d’OCI en utilisant la fonction PHP phpinfo();
Vous pouvez maintenant profiter d’ORACLE au travers du couple PHP / APACHE.
La doc officielle d’installation d’OCI8 est ici
Devoir installer les outils de développement sur un serveur me semble une toujours très mauvaise idée…
Pour info php-oci8 est fournit depuis très longtemps sur mon dépôt
http://rpms.famillecollet.com/enterprise/5/remi/i386/repoview/php-oci8.html
Avec quelques articles :
http://blog.famillecollet.com/post/2008/09/13/RPM-Oracle-Instant-Client
http://blog.famillecollet.com/post/2006/02/09/110-acces-aux-bases-de-donnees-oracle-en-php
Avec le RPM, on a aussi le pilote PDO_OCI (pas certain qu’il soit disponible avec la version pecl).
+
n’ayant pas trouvé le formulaire « contact », j’utilise le commentaire. Help! mon blog est sous WP et le thème en est Suffusion. Lors d’une récente mise à jour, mon blog s’est « éclaté » : auparavant le corps principal (avec les posts) de mon blog était à gauche et j’avais 2 sidebars à droite ainsi qu’une wide sidebar top, sur le même niveau. maintenant mon bloc side bars et wide sidebar se trouve en dehors de mon cadre ou repoussé tout en bas.. nulle en informatique, quelqu’un peut m’aider? merci d’avance