Ubuntu – Supprimer la partition /boot

Par moment, on manque de place sur la partition /boot qui a été installé automatiquement par ubuntu. Cela reste une bonne pratique de partitionner son disque dur, cela permet d’être impacté par un manque de place et que le serveur ne fonctionne plus par exemple. Mais dans mon cas la partition fait 420Mo et ne permet pas de contenir les derniers noyaux, il faut à chaque fois nettoyer les anciens noyaux pour pouvoir avoir le dernier. Pour supprimer la partition /boot et la mettre sur /, il faut copier le contenu dans un dossier temporaire

cp -a /boot/ /boot.tmp

Il faut ensuite démonter la partition.

umount /boot

Puis, il faut supprimer le dossier.

rmdir /boot

Ensuite, il faut déplacer le dossier temporaire vers le définitif.

mv /boot.tmp /boot

Puis, il faut éditer le fichier fstab pour commenter la ligne /boot

nano /etc/fstab

Enfin, il faut mettre à jour grub

update-grub

Et voilà, un reboot pour s’assurer que tout est ok.

(Sur les machines virtuelles pensez au snapshot)

ORACLE – ORA-01033 : ORACLE initialization or shutdown in progress

Pour résoudre ce soucis, il faut ouvrir un terminal sur le serveur, puis lancer les commandes ci-dessous:

set ORACLE_SID=instanceDeVotreOracle
sqlplus /nolog

Puis se connecter en sysdba

connect / as sysdba

Si cela ne fonctionne pas il faut spécifier un compte comme ci-dessous :

connect sys/motdepasse@instanceDeVotreOracle as sysdba

Une fois la connexion réussie, il faut exécuter les commandes ci-dessous :

startup mount;show parameter control_files;select a.member,a.group#,b.status from v$logfile a ,v$log b where a.group#=b.group# and b.status='CURRENT';

Il faut noter le résultat du select car il donnera le fichier redolog à utiliser pour remettre en marche la base. Puis il faut exécuter les commandes suivantes :

shutdown abort;startup mount;recover database using backup controlfile until cancel ;

Cette commande demande le nom du fichier à utiliser, il faut lui donner le nom du fichier récupérer précédemment. Puis lancer cette commande :

alter database open resetlogs;

Et voilà normalement la base fonctionne à nouveau.

Ubuntu 18.04 – Minimiser une fenetre au clic sur le dock

Pour minimiser une fenêtre au clic sur le dock d’ubuntu, il faut installer le paquet dconf-cli (ou dconf-editor pour avoir la GUI)

apt install dconf-cli

Puis lancer cette commande

gsettings set org.gnome.shell.extensions.dash-to-dock click-action 'minimize'

Il existe aussi au lien de minimize l’option minimize-or-overview (la valeur par défaut est previews si vous souhaitez rétablir la configuration par défaut)

 

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

Symfony / Doctrine – Mettre à jour des champs automatiquement avec les événements

Doctrine dispose d’événements qui permettent de mettre à jour des champs automatique au moment de l’insertion, de la mise à jour, suppression, chargement.

La liste des événements et leurs utilisations est disponible ici. Ci-dessous un petit exemple :

/** @PrePersist */
public function onPrePersist()
{
  $this->setPrenom('toto');
}

L’annotation permet de lancer la fonction onPrePersist() qui va modifier le prenom à l’ajout dans la base de données. Pour utiliser les événements, pensez à ajouter sur votre entité l’annotation ci-dessous et d’importer les use nécessaires.

@HasLifecycleCallbacks

Symfony knp snappy bundle pdf – retirer les headers

Si vous avez un problème avec les headers HTTP qui s’affiche dans votre pdf.

Il faut modifier la méthode utiliser pour rendre la vue.

 $view = $this->renderView(
   'pdf/pdf.html.twig',
   [
     'info' => $info,
   ]
);

Généralement, le problème vient du fait que c’est la méthode render() qui est utilisé au lieu de renderView()