Configurer un certificat Let’s Encrypt sur Debian

11 novembre 2016

Sources :

Cette installation a été effectuée sur une Debian Wheezy avec Apache 2.2.x mais cette doc fonctionne également sur une Jessie. Les commandes ci dessous sont lancées en root (pensez à rajouter les sudo si besoin).

Nous allons ici utiliser Certbot qui est le client officiel Let’s Encrypt pour gérer les certificats sur votre serveur. Il existe cependant d’autres alternatives.

Première chose à faire, vérifier que le module SSL d’Apache est bien activé (dans /etc/apache2/mods-enabled). Si ce n’est pas le cas :

> a2enmod ssl
> service apache2 restart

Installer ensuite le client Let’s Encrypt  dans le répertoire /usr/local/sbin

> cd /usr/local/sbin
> wget https://dl.eff.org/certbot-auto
> chmod a+x certbot-auto

Lire le reste de cet article »

Image full-screen et responsive avec flexbox

21 octobre 2016

Récemment j’ai dû mettre en place une « lightbox » pour afficher une image en full-screen et responsive. Il est assez facile avec Flexbox de centrer horizontalement et verticalement un élément. Il est également assez simple de rendre cette image responsive lorsque celle-ci « déborde » en largeur. Mais réduire l’image lorsque celle-ci est plus grande que la hauteur de l’écran tout en conservant son ratio s’est révélé un peu plus compliqué que ce que je pensais.

A la base l’idée était d’avoir un flex-container avec une hauteur et largeur de 100%, d’avoir un flex-item avec un max-width: 100% et un max-height: 100% histoire de ne pas avoir de débordement et de placer l’image dans le flex-item. Or le max-height sur le flex-item ne fonctionne pas sous Chrome…

Finalement après recherches (notamment dans l’excellent livre de Raphaël Goetter sur le sujet) j’ai pu trouver une solution très simple :

Le code HTML :

1
2
3
<div class="container-center-v-img">
    <img src="test.jpg" />
</div>

Le code CSS :

1
2
3
4
5
6
7
8
9
10
11
12
.container-center-v-img {
  display: flex;
  height: 100%;
  
}
 
.container-center-v-img > img {
    max-height: 100%;
    max-width: 100%;
    margin: auto;
    object-fit: contain;
}

C’est tout !

 

cp et « liste d’arguments trop longue »

12 mars 2014

Si lors de la copie d’un grand nombre de fichiers vous avez le message d’erreur :

Liste d'arguments trop longue

C’est que le nombre de fichiers est trop important. Que ce soit pour cp, rm ou mv, les fichiers sont passés en paramètres de la commande.

Dans ce cas on peut passer par find pour résoudre le problème :

> find /dossier/source/ -type f -name '*' -exec cp {} /dossier/destination/. \;

 

Sécuriser son WordPress

5 septembre 2013

Quelques infos glanées sur le web sur la sécurité WordPress. Les infos proviennent principalement de :

Le fichier .htaccess

Bloquer le scan d’auteurs

# BEGIN block author scans

RewriteEngine On
RewriteBase /
RewriteCond %{QUERY_STRING} (author=\d+) [NC]
RewriteRule .* - [F]

# END block author scans

Lire le reste de cet article »

Sonata : Améliorer le CKEditor de FormatterBundle

20 juin 2013

Nous allons insérer ici deux choses :

  • Un plugin permettant d’ajouter des vidéos Youtube dans CKEditor
  • Utiliser un « File Browser » pour gérer les différents médias : KCFinder

On va commencer par étendre le FormatterBundle :

php app/console sonata:easy-extends:generate --dest=src SonataPageBundle

que l’on va ensuite activer dans AppKernel.php

1
2
3
4
5
6
7
8
9
10
11
public function registerBundles()
{
    // ...
 
    $bundles = array(
        // ...
        new Application\Sonata\FormatterBundle\ApplicationSonataFormatterBundle(),
    );
 
    // ...
}

Lire le reste de cet article »

Sonata : Créer un MediaBlock personnalisé

14 juin 2013

Ce document se base sur la documentation de Sonata décrivant la procédure pour créer un block personnalisé.

Exposition du cas: On désire créer un slide show ou un carrousel quelconque on veut pouvoir le gérer via SonataPage, c’est à dire pouvoir gérer les images qui défilent via le CMS. L’idée est de créer un block container content_slide par exemple et pouvoir gérer les images du carrousel via des blocks media.

Nous aurons besoin des éléments suivants:

  • Créer un block media personnalisé qui contiendra une image, un titre et un lien
  • Créer un contexte personnalisé slide pour lequel on définira une taille de miniature spécifique

Pour réaliser cela, nous nous baserons la documentation de Sonata indiquée en début d’article. Le principe reste le même pour un MediaBlock avec quelques ajustements. Tout d’abord, voici la structure de notre Bundle :

/src
    /Coolcoyote
        /BlocksBundle
            /Block
                /SlideMediaBlockService.php
            /DependencyInjection
                /Configuration.php
                /CoolcoyoteBlocksExtension.php
            /Resources
                /config
                    /services.xml
                /views
                    /Block
                        block_slide_media.twig.html
            /CoolcoyoteBlocksBundle.php

Lire le reste de cet article »

Installation du CMS Sonata Page

13 mai 2013

Voici comment installer le CMS Sonata Page à partir d’une installation neuve de Symfony. Cet article sera modifié régulièrement au fur et à mesure de mes découvertes.

Le but est de mettre en place un environnement complet à savoir:

  • Un système de CMS nous permettant de créer des pages, modifier des blocks dans les pages sans avoir à éditer de code
  • Une gestion de membres, au moins pour protéger l’administration dans un premier temps
  • Une gestion des médias permettant l’insertion d’images, vidéos etc.
  • La possibilité d’utiliser de l' »HTML Riche » pour les publications
  • Une administration permettant de gérer tout ce petit monde.

Installation de Symfony 2 via composer :

php composer.phar create-project symfony/framework-standard-edition sonata/ 2.2.1

Modifier le composer.json pour y inclure les bundles suivants :

"sonata-project/page-bundle": "2.3.*@dev",
"sonata-project/doctrine-orm-admin-bundle": "2.2.*@dev",
"sonata-project/admin-bundle": "2.2.*@dev",
"sonata-project/block-bundle": "2.2.*@dev",
"knplabs/knp-menu-bundle": "1.1.*@dev",
"sonata-project/seo-bundle": "1.1.1",
"sonata-project/easy-extends-bundle": "2.1.*@dev",
"sonata-project/notification-bundle": "2.2.*@dev",
"guzzle/guzzle": "3.3.*@dev",
"liip/monitor-bundle": "1.0.*@dev",
"liip/monitor": "1.0.*@dev",
"videlalvaro/php-amqplib": "v2.0.2",
"sonata-project/user-bundle": "2.2.*@dev",
"sonata-project/media-bundle": "2.2.*@dev",
"sonata-project/formatter-bundle": "2.2.*@dev"

puis lancer la commande

php composer.phar update

Pour télécharger les mises à jour.

Lire le reste de cet article »

Symfony2 : Unknown database type enum requested

3 octobre 2012

Avec Symfony2 et Doctrine2, il se peut que vous rencontriez ce message d’erreur:

[Doctrine\DBAL\DBALException]
 Unknown database type enum requested, Doctrine\DBAL\Platforms\MySqlPlatform may not support it.

C’est que vous utilisez le type ENUM dans vos tables MySQL qui n’est pas compris par PDO. Le plus simple pour le résoudre : éditer le fichier config.yml et rajouter

mapping_types:
    enum: string

A la fin de la rubrique doctrine:dbal:

doctrine:
    dbal:
        driver: %database_driver%
         host: %database_host%
         port: %database_port%
         dbname: %database_name%
         user: %database_user%
         password: %database_password%
         charset: UTF8
         mapping_types:
             enum: string

Il existe d’autres solutions proposées dans la documentation de Doctrine, mais plus complexes, tout dépendra de vos besoins.

Installation de Composer sous Linux et Windows

25 septembre 2012

Informations tirées des blogs :

Installation sous Linux

Utiliser la commande

> curl -s https://getcomposer.org/installer | php

Ou alors si curl n’est pas installé :

> php -r "eval('?>'.file_get_contents('https://getcomposer.org/installer'));"

Idéalement, on va déplacer ensuite le fichier composer.phar dans /user/local/bin pour pouvoir y accéder de façon globale sur le système:

> mv composer.phar /usr/local/bin/composer

Désormais si l’on fait un :

> composer --version

On doit avoir un résultat du type:

Composer version 6bd7ca0

Si on veut installer directement composer dans le répertoire /usr/local/bin :

> curl -s https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin

Installation sous Windows

Nous n’avons pas de commande curl, donc nous allons utiliser la deuxième méthode. Je pars du principe que nous utilisons WAMP sous Windows 7, que nous avons une installation avec les répertoires par défaut, que la version de PHP est la 5.3.13 et que vous savez utiliser la console de commandes Windows.

Tout d’abord, ouvre le fichier php.ini qui se trouve dans le répertoire c:\wamp\bin\php\php5.3.13 et assurez-vous que la ligne

extension=php_openssl.dll

est décommentée (supprimez le point virgule au début de la ligne). Assurez vous également d’ajouter le chemin c:\wamp\bin\php\php5.3.13 à la variable Path de votre système, cela permettra d’utiliser la commande php n’importe où.

Pour cela, Menu Démarrer / Panneau de configuration / Système et Sécurité / Système / Paramètres système avancés. Cliquez sur le bouton « Variables d’environnement », cherchez la variable Path dans la première fenêtre et double cliquez dessus. A la fin de la ligne rajoutez :

;c:\wamp\bin\php\php5.3.13

N’oubliez pas le point-virgule ! Validez et fermez tout.

Ouvrez maintenant une console et lancez la commande :

php -r "eval('?>'.file_get_contents('https://getcomposer.org/installer'));"

Un message devrait vous indiquer que l’installation s’est bien passée. La problématique sous Windows est que contrairement à Linux, on ne va pas pouvoir utiliser directement la commande composer et qu’il faudra installer une copie de composer.phar dans chaque répertoire de projet. Il est possible d’améliorer cela en bidouillant un peu 🙂

Commencez par déplacer composer.phar dans le répertoire c:\wamp\bin\php\php5.3.13

Toujours dans ce répertoire, créez le fichier composer.bat que vous allez ouvrir avec un éditeur de texte (le bloc notes fera l’affaire). Saisissez les commandes suivantes :

@echo off
php c:\wamp\bin\php\php5.3.13\composer.phar %*

Et sauvegardez (évidemment personnalisez si vos répertoires ne sont pas les mêmes).

Ouvrez à nouveau une console et tapez

composer --version

Normalement, tout devrait fonctionner. Désormais vous pouvez utiliser composer comme sous Linux ! Une simple mise à jour de composer.phar dans le répertoire /usr/local/bin ou c:\wamp\bin\php\php5.3.13\ vous permettra de profiter de cette nouvelle version partout

Utiliser SASS et compass sous Windows

18 juillet 2012

Pour tous les développeurs / intégrateurs travaillant sous Windows, voici la procédure d’installation de Sass et de Compass sous Windows 7 / 8.

Lire le reste de cet article »