Archives de catégorie : LAMP

Configuration de XDebug sous une VM VirtualBox

Suite à la création de mon environnement de développement LAMP sous VirtualBox, j’ai voulu installer XDebug pour une utilisation avec NetBeans se trouvant côté Mac, voici comment procéder.

Globalement ces explications valent pour toute personne souhaitant déboguer du PHP sur un serveur distant.

Pour rappel j’utilise :
Ubuntu 12.04 LTS
Apache 2.4
PHP 5.4 en module d’Apache

Xdebug-logo

Premièrement nous allons installer XDebug via pecl :

Une installation de XDebug réussie !

Une installation de XDebug réussie !

Ensuite nous allons éditer le fichier php.ini en y ajoutant la section suivante :

L’option xdebug.remote_connect_back sert à indiquer que XDebug doit envoyer ses informations de debug à l’adresse IP qui a envoyé la requête HTTP (protocole DBGp, port 9000 par défaut comme sous NetBeans).

Attention à bien écrire zend_extension = et non extension =, la différence est que XDebug vient affecter le comportement de PHP et pas simplement ajouter des fonctionnalités.

Vous pourrez ensuite lancer une session de debug depuis NetBeans mais ce dernier ne verra pas les sources (ces dernières se trouvant sur une autre machine).

Pour chacun de vos projet il faudra donc faire un clic droit sur leur nom puis Set Configuration > Customize…
Cliquez ensuite sur le bouton Advanced en bas à droite, et éditer le path mapping du projet, pour ma part :
Server Path : /var/www
Project Path : /Users/romain/www

Path Mapping sous NetBeans

Path Mapping sous NetBeans

Et voilà !

Un joli debug de Zend Framework 2 sous NetBeans

Un joli debug de Zend Framework 2 sous NetBeans

Installer MySQL 5.5 et compiler PHP 5.4 sous Ubuntu Server 12.04 LTS

Cet article fait parti d’une série d’articles sur la création d’un environnement de développement Linux Apache MySQL PHP (LAMP) dans une machine virtuelle VirtualBox.

SOMMAIRE

Index : Création d’une machine virtuelle LAMP (VirtualBox, Ubuntu Server 12.04 LTS, Apache 2.4, MySQL 5.5, PHP 5.4)
Etape 1 : Installation d’Ubuntu Server 12.04 LTS sous VirtualBox
Etape 2 : Compiler Apache 2.4 sous Ubuntu Server 12.04 LTS
Etape 3 : Partager un dossier avec une VirtualBox sous Ubuntu Server 12.04 LTS
Etape 4 : Installer MySQL 5.5. et compiler PHP 5.4 sous Ubuntu Server 12.04 LTS

Installation de MySQL 5.5

Nous allons commencer par installer MySQL 5.5, la version la plus récente se trouvant déjà sur le repository Ubuntu (à l’heure où j’écris 5.5.28-0ubuntu012.04.2), je n’ai qu’à l’installer avec la commande :

Vous pouvez ensuite saisir un mot de passe (ou non) pour l’utilisateur root.

Choix d'un mot de passe pour compte root

Choix d’un mot de passe pour compte root

C’est tout ! MySQL se lancera tout seul au démarrage.

Compilation de PHP 5.4

Pour PHP ce sera un peu plus complexe car le repository officiel ne contient que la version 5.3 à l’heure actuelle, il va falloir compiler !

Pour plus de détails sur les options de compilation, notamment sur l’utilisation avec d’autres MPM d’Apache ou d’autres serveurs web, je vous recommande cet article de Julien Pauli :

http://julien-pauli.developpez.com/tutoriels/php/compilation/

Par défaut PHP 5.4 incluant les extensions XML, nous auront besoin au préalable d’installer le package libxml2-dev

Premièrement nous allons télécharger, puis décompresser les sources (le tilde ~ se fait avec alt droite+n sur un clavier mac azerty).

Pour connaitre la liste des options disponibles vous pouvez taper :

L’article de Julien Pauli, ainsi que la documentation de PHP sont également d’autres sources d’information.

Nous allons ensuite lancer le triplet configure, make, make install. J’ai dans mon exemple uniquement activé le support de MySQL en utilisant le driver natif (par défaut dans PHP 5.4), PHP sera installé en tant que module d’Apache. Si vous comptez installer phpMyAdmin, vous pouvez également ajouter –with-mcrypt –enable-mbstring dès maintenant.

Nous allons ensuite créer le fichier php.ini à partir du fichier recommandé pour un environnement de développement

Vous pouvez également en profiter pour modifier la ligne

en

Ensuite nous ajouterons les lignes suivantes au fichier de configuration Apache /usr/local/apache2/conf/httpd.conf

C’est tout, il n’y a plus qu’à redémarrer Apache !

Vous pouvez tester votre configuration en allant ajouter un fichier phpinfo.php dans votre répertoire www contenant :

Un phpinfo() où tout roule !

C’est fini !

[MAJ du 18/12/2012] Vous pouvez également suivre ce tutoriel qui explique comment installer et configurer XDebug pour un deboguage distant

SOMMAIRE

Index : Création d’une machine virtuelle LAMP (VirtualBox, Ubuntu Server 12.04 LTS, Apache 2.4, MySQL 5.5, PHP 5.4)
Etape 1 : Installation d’Ubuntu Server 12.04 LTS sous VirtualBox
Etape 2 : Compiler Apache 2.4 sous Ubuntu Server 12.04 LTS
Etape 3 : Partager un dossier avec une VirtualBox sous Ubuntu Server 12.04 LTS
Etape 4 : Installer MySQL 5.5. et compiler PHP 5.4 sous Ubuntu Server 12.04 LTS

Partager un dossier avec une VirtualBox sous Ubuntu Server 12.04 LTS

Cet article fait parti d’une série d’articles sur la création d’un environnement de développement Linux Apache MySQL PHP (LAMP) dans une machine virtuelle VirtualBox.

SOMMAIRE

Index : Création d’une machine virtuelle LAMP (VirtualBox, Ubuntu Server 12.04 LTS, Apache 2.4, MySQL 5.5, PHP 5.4)
Etape 1 : Installation d’Ubuntu Server 12.04 LTS sous VirtualBox
Etape 2 : Compiler Apache 2.4 sous Ubuntu Server 12.04 LTS
Etape 3 : Partager un dossier avec une VirtualBox sous Ubuntu Server 12.04 LTS
Etape 4 : Installer MySQL 5.5. et compiler PHP 5.4 sous Ubuntu Server 12.04 LTS

Après avoir compilé, installé et configuré notre serveur Apache avec succès dans l’article précédent, nous allons maintenant partager un répertoire entre notre machine hôte et Ubuntu sous VirtualBox.

Sur mon Mac j’ai créé un répertoire www dans mon dossier utilisateur, c’est ce répertoire que je vais partager.

Mon dossier partagé

Mon dossier partagé

Sous Ubuntu, dans le menu Devices de VirtualBox, cliquez sur Install Guest Additions… pour lancer un disque virtuel (s’il ne se passe strictement rien c’est parfaitement normal) puis nous allons créer un répertoire /cdrom et y monter son contenu.

Puis nous allons lancer le script VBoxLinuxAdditions.run (attention, il faudra le refaire à chaque mise à jour de VirtualBox)

Dans le menu Devices > Shared Folders… de VirtualBox, nous allons sélectionner le répertoire www créé sur notre machine hôte. Pensez à cocher Make Permanent pour que le partage perdure après avoir quitté VirtualBox.

Partage d'un répertoire Mac OS X sous Ubuntu VirtualBox

Partage d’un répertoire Mac OS X sous Ubuntu VirtualBox

Une fois le partage activé, j’ai créé un répertoire /var/www sous Ubuntu, puis monté le partage :

Si vous souhaitez monter ce dossier à chaque démarrage, je vous recommande d’ajouter la ligne

Au fichier

Attention, si vous appelez apachectl start dans ce même fichier, penser à monter le dossier partagé au préalable, sachant qu’il sera utilisé ensuite par notre config d’Apache.

Partage du répertoire www à chaque démarrage

J’ai ensuite modifié dans le fichier

Le ligne permettant d’indiquer que mon site web local se trouve dans le répertoire /var/www :

Nouvelle configuration d’Apache

Il ne nous reste plus qu’à tester, j’ai créé un fichier test.html sur mon Mac… et ça marche !

Ça marche !

Etape suivante : Installer MySQL 5.5. et compiler PHP 5.4 sous Ubuntu Server 12.04 LTS

SOMMAIRE

Index : Création d’une machine virtuelle LAMP (VirtualBox, Ubuntu Server 12.04 LTS, Apache 2.4, MySQL 5.5, PHP 5.4)
Etape 1 : Installation d’Ubuntu Server 12.04 LTS sous VirtualBox
Etape 2 : Compiler Apache 2.4 sous Ubuntu Server 12.04 LTS
Etape 3 : Partager un dossier avec une VirtualBox sous Ubuntu Server 12.04 LTS
Etape 4 : Installer MySQL 5.5. et compiler PHP 5.4 sous Ubuntu Server 12.04 LTS

Compiler Apache 2.4 sous Ubuntu Server 12.04 LTS

Cet article fait parti d’une série d’articles sur la création d’un environnement de développement Linux Apache MySQL PHP (LAMP) dans une machine virtuelle VirtualBox.

SOMMAIRE

Index : Création d’une machine virtuelle LAMP (VirtualBox, Ubuntu Server 12.04 LTS, Apache 2.4, MySQL 5.5, PHP 5.4)
Etape 1 : Installation d’Ubuntu Server 12.04 LTS sous VirtualBox
Etape 2 : Compiler Apache 2.4 sous Ubuntu Server 12.04 LTS
Etape 3 : Partager un dossier avec une VirtualBox sous Ubuntu Server 12.04 LTS
Etape 4 : Installer MySQL 5.5. et compiler PHP 5.4 sous Ubuntu Server 12.04 LTS

Choix techniques

Pour ma machine virtuelle, j’ai choisi un serveur Apache 2.4 avec le module prefork en raison et de sa meilleure compatibilité avec PHP, pour plus d’information sur les autres Modules Multi-Processus, je vous renvoi à la documentation d’Apache sur les modules. Pour plus de performances, il conviendrait également de s’intéresser à d’autres serveurs web comme nginx, lighttpd, Cherokee ou encore G-WAN.

Installation

A l’heure à laquelle j’écris ces lignes, les paquets présents sur le dépôt officiel concernent la version 2.2 d’Apache. Afin de bénéficier des dernières avancés nous allons compiler le serveur web nous même à partir des sources.

Pour commencer, installons les paquets build-essential (outils de compilation), ainsi que PCRE dont Apache dépend.

On créé ensuite un répertoire src/apache et y télécharger puis décompresser les sources.

Apache dépend également de 2 autres bibliothèques, apr et apr-util, téléchargeons les et plaçons les dans le répertoire srclib des sources apache.

Nous allons désormais pouvoir configurer puis compiler notre serveur apache. Vous retrouverez sur le site d’Apache les options de configuration : http://httpd.apache.org/docs/2.4/programs/configure.html

On compile

Compilation réussie !

Compilation réussie !

Puis on installe

Il ne nous reste qu’à éditer le fichier de configuration Apache.

A minima, la ligne

Deviens

Il est temps de démarrer notre serveur web :

Vous pouvez vérifier que tout va bien avec cURL

Démarrage d'Apache 2.4

Démarrage d’Apache 2.4

Afin de démarrer automatiquement Apache au démarrage d’Ubuntu, vous pouvez ajouter la ligne :

au fichier :

Nous allons maintenant paramétrer VirtualBox pour que notre machine hôte (Mac OS X dans mon cas), puisse accéder au serveur Apache de notre machine virtuelle.

J’ai choisi une configuration qui pourra rester la même en fonction du réseau sur lequel je me trouve : le NAT. Pour ça il va falloir rerouter un port de la machine hôte vers le port 80 de la machine virtuelle, idéalement j’aurais souhaiter rerouter le port 80 de Mac OS X vers le port 80 d’Ubuntu, ce qui est impossible car VirtualBox n’a pas les droits suffisant pour modifier les ports inférieurs à 1024, ce sera donc le 8080 !

Aller dans le menu Devices > Network Adapters… de VirtualBox puis vérifiez que le menu déroulant Attached to est bien positionné sur NAT. Ensuite dans Port Forwarding ajoutez la configuration suivante :

Name : HTTP
Protocol : TCP
Host IP :
Host Port : 8080
Guest IP :
Guest Port : 80

Port Forwarding HTTP 80 VirtualBox

Configuration de VirtualBox

Vous pouvez maintenant accéder à votre serveur virtuel via http://localhost:8080 !

Configuration d'une VM Apache réussie !

Configuration d’une VM Apache réussie !

Etape suivante : Partager un dossier avec une VirtualBox sous Ubuntu Server 12.04 LTS

SOMMAIRE

Index : Création d’une machine virtuelle LAMP (VirtualBox, Ubuntu Server 12.04 LTS, Apache 2.4, MySQL 5.5, PHP 5.4)
Etape 1 : Installation d’Ubuntu Server 12.04 LTS sous VirtualBox
Etape 2 : Compiler Apache 2.4 sous Ubuntu Server 12.04 LTS
Etape 3 : Partager un dossier avec une VirtualBox sous Ubuntu Server 12.04 LTS
Etape 4 : Installer MySQL 5.5. et compiler PHP 5.4 sous Ubuntu Server 12.04 LTS

Installation d’Ubuntu Server 12.04 LTS sous VirtualBox

Cet article fait parti d’une série d’articles sur la création d’un environnement de développement Linux Apache MySQL PHP (LAMP) dans une machine virtuelle VirtualBox.

SOMMAIRE

Index : Création d’une machine virtuelle LAMP (VirtualBox, Ubuntu Server 12.04 LTS, Apache 2.4, MySQL 5.5, PHP 5.4)
Etape 1 : Installation d’Ubuntu Server 12.04 LTS sous VirtualBox
Etape 2 : Compiler Apache 2.4 sous Ubuntu Server 12.04 LTS
Etape 3 : Partager un dossier avec une VirtualBox sous Ubuntu Server 12.04 LTS
Etape 4 : Installer MySQL 5.5. et compiler PHP 5.4 sous Ubuntu Server 12.04 LTS

Choix Techniques

Logiciel de virtualisation

Sur Mac les trois choix qui s’offrent à nous sont :

  • Parallels Desktop
  • VMWare Fusion
  • VirtualBox

Les 2 premiers sont payants et selon les benchmarks que j’ai pu lire ça et là, le plus performant semble être Parallels Desktop. Sauf que nous allons installer un Linux serveur sans interface graphique et sommes peu intéressé par les performances 3D des 2 premiers, c’est donc sur VirtualBox que s’est porté notre choix.

Logo VirtualBox

VirtualBox

Distribution Linux

Parmi les centaines de distributions Linux sur le marché, difficile de faire son choix. J’ai retenu une phrase de Julien Pauli dans son article sur la compilation de PHP :

Nous allons utiliser un système Ubuntu Server. Historiquement, le système le moins « galère » pour compiler PHP et l’utiliser est Debian. Ubuntu est une branche très proche de Debian, les manipulations notées ici seront quasi identiques sous Debian.

D’autres auraient choisi CentOS, OpenSUSE ou OpenBSD, si vous avez mieux à nous conseiller, merci d’en faire part dans les commentaires !

Mon choix s’est donc porté sur Ubuntu 12.04 LTS (Long Term Support), la plus à même de se retrouver en production.

Logo Ubuntu

Ubuntu

Installation de Ubuntu Server

Après avoir ouvert VirtualBox, cliquez sur New pour lancer l’assistant de création de machine virtuelle, nous allons choisir dans la liste des versions Linux Ubuntu (64 bit).

Assistant de création de VM VirtualBox

Assistant de création de VM VirtualBox

Vous pouvez utiliser tous les paramètres par défaut dans la suite de l’installation.

Cliquez ensuite sur démarrer pour lancer votre VM.

Sur l’écran Select Installation Media, sélectionnez le fichier ubuntu-12.04-server-amd64.iso que vous aurez au préalable téléchargé sur le site d’Ubuntu.

Lors de l’installation d’Ubuntu, choisissez comme locale France et refusez la détection automatique du clavier. Notre disposition de notre clavier Apple s’appelle Français – Français (Macintosh).

Dispositions Clavier Ubuntu

Dispositions Clavier Ubuntu

Par la suite choisissez un nom pour votre machine (par exemple « ubuntu »), un nom d’utilisateur pour moi ça sera « romain », un mot de passe, pas la peine de chiffrez votre dossier utilisateur, choisissez votre fuseau horaire (ici Europe/Paris), pour le partitionnement vous pouvez choisir Assisté – utiliser un disque entier (puisqu’il n’y aura pas d’autre OS dans notre VM).

Vous pouvez cocher ensuite Installer les mises à jour de sécurité automatiquement. Sur l’écran Sélection de logiciel surtout ne cochez PAS LAMP Server, ses composants n’étant pas à jour, nous les installerons indépendamment.

Sélection de Logiciels

Ne PAS cochez LAMP ici

Vous pouvez installer GRUB puisque nous n’aurons qu’un seul OS dans cette VM.

Félicitations ! Vous avez installé Ubuntu Server 12.04 LTS.

Ubuntu Server 12.04 LTS dans VirtualBox

Ubuntu Server 12.04 LTS dans VirtualBox

Etape suivante : Compiler Apache 2.4 sous Ubuntu Server 12.04 LTS

SOMMAIRE

Index : Création d’une machine virtuelle LAMP (VirtualBox, Ubuntu Server 12.04 LTS, Apache 2.4, MySQL 5.5, PHP 5.4)
Etape 1 : Installation d’Ubuntu Server 12.04 LTS sous VirtualBox
Etape 2 : Compiler Apache 2.4 sous Ubuntu Server 12.04 LTS
Etape 3 : Partager un dossier avec une VirtualBox sous Ubuntu Server 12.04 LTS
Etape 4 : Installer MySQL 5.5. et compiler PHP 5.4 sous Ubuntu Server 12.04 LTS

Création d’une machine virtuelle LAMP (VirtualBox, Ubuntu Server 12.04 LTS, Apache 2.4, MySQL 5.5, PHP 5.4)

Développant la plupart de mes applications web en PHP, j’ai besoin comme tout le monde dans mon cas d’un environnement de développement.

Sur Mac le plus simple est d’installer un logiciel qui package Apache MySQL et PHP comme MAMP ou XAMPP ou alors d’activer le serveur Apache installé par défaut sous OS X. Sous Windows, on peut citer XAMPP, WAMP, EasyPHP et bien d’autres.

Jusqu’à un certain point cette configuration se révèle être suffisante, mais depuis quelques temps je me sentais limité par deux aspects :

  • les mises à jour des logiciels type XAMPP se font attendre (à l’heure où j’écris ces lignes XAMPP Mac n’intègre pas PHP 5.4)
  • certaines bibliothèques ne sont pas à jour ou peuvent être différentes d’un serveur de production sous Linux

Afin d’avoir un serveur de développement identique à celui de production (dev/prod parity), j’ai choisi de créer mon environnement de développement dans une machine virtuelle. J’utilise Mac OS 10.8 et ai choisi VirtualBox 4.1, Ubuntu Server 12.04 LTS, Apache 2.4, MySQL 5.5 et PHP 5.4 mais avec cette série de tutoriels peut très bien être adaptée à d’autres configurations !

N’étant pas vraiment un expert Unix mes références pour ces tutoriels ont été :

Environnement LAMP sous VirtualBox

Environnement LAMP sous VirtualBox

Etape suivante : Installation d’Ubuntu Server 12.04 LTS sous VirtualBox

SOMMAIRE

Index : Création d’une machine virtuelle LAMP (VirtualBox, Ubuntu Server 12.04 LTS, Apache 2.4, MySQL 5.5, PHP 5.4)
Etape 1 : Installation d’Ubuntu Server 12.04 LTS sous VirtualBox
Etape 2 : Compiler Apache 2.4 sous Ubuntu Server 12.04 LTS
Etape 3 : Partager un dossier avec une VirtualBox sous Ubuntu Server 12.04 LTS
Etape 4 : Installer MySQL 5.5. et compiler PHP 5.4 sous Ubuntu Server 12.04 LTS