Ubuntu 18.04 : installation de l’extension oci (oracle) pour php7.2

Pour installer l’extension oci (oracle) pour php7.2, il faut avant avoir installer apache, php-7.2. Puis se rendre sur ce site http://www.oracle.com/technetwork/database/database-technologies/instant-client/downloads/index.html puis télécharger ces 2 paquets

instantclient-basic-linux.x64-12.2.0.1.0.zip
instantclient-sdk-linux.x64-12.2.0.1.0.zip

Puis les envoyer sur le serveur (avec ssh, ou winscp) dans le dossier /tmp, il faut ensuite unzip les 2 zip. Ensuite, il faut déplacer les fichiers dans le dossier /opt

mkdir /opt/oracle/
mv /tmp/instantclient_12_2/ /opt/oracle

Il faut créer les liens symboliques

ln -s /opt/oracle/instantclient_12_2/libclntsh.so.12.1 /opt/oracle/instantclient_12_2/libclntsh.so 
ln -s /opt/oracle/instantclient_12_2/libocci.so.12.1 /opt/oracle/instantclient_12_2/libocci.so

Il faut donner les droits sur le répertoire

chown -R root:www-data /opt/oracle

Puis ajouter les librairies dans le ldconfig

echo /opt/oracle/instantclient_12_2 > /etc/ld.so.conf.d/oracle-instantclient 
ldconfig

Il faut ensuite les paquets suivant (requis pour pecl)

apt install php7.2-dev php-pear build-essential libaio1

Puis il faut installer oci8 via pecl

pecl install oci8

A la question concernant le chemin, il faut répondre ceci

instantclient,/opt/oracle/instantclient_12_2

Il faut ensuite modifier les fichiers php.ini pour ajouter l’extension

nano /etc/php/7.2/apache2/php.ini

y ajouter dans dynamic extension

extension = oci8.so
nano /etc/php/7.2/cli/php.ini

y ajouter dans dynamic extension

extension = oci8.so

Il faut ensuite ajouter les variables d’environnement pour cli

echo "LD_LIBRARY_PATH=\"/opt/oracle/instantclient_12_2\"" >> /etc/environment
echo "ORACLE_HOME=\"/opt/oracle/instantclient_12_2\"" >> /etc/environment

Puis celles d’apache

echo "export LD_LIBRARY_PATH=\"/opt/oracle/instantclient_12_2\"" >> /etc/apache2/envvars
echo "export ORACLE_HOME=\"/opt/oracle/instantclient_12_2\"" >> /etc/apache2/envvars

Il faut ensuite redemarrer la machine pour prendre en compte les variables d’environnement de cli

sudo reboot

 

 

SSH – Re génération des clefs serveur (après un clone)

Après un clone de serveur, il faut régénérer les clefs ssh pour cela il faut exécuter les commandes suivantes :

sudo 

/bin/rm -v /etc/ssh/ssh_host_*
sudo 
dpkg-reconfigure openssh-server
sudo 
systemctl restart ssh

Ubuntu – Changer les locales et timezone

Pour changer les locales et la timezone en FR suite à une installation EN, il faut exécuter les commandes ci-dessous

sudo -s
apt-get install language-pack-fr
if [ -f /etc/default/locale ]; then cp /etc/default/locale /etc/default/locale_default; fi
echo "LANG=fr_FR.UTF-8" > /etc/default/locale
cat /etc/default/locale
LANG=fr_FR.UTF-8
dpkg-reconfigure locales

Pour la timezone :

sudo dpkg-reconfigure tzdata

Installation de composer ubuntu

Je préfère ne pas installer composer via apt car la version n’est jamais la plus récente, du coup je l’installe via la procédure qui est sur le site ce qui me permet de le mettre à jour grâce à une option de la commande composer

Avant toute chose, il faut supprimer la version de composer qui aurait été installé avec apt

apt remove composer

Puis suivre la procédure sur le site de composer (au moins les 2 premières commandes), ensuite lancer ces commandes :

php composer-setup.php --install-dir=/usr/local/bin --filename=composer
php -r "unlink('composer-setup.php');"

Vous pourrez désormais utiliser la commande directement comme ceci dans n’importe quel dossier.

composer require ....

Pour mettre à jour, il suffit de faire

composer self-update

 

ssh erreur sign_and_send_pubkey: signing failed: agent refused operation

Pour résoudre ce soucis, il faut simplement ouvrir un terminal et taper cette commande :

ssh-add

Le problème vient du fait qu’il y a une nouvelle clé, soit elle a été copié ou déployé via la commande ssh-copy-id.

To solve this error, just type this command :

ssh-add

The problem is that there is a new key, either it was copied or deployed via the ssh-copy-id command.

Mettre à jour nodejs et npm (ubuntu)

Pour mettre à jour nodejs et npm, il faut commencer par vider le cache

sudo npm cache clean -f

Puis installer n pour gérer les versions

sudo npm install -g n

Ensuite via n, il faut récupérer la version voulue

sudo n stable

Enfin, il faut modifier les liens vers les commandes pour utiliser ces versions

ln -sf /usr/local/n/versions/node/9.4.0/bin/node /usr/bin/nodejs
ln -sf /usr/local/n/versions/node/9.4.0/bin/npm /usr/bin/npm

Installation de la stack elastic

La stack elastic permet d’indexer des informations à partir de différentes sources comme fichiers log, base de données mysql, mssql, oracle… Et de les présenter sous forme de graphique.

L’installation a été réalisé sur un serveur Ubuntu 16.04 64bits LTS. Les commandes ci-après ont été exécuté avec l’utilisateur root.

Récupération des mises à jour et outils utiles

su root
apt udpate && apt -y upgrade
apt install apt-transport-https software-properties-common wget

Installation de java 8

add-apt-repository ppa:webupd8team/java
apt update
apt install oracle-java8-installer

Vérification de la version de java

java -version
java version "1.8.0_144"
Java(TM) SE Runtime Environment (build 1.8.0_144-b01)
Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode)

Installation d’elastic search

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
echo "deb https://artifacts.elastic.co/packages/5.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-5.x.list
apt update
apt install elasticsearch

Configuration d’elastic search

Modifiez le fichier de configuration

nano /etc/elasticsearch/elasticsearch.yml

et ajoutez la ligne ci-dessous

network.host: localhost

Redémarrez le service

systemctl restart elasticsearch

Démarrage du service au boot de la machine

systemctl enable elasticsearch

Installation de kibana

apt install kibana

Configuration de kibana

Modifiez le fichier de configuration

nano /etc/kibana/kibana.yml

et ajoutez la ligne ci-dessous

server.host: "localhost"

Redémarrez le service

systemctl restart kibana

Démarrage du service au boot de la machine

systemctl enable kibana

Installation et configuration du reverse proxy

apt-get install apache2

Configuration du virtual host pour l’accès à kibana

Créez le fichier

nano /etc/apache2/sites-available/kibana.mondomaine.fr.conf

Ajoutez les lignes ci-dessous en modifiant les informations selon votre nom de domaine

<VirtualHost *:80>
    ServerName kibana.mondomaine.fr
    ProxyPass / http://localhost:5601/
    ProxyPassReverse / http://localhost:5601/
    ErrorLog /var/log/apache2/kibana.mondomaine.fr_error.log
    CustomLog /var/log/apache2/kibana.mondomaine.fr_access.log combined
</VirtualHost>

Exécutez les commandes suivantes

a2dissite 000-default.conf
a2ensite kibana.mondomaine.fr.conf
a2enmod ssl
a2enmod proxy
a2enmod proxy_http
service apache2 restart

Installation de logstash 

apt install logstash

Configuration de logstash

systemctl enable logstash
systemctl start logstash

A ce stage votre plateforme est opérationnelle, vous pouvez ajouter des plugins pour logstash qui vont vous permettre de récupérer des informations dans des bases de données. (à voir dans les autres tutos)

Vous pouvez aussi ajouter une authentification basic à l’aide d’apache pour limiter l’accés à kibana.

Samba cifs mount error(121): Remote I/O error

Lors du montage d’un partage cifs distant, j’ai eu cette erreur


mount error(121): Remote I/O error

Pour résoudre cette erreur, il faut ajouter l’option vers=2.1
Pour un montage en ligne de commande procéder comme ceci :


sudo mount.cifs //winserver/share /mnt/Windows-Share -o user=winuser,vers=2.1

Pour un montage via le fichier /etc/fstab, faites comme ci-dessous :


//winserver/share  /mnt/Windows-Share cifs  rw,user,username=winuser,vers=2.1  0 0