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()

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.