Développement

Packt Publishing : Un ebook acheté, un ebook offert

Une petite brève pour signaler l'opération de la maison d’édition Packt Publishing, qui, pour la publication de son 2000eme livre propose pour l'achat d'un ebook, un ebook au choix gratuit.

J'ai acheté à titre pro plusieurs références dans leur collection, sur drupal et d'autres cms.

Plus d'informations en cliquant sur le bandeau juste en dessous :

 

Gitlab Repository Management

Git est un système de gestion de révision de contenu (Concurrent Versions System, C.V.S. en angais.) Développé à initiative de Linus Torvald, le développeur à la base de GNU/Linux.

Plus moderne et performant que ses grands frères comme Subversion par exemple, il se distingue aussi par son aspect décentralisé.

Pour en savoir plus sur GIT je vous encourage à lire le livre Pro Git écrit par Scott Chacon et disponible gratuitement en lecture sur internet ou en téléchargement en ebook, il existe aussi en version papier, sur amazon par exemple. Le site du livre :  http://git-scm.com/book.

Vous pouvez très bien utiliser Git en local sur votre poste de travail, mais là où Git (ainsi que les autres outils de versioning) c’est dans le cadre d’un travail collaboratif. Lorsque plusieurs personnes travaillent en même  temps sur un même projet.

Pour beaucoup de personnes, l’utilisation de Git passe par Github. Serveur Git multi-projets, gratuit pour les projets open-source. Mais évidement, pas top dans un cadre professionnel, au sein d’une entreprise par exemple.

C’est là que GitLab intervient. C’est un clone de Github, développé en Ruby qui s’installe sur n’importe quel serveur GNU/Linux.

Il propose les fonctionnalités suivantes :

  • Gestion de nombreux projets, avec pour chacun
    • Gestion avancée des droits d’accès (lecture / écriture)
    • Bug tracker
    • wiki pour la documentation
    • et évidement un dépot Git.

L’installation est l’administration d’un gitlab n’est pas forcement aisée, de nombreuses dépendances à préinstaller avant l’application, des commandes avancées à effectuer pour la configuration. Même en étant habitué à la ligne de commande un peu d’aide ne fait pas de mal.

C’est là que le livre “Gitlab Repository Management” arrive à la rescousse. Écrit par Jonathan M. Hethey, et édité aux éditions Packt Publishing, le livre offre un tour d’horizon complet sur Gitlab, de la présentation du projet, jusqu’à la gestion des mises à jour en passant par l’administration des projets et des utilisateurs.

Très facile à lire et relativement concis, il propose l’essentiel de ce que l’on doit savoir sur gitlab. Et dans le cas d’une installation un peu différentes, vous trouverez de l’aide (les fameuses recipes)  sur le wiki de Gitlab, à l’adresse suivante : https://github.com/gitlabhq/gitlab-recipes

Voici la présentation du livre issue de sa page sur le site de pakt publishing :

GitLab is a great tool suite used to develop software quickly, safely, and efficiently. Watch your developers get into a productive loop within your own network! Code Version Control is now easy to administer and fast to set up with the help of GitLab.

Starting with the installation of GitLab, GitLab Repository Management will guide you through learning how to use permission management and other features, such as issue tracking and wikis. You will get a look at the technology that drives this open source project and learn how to connect it with your infrastructure.

This guide will show you how to use GitLab as a primary tool for version control, collaboration, and issue tracking. It will make you a capable maintainer and give you an understanding of how to make the most of this tool.

Building efficient teams of developers will change the outcome for the better, as you decide who to put in charge and whose access you can restrict. Keeping your code safe while being open to feedback, is the key to making your products something that your users will love. Documenting large projects can be challenging, but you will learn how to overcome these challenges using GitLab’s built-in wiki functionality.

  • Install GitLab on a Linux system with commands for Debian or Ubuntu, with the support of other distributions
  • Configure GitLab for your needs and infrastructure
  • Manage users inside GitLab, while securing your code
  • Document your code with the built-in wikis, getting the whole team up to speed
  • Use the built-in issue tracker to respond to feature requests and bugs quickly
  • Create useful teams that can collaborate and control access across projects
  • Update GitLab with the newest features
  • Get to know the community and know where to turn if you run into trouble

Définir un php.ini spécifique à un site

Lorsque l'on reprend le dev d'un ancien projet, on peut être souvent confronté à des problèmes de comptabilité de php entre les différentes versions.

Si par exemple le vieux site que l'on reprend à besoin des short open tags (<? au lieu de <?php) et que l'on ne veut pas les activer globalement sur tous les sites.

Et bien on peut dans ce cas définir un php.ini qui remplacera le global pour un site et le préciser dans le virtual host du site avec l'instruction : PHPINIDir

Comment faire ?

Copiez le php.ini de base (qui se trouve généralement dans /etc/php5/apache2/ ou dans /etc/php5/httpd/ dans un dossier accessible par apache, mais évidement inaccessible directement par le navigateur.

ajoutez la ligne suivante au fichier de configuration du virtual host du site concerné :

PHPINIDir /chemin/vers/php.ini

Vous pouvez maintenant modifier directement la configuration de php pour ce site, sans impacter les autres.

Relancez apache et c'est tout bon.

Rediriger les mails envoyés depuis son poste vers une autre adresse

En cours de dev, il est vite fait d'envoyer par erreur un mail à un membre au autre du site sur lequel on travail, pour éviter ce genre de problème soit on désactive complètement l'envoi de mail soit on les redirige.

C'est ce que l'on va faire ici avec Postfix :

Redirection de tous les mails envoyé via postfix vers une autre adresse.

On édite la configuration de postfix :

sudo vim /etc/postfix/main.cf

On ajoute à la fin du fichier la ligne suivante :

canonical_maps = regexp:/etc/postfix/canonical

on crée/modifie ce fichier

sudo vim /etc/postfix/canonical

et on ajoute dans ce fichier la ligne suivante :

/.*@.*/ USER@localhost

USER étant le login de connexion à votre session linux.

il est possible de renseigner une "vraie" adresse à la place de USER@localhost.

Une fois fait, on recharge la configuration de PostFix :

sudo postmap /etc/postfix/canonical

et on vérifie que tout fonctionne :

echo "test" | mail votre@adresse.com

Normalement, le mail ne sera pas partie à l'adresse mentionée mais l'adresse de redirection paramétrée plus haut !

 

 

 

Envoyer des mails depuis son code local sous Ubuntu et dérivés

En local il est pratique parfois de pouvoir envoyer des emails depuis son code php pour vérifier le bon fonctionnement de son code.

Pour cela plusieurs solutions sont possibles, je vais utiliser postfix

On commence par l'installer :

sudo apt-get install postfix

Durant la configuration PostFix va demander comment il doit être configurer :

On choisi le mode "Site Internet"

Ayé, c'est installé, on peut maintenant envoyer des mails via la commande mail de php.

Un autre paquet utile pour la gestion des mails sous ubuntu est mailutils, qui permet par exmple de consulter les mails locaux ou d'en envoyer depuis le terminal, pour l'installer :

sudo apt-get install mailutils

Une fois installé, on peut vérifier que l'envoi de mail fonctionne bien avec la commande suivante :

echo "test" | mail votre@adresse.com

Vous devriez normalement avoir reçu un mail.

 

 

Connexion FTP en local sous Linux

Des fois il est pratique d'autoriser les connexion en FTP sur sa machine en local, je pense par exemple aux mises à jour de wordpress.

Avec le logiciel vsftpd c'est possible.

Sous debian et dérivés (Ubuntu, Mint...) pour installer le paquet :

sudo apt-get install vsftpd

Puis modifiez le fichier /etc/vsftpd.conf

sudo vim /etc/vsftpd.conf

Modifiez / décommentez les lignes suivantes :

local_enable=YES #autoriser les connexion en local
write_enable=YES #autoriser l'écriture en local
local_umask=022 #umask

avec ces options, vous pourrez ainsi vous connecter à votre machine en local via avec les informations suivantes:

host : localhost
Port : 21
Utilisateur : votre identifiant de connexion à votre session
Mot de passe : votre mot de passe de connexion à votre session

Note : il est possible d'autoriser les connexion anonymes avec la ligne :

anonymous_enable=NO

en la passant à YES, mais je vous le déconseille pour des raisons de sécurité.

 

Automatiser la création de Virtualhosts sous linux (et plus)

J'ai écris pour mon usage personnel un petit script en bash pour GNU/Linux permettant de rapidement mettre en place un environnement de travail quand on attaque un projet web.
Testé sous Linux Mint 16 (fork d'Ubuntu), mais pas de raison qu'il ne fonctionne pas sous d'autres environnements.

Une fois exécute dans un terminal, le script vous demandera l'adresse en production du site sur lequel vous voulez travailler. À partir de ça, il créera le dossier de travail, le Virtual Host apache2, créera la base de donnée mysql, activera le vhost changera les droits sur le dossier de travail et enfin vous proposera de créer un alias drush (si vous travailler sous drupal).

Tout est configurable au début du fichier, et l’exécution est interactive, pour chaque étape, le script vous demandera si elle est nécessaire.

Une fois rendu le script exécutable, il suffira de tapper dans un terminal :

./site-factory.sh

Vous pouvez aussi vous créer un alias bash.

Voici un aperçu de son exécution :

Ainsi avec ma configuration, pour l'url du site www.monsite.com, le script va :

  • Créer un dossier /media/vhosts/monsite.com/www qui sera mon document root
  • Créer un dossier /media/vhosts/monsite.com/logs pour les logs apache
  • Créer un dossier /media/vhosts/monsite.com/sh pour les éventuels scripts
  • Créer un dossier /media/vhosts/monsite.com/db pour mes backups de base de données
  • Le virtual host apache 2 qui configure tout ça
  • Ajout des url monsite.com et www.monsite.com au fichier host pour pointer vers 127.0.0.1
  • Changement des droits sur les dossiers
  • Activation du Virtual Host
  • Création d'un alias drush

Le code est sur GitHub, je suis preneur de toute idée, suggestion, commentaire, pull request bug repport...

https://github.com/kgaut/scripts/blob/master/site-factory.sh

Rediriger automatiquement un tld sur sa machine sans toucher au fichier hosts

Quand on développe en local avec un vhost apache, nous devons à chaque fois modifier le fichier hosts pour faire pointer le domaine sur sa machine.

Par exemple si je travaille en local avec le tld .dev, monsite.com deviendra en local monsite.dev. et je devrais ajouter à mon fichier hosts la ligne suivante :


127.0.0.1 monsite.dev
127.0.0.1 www.monsite.dev

Sous linux, il est possible de rediriger tout un tld vers sa machine. Ainsi, toutes les url en .dev pointeront sur la machine.

Pour cela il faut installer le logiciel dnsmasq.

Sous debian et dérivés :

sudo apt-get install dnsmasq

Ensuite il faut créer un fichier de configuration

sudo vim /etc/dnsmasq.d/my-dev

et mettre dedans :

address=/dev/127.0.0.1

Ensuite, redémarrer le service dnsmasq :

sudo service dnsmasq restart

et c'est terminé :

 

Accéder à son site local depuis son smartphone ou un autre périphérique sous linux, mac et windows.

Il est utile quand l'on développe un site de pouvoir le tester depuis différents supports (tablette, téléphone...) pour en vérifier son bon fonctionnement, encore plus quand l'on développe un site mobile ou responsive (private joke : kikou les M1!).

Pour cela il faut être connecté sur le même réseau local, par exemple derrière la box de votre fournisseur d'accès ou un routeur. Peut importe le type de connexion (wifi ou câble réseau RJ45)

Première chose à faire récupérer l'IP de la machine qui fait office de serveur local (la machine ou est installé lamp, wamp ou mamp...) pour cela il faut ouvrir un terminal.

Sous windows : ouvrez le menu démarrer, cherchez « invite de commande » ou tapez directement cmd.
Sous mac : dans Applications/Utilitaires/terminal
Sous linux : normalement le raccourci CTRL+ALT+T cous ouvrira un terminal

puis dans la fenêtre qui s'est ouverte tapez

sous windows : ipconfig
sous mac et linux : ifconfig

Terminal sous linux

ifconfig sous linux

 

 

cmd ipconfig windows

Une adresse ip est constituée d'une suite de 4 nombres, pouvant aller jusqu'à 255, séparés par des points .

Généralement l'adresse ip commencera par 192.168....

C'est cette adresse que l'on va taper sur le périphérique sur lequel on veut tester le site, et vous tomberez sur la page d'accueil de votre serveur, comme si vous aviez utilisé l'adresse « localhost » sur votre ordinateur principal.

Exceptions

Sous windows avec wamp :
si vous avez un message du type « Forbidden You don't have permission to access / on this server »

modifiez le fichier httpd.conf (ou bien votre virtual host si vous en utilisez un) entre le les balises <directory ...>, remplacez la ligne

Allow from 127.0.0.1

par :

allow from all

Sous mac :
il se peut que vous ayez à configurer le firewall intégré pour autoriser les connexion depuis l’extérieur vers apache.
Aussi, si vous utilisez un port non standard (par exemple localhost:8888 depuis votre machine) ajoutez ce port à la fin de l'adresse ip : 192.168.XX.XX:8888

Android serveur local

Site mobile ou site responsive?

Actuellement la question qui revient souvent est doit-on faire un site mobile? Ou alors un site qui s'adapte au support sur lequel il est affiché (en utilisant par exemple le responsive design)

Les deux solutions ont leurs spécificités. Un site mobile sera plus pertinent dans le cas où l'ont offre une expérience ou un service sur mobile bien différent de celui qui est offert sur la version "normale" du site.

On peut citer par exemple le site d'un transporteur en commun, alors que le site normal affichera pleins d'informations rédactionnel, différents services... Le site mobile lui ce cloisonnera à fournir à l'utilisateur l'information dont il a besoin le plus rapidement possible et avec le moins de "fioritures".

 

Le site mobile de la sibra

Pour le cas d'un site plus redactionnel, tout le contenu, ou presque, est intéressant pour le mobinaute (qu'est-ce que je trouve ce terme con...) donc on ne va pas réduire l'offre de services entre la version normale et la version mobile.

Par contre on va tendre à améliorer l'expérience sur mobile. C'est à dire, pas d'images lourdes, pas trop d'animations, une interface alègée et simplifiée.

 

Un exemple de site "responsive"

C'est là que le responsive design prend tout son sens. Suivant la résolution d'écran de l'utilisateur, on utilisera une feuille de style x ou y par exemple. Vous pouvez essayer ici même, en réduisant la fenêtre de votre navigateur, vous devriez voir au fur et à mesure de légères adaptation : la taille de police qui diminue, les images qui feront au maximum la largeur de l'écran...

Les avantages de cette technique sont nombreux : un même site, un même contenu pour une multitude de support : tablettes, smartphones...

Quelques articles traitant du responsive design :

Et pour faire du responsive design avec Drupal, rien ne vaut le thème Omega, mais j'aurai l'occasion d'en reparler.

Pages

S'abonner à RSS - Développement