Comment installer et démarrer avec Symfony 2 sur Ubuntu 14.04

De Get Docs
Aller à :navigation, rechercher

Introduction

Symfony est un framework PHP open source complet. Il est bien connu pour ses composants indépendants qui peuvent être facilement intégrés dans n'importe quel autre projet PHP. Le framework Symfony convient à la construction d'applications PHP de toute taille, y compris les applications console destinées à s'exécuter uniquement sur la ligne de commande.

Dans ce tutoriel, nous verrons comment installer, configurer et démarrer avec une application Symfony 2 sur Ubuntu 14.04.

Il s'agit d'une configuration de développement, destinée à vous familiariser avec Symfony et à vous permettre de commencer à écrire votre premier projet Symfony. Nous vous guiderons à travers la configuration et l'installation d'un tout nouveau projet Symfony.


Conditions préalables

Pour ce tutoriel, vous aurez besoin de :

Étape 1 - Installation de PHP

Avant de commencer, nous devrons installer PHP pour l'environnement de ligne de commande. Il n'est pas nécessaire d'installer un serveur Web complet tel qu'Apache ou Nginx, car Symfony est livré avec une commande de console qui simplifie l'exécution et la gestion du serveur Web intégré de PHP pendant que vous développez votre application. C'est un moyen simple et efficace d'exécuter l'application en mode développement.

Commençons par mettre à jour le cache du gestionnaire de packages :

sudo apt-get update

Maintenant, pour utiliser et exécuter des scripts PHP via la ligne de commande, installez le package php5-cli.

sudo apt-get install php5-cli

Vous devriez maintenant avoir installé PHP sur votre serveur. Pour vérifier s'il a été installé avec succès, exécutez :

php -v

Et vous devriez obtenir une sortie similaire à celle-ci :

OutputPHP 5.5.9-1ubuntu4.11 (cli) (built: Jul 2 2015 15:23:08)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies
with Zend OPcache v7.0.3, Copyright (c) 1999-2014, by Zend Technologies

Étape 2 - Configuration de date.timezone dans php.ini

Symfony nécessite que l'option date.timezone soit définie dans vos fichiers php.ini. Si vous testez ce didacticiel sur un nouveau serveur, cette option n'est pas encore définie. Si tel est le cas, votre application Symfony ne fonctionnera pas.

Nous devrons modifier le fichier php.ini du serveur pour nous assurer que cette option est définie. Ce fichier doit être situé dans /etc/php5/cli/php.ini.

Ouvrez le fichier php.ini à l'aide de nano ou de votre éditeur de ligne de commande préféré :

sudo nano /etc/php5/cli/php.ini

Recherchez la ligne contenant date.timezone. Décommentez la directive en supprimant le signe ; au début de la ligne et ajoutez le fuseau horaire approprié pour votre application. Dans cet exemple, nous utiliserons Europe/Amsterdam, mais vous pouvez choisir n'importe quel fuseau horaire pris en charge.

php.ini modifié

[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = Europe/Amsterdam

Enregistrez le fichier et quittez.

Étape 3 - Obtenir le programme d'installation de Symfony

Le moyen le plus simple de créer un nouveau projet Symfony est d'utiliser l'installateur Symfony officiel. C'est un simple script créé pour faciliter le démarrage de nouvelles applications Symfony.

La commande suivante téléchargera le programme d'installation de Symfony et le placera sur votre chemin /usr/local/bin :

sudo curl -LsS http://symfony.com/installer -o /usr/local/bin/symfony

Maintenant, vous devrez rendre le script exécutable avec la commande suivante :

sudo chmod a+x /usr/local/bin/symfony

Pour tester le programme d'installation de Symfony, exécutez :

symfony

La sortie devrait ressembler à ceci :

Output
 Symfony Installer (1.1.7)
 =========================

 This is the official installer to start new projects based on the
 Symfony full-stack framework.

 To create a new project called blog in the current directory using
 the latest stable version of Symfony, execute the following command:

   symfony new blog

. . .

Étape 4 - Création d'un nouveau projet Symfony

Maintenant que nous avons l'installateur Symfony en place, nous pouvons continuer et créer un nouveau projet Symfony. Comme il s'agit d'une configuration de développement et que nous utiliserons le serveur Web intégré de PHP, vous pouvez continuer et créer le projet dans votre répertoire personnel. Pour cet exemple, nous allons créer un projet nommé "monprojet", mais vous pouvez utiliser votre propre nom de projet dans la commande suivante.

cd ~
symfony new myproject

Cela créera un nouveau dossier myproject dans votre répertoire personnel, contenant une toute nouvelle application Symfony. La commande produira une sortie semblable à celle-ci :

Output
 Downloading Symfony...

 Preparing project...

 ✔  Symfony 2.7.3 was successfully installed. Now you can:

    * Change your current directory to /home/sammy/myproject

    * Configure your application in app/config/parameters.yml file.

    * Run your application:
        1. Execute the php app/console server:run command.
        2. Browse to the http://localhost:8000 URL.

    * Read the documentation at http://symfony.com/doc

Étape 5 - Exécution de l'application avec la console Symfony

Le serveur Web intégré fourni avec PHP (depuis PHP 5.4) convient à l'exécution d'applications PHP en cours de développement, de test ou de démonstration. Cela permet une expérience plus fluide, car vous n'aurez pas à vous soucier de la configuration d'un serveur Web complet comme Apache ou Nginx.

Symfony est livré avec une commande de console qui facilite le processus de démarrage/arrêt du serveur Web intégré de PHP, vous permettant également (depuis Symfony 2.6) d'exécuter le serveur Web en arrière-plan.

La console Symfony est un script CLI qui a plusieurs commandes pour vous aider à construire et tester votre application. Vous pouvez même inclure vos propres commandes écrites en PHP !

Le serveur Web peut être lancé à tout moment avec la commande de console server:run. Cependant, les paramètres par défaut utilisés par la commande Symfony n'accepteront que les connexions à localhost sur le port 8000. Si vous suivez ce didacticiel sur un serveur de développement/test externe ou sur une machine virtuelle locale, vous devrez fournir un paramètre supplémentaire à la commande, indiquant au serveur Web d'écouter une adresse IP différente.

Pour autoriser les connexions provenant à la fois des réseaux internes et externes, exécutez cette commande depuis le répertoire du projet :

php app/console server:run 0.0.0.0:8000
OutputServer running on http://0.0.0.0:8000

Quit the server with CONTROL-C.

Cela démarrera le serveur Web intégré de PHP, écoutant toutes les interfaces réseau sur le port 8000.

Vous devriez maintenant pouvoir accéder à l'application si vous pointez votre navigateur vers http://your_server_ip:8000. Vous devriez voir une page comme celle-ci :

La commande continuera à s'exécuter dans le terminal actif jusqu'à ce que vous terminiez son exécution avec CTRL+C. Pour faire fonctionner le serveur Web en arrière-plan, vous devez utiliser la commande server:start à la place :

php app/console server:start 0.0.0.0:8000
OutputWeb server listening on http://0.0.0.0:8000

Cela fera fonctionner le serveur Web en arrière-plan, laissant votre session de terminal libre pour exécuter d'autres commandes. Pour arrêter le serveur, vous devez utiliser :

php app/console server:stop 0.0.0.0:8000
OutputStopped the web server listening on http://0.0.0.0:8000

Vous pouvez également vérifier l'état du serveur Web avec :

php app/console server:status 0.0.0.0:8000

Lorsque le serveur n'est pas en cours d'exécution, voici la sortie que vous devriez obtenir :

OutputNo web server is listening on http://0.0.0.0:8000

Lorsqu'un serveur actif s'exécute sur l'adresse IP et le port spécifiés, vous devriez obtenir une sortie comme celle-ci :

OutputWeb server still listening on http://0.0.0.0:8000

N'oubliez pas que les commandes server:stop et server:status doivent inclure la même partie IPADDRESS:PORT que vous avez utilisée lors de l'initialisation du serveur avec server:start.

Conclusion

Symfony est un framework PHP complet adapté à la création d'applications de toute taille. Dans ce tutoriel, nous avons vu comment installer et démarrer avec Symfony 2 sur un nouveau serveur Ubuntu 14.04 en utilisant le serveur Web intégré de PHP pour exécuter l'application. Pour plus d'informations sur la création d'applications PHP à l'aide de Symfony, consultez leur documentation officielle.