Mes premiers pas de développeur sous Ubuntu 10.04 (Lucid Lynx)

Il y a quelques semaines, après un vilain virus voleur de codes FTP, j'ai décidé de quitter Windows pour Ubuntu. Aujourd'hui, je vous propose le tutoriel que j'ai confectionné pour l'installation d'une solution LAMP – avec tout ce qu'il faut dedans pour développer – en espérant que cela vous incite à exercer vos talents de développeur dans le merveilleux écosystème de Linux.

Prologue

L'idée me chatouillait depuis longtemps déjà. Il faut dire qu'au bureau nous sommes sous Mac OSX et que les charmes de Linux font facilement succomber mon cœur d'éternel Amigaïste. Rhaaa, le terminal… J'ai choisi Ubuntu comme distribution Linux, parce que je suis son actualité depuis un moment et que les derniers changements apportés par la version 10.04 (Lucid Lynx) sont particulièrement agréables.

Aussi emballé par Ubuntu qu'on puisse l'être, je n'ai pourtant pas jeté Windows avec l'eau du bain – en grande partie parce que je n'ai pas encore terminé Mass Effect 2 – j'ai préféré voir ce que ça donne dans une machine virtuelle, et je vous conseille d'en faire autant. Si vous n'avez pas de machine virtuelle, et que vous ne comptez pas investir 80€ pour en avoir une, je vous conseille Virtualbox, gratuite… pour l'instant (Oracle n'a fait qu'y coller son vilain logo).

Installer Ubuntu sur Virtualbox

La procédure pour installer Ubuntu sur Virtualbox est tellement simple que je ne vais même pas la décrire ici, il y a assez de ressources sur internet pour cela. Juste un point concernant les paramètres réseaux, qui m'ont causé quelques soucis : dans la configuration de votre machine virtuelle, dans « Cartes réseau » / « Mode d'accès réseau », sélectionnez « Accès par pont » et dans « Nom » sélectionnez le même que celui par lequel vous êtes connecté sous Windows. Si vous n'utilisez pas le même adaptateur, Windows et la machine virtuelle ne pourront pas communiquer… ce serait dommage.

Bref, une fois Ubuntu installé, les choses sérieuses et exaltantes commencent !

Vous verrez que j'utilise aptitude pour les installations, j'ai pourtant rencontré de nombreux tutoriels utilisant apt-get, mais après avoir lu la documentation d'aptitude, cela m'a semblé être le meilleur choix puisqu'il est également utilisé par les installeurs graphiques d'Ubuntu.

La commande aptitude n'est plus installée par défaut avec Ubuntu 10.10 (Maverick Meerkat), pour l'installer, entrez la commande suivante :

$ sudo apt-get install aptitude

Installer Apache, MySQL, PHP

La première étape de notre installation consiste à poser les fondations de notre serveur, à savoir Apache, MySQL et PHP ainsi que quelques extensions pour PHP : le driver MySQL (php5-mysql), le driver SQLite (php5-sqlite) et APC (php-apc).

La ligne de commande ci-dessous se chargera du téléchargement et de l'installation :

Attention de ne pas copier le « $ » et de bien copier toute la ligne, elle est assez longue.

$ sudo aptitude install apache2 mysql-server php5 php5-mysql php5-sqlite php-apc php-pear php5-dev libapache2-mod-php5

Lorsqu'il y a beaucoup de choses à télécharger et à installer, « aptitude » vous demande de confirmer, entrez 'Y' pour accepter le téléchargement et l'installation.

Lorsque le mot de passe administrateur MySQL vous est demandé, saisissez-le et confirmez-le.

Une fois l'installation terminée, on croise les doigts et on se rend à l'adresse du serveur local http://localhost/. Le texte ci-dessous devrait apparaitre :

It works!

This is the default web page for this server.

The web server software is running but no content has been added, yet.

Notre serveur web est en place, nous pouvons continuer notre installation, en commençant par quelques logiciels « indispensables ».

Installer phpMyAdmin sous Ubuntu

phpMyAdmin est une application PHP qui permet l'administration de MySQL depuis le Web. Pour installer phpMyAdmin, nous saisissons la ligne de commande qui suit dans le terminal et nous suivons les étapes :

$ sudo aptitude install phpmyadmin
1. Choisir « Apache » comme type de serveur (utilisez la barre d'espace pour sélectionner). 2. Accepter la configuration de la base de données. 3. Saisir le mot de passe de connexion à MySQL que l'on a saisi précédemment. 4. Saisir le mot de passe de connexion pour phpMyAdmin, confirmer ensuite (on peut saisir le même que pour MySQL, c'est peut-être plus simple).

Une fois l'installation terminée, phpMyAdmin devrait être accessible localement depuis l'adresse http://localhost/phpmyadmin/.

Installer Xdebug pour PHP

L'extension Xdebug aide beaucoup au débogage des scripts PHP, ajoutant de nombreuses fonctionnalités comme le traçage de la pile d'exécution lorsque des erreurs se produisent ainsi qu'une version enfin utile de le fonction var_dump().

$ sudo pecl install xdebug
À la fin de l'installation, vous devriez voir une ligne semblable à celle-ci :
Installing '/usr/lib/php5/20090626/xdebug.so'

Il s'agit de l'emplacement d'installation d'Xdebug, qu'il convient d'utiliser pour ajouter l'extension Xdebug à PHP. Pour cela, il nous faut éditer le fichier php.ini :

$ sudo gedit /etc/php5/apache2/php.ini
Ajouter les lignes suivantes près de la fin du fichier, avant ; Local Variables: :
[xdebug]

zend_extension="/usr/lib/php5/20090626/xdebug.so"

Tant que nous sommes à éditer le fichier de configuration de PHP, autant en profiter pour faire quelques ajustements.

Configurer PHP pour le développement

Notre serveur va nous servir pour développer, nous avons donc besoin d'un maximum de retour de la part de PHP pour trouver les bugs et les corriger. Par défaut l'affichage des erreurs est désactivé, pas vraiment ce qu'il nous faut. En modifiant les paramètres error_reporting et display_errors nous serons informé du moindre soucis.

Nous allons également modifier d'autres paramètres qui ont des valeurs assez ridicules (2Mo maximum pour le téléchargement de fichier ? vraiment ?) :

;error_reporting = E_ALL & ~E_DEPRECATED
error_reporting = E_ALL | E_DEPRECATED | E_NOTICE | E_STRICT

;display_errors = Off
display_errors = On

;html_errors = Off
html_errors = On

;post_max_size = 8M
post_max_size = 32M

;upload_max_filesize = 2M
upload_max_filesize = 16M

Configurer Apache

Nous avons presque terminé notre installation. Nous verrons par la suite comment créer des hôtes virtuels, pour disposer d'une URL locale pour chacun de nos projets. En attendant nos allons modifier quelques paramètres du fichier de configuration pour l'hôte localhost. Ces modification seront alors copiée lors de la création de nos hôtes virtuels. Enfin nous créerons un script info.php dont nous nous servirons pour afficher toutes les informations sur PHP, et ainsi vérifier que tout c'est bien passé.

Commençons la configuration d'Apache.

Activer le module de réécriture d'URL

La réécriture d'URL est utilisée par de nombreux CMS pour présenter des pages et une arborescence alors que tout est généré depuis un script unique.

$ sudo a2enmod rewrite
Enabling module rewrite.
Run '/etc/init.d/apache2 restart' to activate new configuration!

Autoriser les modifications de configuration par .htaccess

Par défaut, les règles définies dans les fichiers .htaccess sont ignorées, pour changer cela il nous faut passer « AllowOverride » de « None » à « All », ce qui nous permettra de configurer Apache de façon localisée pour, par exemple, mettre en place des règles de réécritures d'URL ou des restrictions d'accès.

$ sudo gedit /etc/apache2/sites-available/default
    DocumentRoot /var/www
    <Directory />
        Options FollowSymLinks
        AllowOverride All
    </Directory>
    <Directory /var/www/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
    </Directory>

Redémarrer Apache pour activer les modifications

Avant de redémarrer Apache, nous allons créer un script PHP qui nous donnera toutes les informations sur PHP. Nous utiliserons ce script pour vérifier la bonne intégration de Xdebug.

Créons le fichier « info.php » à la racine de notre hébergement :

$ sudo gedit /var/www/info.php
Nous copions les lignes suivantes et nous enregistrons le fichier :
<?php

phpinfo();

Nous pouvons maintenant redémarrer le serveur Apache.

$ sudo service apache2 restart
Nous vérifions la présence de Xdebug en affichant la page http://localhost/info.php:
This program makes use of the Zend Scripting Language Engine:
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies
    with Xdebug v2.0.5, Copyright (c) 2002-2008, by Derick Rethans

Créer un hôte virtuel sous Apache

Lorsque l'on travaille sur de nombreux projets en parallèle, il devient vite très ennuyeux de remplacer le fichier de configuration d'Apache pour basculer l'adresse http://localhost vers le projet désiré. Il est plus productif d'avoir une adresse locale pour chaque projet, comme http://weirdog.localhost, http://atalian.localhost ou encore http://cbs.localhost, et c'est justement ce que nous allons obtenir grâce aux hôtes virtuels.

L'installation de notre premier hôte virtuel

Pour la démonstration, nous allons créer l'hôte virtuel pour mon site weirdog.com. Nous allons créer le dossier weirdog/www qui contiendra tous les fichiers du sites, et l'hôte virtuel weirdog.localhostqui nous permettra d'accéder au site par l'adresse locale http://weirdog.localhost.

En travaillant sous MacOS, j'ai pris l'habitude de mettre tous les sites dans le dossier « Sites », alors on va continuer comme ça.

Par contre je ne sais pas comment ajouter des utilisateurs à des dossiers sous Ubuntu. La procédure est très simple sous MacOS, mais elle reste un mystère sous Ubuntu, alors pour faire simple, je change les droits en 777, ce qui donnera à PHP un droit d'écriture :

$ mkdir ~/Sites/weirdog/www
$ sudo chown :www-data -R ~/Sites
Nous allons maintenant créer l'hôte virtuel weirdog.localhost :
$ cd /etc/apache2/sites-available
$ sudo cp default weirdog
$ sudo gedit weirdog
La commande ServerName permet de définir le nom de notre hôte virtuel :
<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ServerName weirdog.localhost

    DocumentRoot /home/olivier/Sites/weirdog/www
    <Directory />
        Options FollowSymLinks
        AllowOverride All
    </Directory>
    <Directory /home/olivier/Sites/weirdog/www>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
    </Directory>

Mais ce n'est pas si simple, il convient également d'éditer le fichier hosts pour y déclarer notre nom de domaine :

$ sudo gedit /etc/hosts
127.0.0.1   localhost
127.0.1.1   ubuntu
127.0.0.1   weirdog.localhost

Il ne nous reste plus qu'à activer notre hôte virtuel dans Apache et à redémarrer le service :

$ sudo a2ensite weirdog
$ sudo service apache2 restart
Et voilà. Notre glorieux serveur est maintenant prêt. Ne reste plus qu'à installer l'essentiel : Eclipse, l'IDE des dieux.

Eclipse

Eclipse c'est franchement la star des IDE. Cela fait trois ans maintenant que j'ai quitté Dreamweaver pour Eclipse, et si l'on exclu la coloration syntaxique, je n'ai jamais regretté mon choix. Eclipse est un bonheur pour le développeur ! Il permet d'inspecter les fichiers PHP, en les dépliant comme pour arborescence, afin d'afficher les classes, fonctions et autre qui s'y trouve. Son atout majeur pour le développeur que je suis, c'est sa complétion automatique : non content d'avoir un solide dictionnaire, le plugin PHP pour Eclipse analyse le code et propose les fonctions, les méthodes, les classes, que sais-je encore de mes projets. Le rêve !

Pour installer Eclipse, c'est tout simple :

$ sudo aptitude install eclipse eclipse-pde
Il est nécessaire d'installer le paquet eclipse-pde, sinon point de plugins. L'installation du plugin PHP se fait en revanche depuis Eclipse :
  1. Lancez Eclipse
  2. Dans le menu « Help » sélectionner « Install New Software… »
  3. Dans le menu déroulant « Work with » sélectionnez « Galileo Update Site »
  4. Dépliez la branche « Web, XML and Java… »
  5. Cochez la case « PHP Development Tools (PDT) »
  6. En bas de la fenêtre cliquez « Next > » et laissez-vous guider.
  7. Une fois l'installation terminée, Eclipse vous suggèrera un redémarrage du logiciel, acceptez.
  8. Et voilà, il ne vous reste plus qu'à sélectionnez la perspective « PHP »

La question de l'encodage

De nos jours on souhaitera travailler exclusivement en utf-8, vous pouvez configurer Eclipse pour cela. Dans les préférences de l'application rendez-vous dans « General / Workspace » et choisissez « Other / UTF-8 » dans le champ « Text file encoding » et « Other / Unix » dans « New text file line delimiter ».

Pour modifier l'encodage de vos fichiers rendez-vous dans « Edit / Set encoding ». Attention cependant, la méthode est brutale. Mieux vaut faire un copié/collé de votre code.

Conclusion

Fier et grandi, vous copiez déjà quelques polices de Windows pour être à votre aise dans votre nouvel environnement de travail. Des dossiers apparaissent et des fichiers se copient. Les couleurs chaudes d'Ubuntu apaisent votre esprit et vous plonge dans un univers propice à la réflexion. Vous imaginez déjà de nouvelles possibilités, de nouvelles fonctionnalités, alors que je me fais discret et vous laisse créer, en espérant vous revoir bientôt, pour peut-être partager votre expérience.

8 commentaires

abdi
abdi

Salut, Quand tu parles de l'installation d'eclipse, je crois que c'est eclipse-pde et non eclipse-dpe. Sinon autant pour moi.

Olivier
Olivier

Tu as bien raison Abdi, il s'agit de « eclipse-pde » et non « eclipse-dpe », j'ai corrigé mon article.

En parlant d'Eclipse, est-ce que tu as essayé la dernière version « Helios » ? Le plugin PHP est maintenant franchement fantastique : options de coloration syntaxique complètes, complétion automatique instantanée… en plus c'est beaucoup plus rapide (surtout sous Mac OSX). Que du bonheur !

abdi
abdi

J'avais abandonné Eclipse à cause des faiblesses de la coloration syntaxique. Personnellement Gedit agrémenté de quelques plugins me va très bien. Mais je vais réessayer Eclipse que j'aimais bien quand je faisais du java.

abdi
abdi

Merci Olivier. Tu m'as réconcilié avec Eclipse notamment Helios ! J'ai déjà installé le plugin sftp pour gérer la synchronisation avec mes deux serveurs ! Encore merci…

squirrel
squirrel

Salut,

Pour ma part développer sur Linux n'est que du bonheur ! :) Essayer Geany comme éditeur vous m'en dirait des nouvelles. Le problème avec Eclipse c'est qu'il est vraiment trop lourd à mon goût, trop gourmand quoi ! C'est pour çà que j'ai choisi Geany entre autre !

Lien externe :

http://doc.ubuntu-fr.org/geany http://www.geany.org/Documentation/Screenshots

bye :)

DimitriGilbert
DimitriGilbert

juste pour te dire que tu n'a pas a mettre les droit en 777, fait un « sudo chown :www-data  -R && sudo chmod 755  -R » comme ca à la fois toi et php pourrons ecrire dans les repertoire et c'est moi « mal » que le 777 ;) sinon pour l'éditeur de texte eclipse est un monstre…il est bien trop gourmand en ram et en processeur je trouve et je ne l'utilise que sur des tres gros fichier, où gedit plante… car en regle générale avec quelques plugins bien configurer gedit devient une arme redoutable :)

Aboup
Aboup

Ca marche très bien, merci. Toutefois, en tant que débutant avec eclipse, j'aimerais savoir quels sont les les parmétrages min à faire. J'utilisais komodo IDE jusqu'au jour où le codage de caractères en utf-8 m'a fait un gros problème avec la fonction heaader(). J'ai perdu trois jour pour comprendre qu'il me fallait convertir mon fichier en utf-8 (san BOM). Heureusement, notepad++ m'a aidé. Mais il n'est pas dans Linux et en plus, il est petit pour de gros projets. Merci encore et au plaisir de …

Olivier
Olivier

@aboup: J'ai ajouté la section « La question de l'encodage ». J'espère que ça répond à ta question.

Laisser un commentaire