Ajouter le support OCI8 à php sous Centos 5

L’extension OCI8 permet ajoute à php des fonctionnalités permettant de communiquer avec une base Oracle.
OCI8 n’est pas fourni de base avec php, il convient de l’installer manuellement.

Avant toute chose, nous allons installer apache-php :

yum install php php-devel httpd
/etc/init.d/httpd start

Nous créons ensuite un fichier /var/www/html/phpinfo.php contenant :

<?php
phpinfo();
?>

Cette page est donc accessible depuis l'adresse http://127.0.0.1/phpinfo.php

Il faut ensuite télécharger et décompresser l'extension oci8 pour php :

wget http://pecl.php.net/get/oci8-1.4.5.tgz
tar zxf oci8-1.4.5.tgz

Pour installer l'extension OCI8, deux cas de figures peuvent se présenter. Soit la machine possède déjà un serveur oracle configuré (cf article sur l'installation d'un serveur oracle) soit la machine ne possède pas de serveur oracle local et devra accéder à un serveur oracle distant.

Si un serveur oracle local est installé :

cd oci8-1.4.5
phpize
./configure --with-oci8=shared,$ORACLE_HOME
make 
make install

Si aucun serveur oracle n'est présent sur la machine :
Il faut alors installer oracle_instantclient. Nous choisirons la version 11.2-basic et 11.2-devel en rpm depuis cette page

rpm -ivh oracle-instantclient11.2-basic-11.2.0.2.0.i386.rpm
rpm -ivh oracle-instantclient11.2-devel-11.2.0.2.0.i386.rpm

Nous pouvons maintenant compiler l'extension OCI8 :

cd oci8-1.4.5
phpize
./configure --with-oci8=shared,instantclient,/usr/lib/oracle/11.2/client/lib
make
make install

Configuration de php

Cette étape est commune aux deux méthodes d'installation précédentes.

Ajouter au fichier /etc/php.ini la ligne :

extension=oci8.so

et redémarrer le serveur apache :

/etc/init.d/httpd restart

Maintenant, en allant sur la page http://127.0.0.1/phpinfo.php, vous devez avoir une section oci8 de ce style :

Réinitialiser le mot de passe root de MySQL

Voici une méthode qui permet de changer le mot de passe root d’un serveur MySQL  lorsque l’on a perdu ne connait pas l’ancien mot de passe.

MySQL

Il suffit d’arrêter le serveur MySQL et de lancer mysqld_safe avec l’option –skip-grant-table. Ensuite, il faut lancer le client mysql pour se connecter en tant que root, sans mot de passe. A l’aide des commandes SQL classique, on modifie le champ password de la table user de la base mysql.

On arrête le serveur MySQL et on le relance de manière classique.

Masquer les informations données par Apache

Deux directives permettent de masquer les informations données par Apache. Ces directives sont à placer dans le fichier httpd.conf.

Par défaut, le paramètre ServerSignature est à On. Ainsi, sur chaque page d’erreur générée par Apache, on peut y voir le numéro de version.

ServerSignatureon

En passant ServerSignature sur Off, la page devient :

signatureoff

Le second paramètre est ServerTokens, qui permet de changer ce que répond Apache dans chaque entête de requête.

Par défaut, le serveur donne son numéro de version et le système utilisé :

servertokens

En mettant ServerTokens Prod dans le fichier httpd.conf, la réponse sera :

servertokensprod