Installation de Symfony 2.8/3.1 sur une instance Simple Hosting de type ‘PHP 5.6/7.0’

Installation de Symfony 2.8/3.1 sur une instance Simple Hosting de type ‘PHP 5.6/7.0’.
Dans ce tutoriel, nous allons vous montrer pas-à-pas une installation de base de ‘Symfony version 2.8/3.1‘ sur une instance Simple Hosting de type ‘PHP / MySQL‘ avec ‘PHP version 5.6/7.0‘.
Dans notre cas, le développement de l’application se fait à partir de votre poste de travail en local avec une distribution ‘Linux/Ubuntu 14.04 LTS‘ installé.
===== Installation de Composer =====
Vous devez tout d’abord télécharger le script PHP qui permet d’installer Composer :

~$ wget https://getcomposer.org/installer

Puis, on passe à la phase d’installation :

~$ php ./installer

Veuillez renommer le script :

~$ sudo mv composer.phar /usr/local/bin/composer

On vérifie que ‘composer’ est bien installé :

~$ composer --version
Composer version 1.1.2 2016-05-31 19:48:11

Vous pouvez trouver un tutoriel plus complet sur l’utilisation de ‘Composer’ sur notre wiki :
http://wiki.gandi.net/fr/tutorials/simple/php/composer
===== Installation de Symfony =====
Je vous invite tout d’abord à télécharger l’application ‘Symfony Installer‘ :

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

Puis à rendre ‘exécutable‘ le fichier :

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

Lien :
http://symfony.com/doc/current/book/installation.html
===== Répertoire de l’application Symfony =====
Je vous suggère de créer un répertoire de travail qui va contenir l’ensemble de votre application Symfony, soit :

~$ mkdir MyProject
~$ cd MyProject/
~/MyProject$

===== Génération de l’application Symfony en ligne de commande =====
La création de votre application Symfony est généré de la manière suivante :

symfony new  

Soit :

~/MyProject$ symfony new projet 2.8
...
 Downloading Symfony...
...

ou

~/MyProject$ symfony new projet 3.1

Veuillez renommer le répertoire ‘projet/‘ en ‘htdocs/‘ qui correspond au répertoire ‘racine‘ de votre application sur nos instances :

~/MyProject$ mv projet/ htdocs/

Je vous invite à vérifier si les fichiers Symfony sont bien présents :

~/MyProject$ ls htdocs/
app  bin  composer.json  composer.lock  README.md  src  vendor  web

Lien :
http://symfony.com/doc/current/book/installation.html#creating-the-symfony-application
===== Ajout du fichier ‘.htaccess‘ =====
Afin d’avoir des adresses internets (url) correctement configurées, il vous faut créer le fichier ‘.htaccess‘ dans le répertoire ‘htdocs/‘ :
Puis ajouter le code suivant :


    RewriteEngine On
    RewriteBase /web
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ /web/$1 [QSA,L]

Lien :
http://groups.gandi.net/fr/topic/gandi.fr.hebergement.simple/34557
===== Ajout du module de générateur de bundle =====
Le module de générateur de ‘bundle‘ doit être installé :

~/MyProject$ cd htdocs/
~/MyProject/htdocs$ composer require sensio/generator-bundle
Using version ^3.0 for sensio/generator-bundle
./composer.json has been updated
...
> Sensio\Bundle\DistributionBundle\Composer\ScriptHandler::installRequirementsFile
> Sensio\Bundle\DistributionBundle\Composer\ScriptHandler::prepareDeploymentTarget
~/MyProject/htdocs$ cd ..
~/MyProject$

===== Modification du fichier .gitignore =====
Pour un premier déploiement, je vous recommande de renommer le fichier ‘.gitignore‘ ceci afin d’installer toutes les dépendances de votre application sur l’instance :

~/MyProject$ mv htdocs/.gitignore htdocs/gitignore

===== Initialisation du dépôt git =====
Pour commencer la gestion de version de votre projet, le dépôt ‘git‘ doit être initialisé :

~/MyProject$ git init .
Dépôt Git vide initialisé dans /home/gandi/MyProject/.git/

Pour de plus amples informations sur Git :
https://wiki.gandi.net/fr/simple/git
===== ‘Commit‘ de la première version du projet =====
Tous les fichiers de votre projet Symfony sont alors ajoutés au premier ‘commit‘ :

~/MyProject$ git add -A

Puis ‘commiter‘:

~/MyProject$ git commit -m "First commit: Version 0.0.1"
 36 files changed, 3461 insertions(+)
 create mode 100644 htdocs/README.md
...
 create mode 100644 htdocs/web/favicon.ico
 create mode 100644 htdocs/web/robots.txt

La branche ‘origin‘ distante de votre dépôt GitWeb doit être créé :

~/MyProject$ git remote add origin git+ssh://1234567@git.dc0.gpaas.net/ac874ebc1b.url-de-test.ws.git

Je vous invite bien sûr à changer les valeurs suivantes :
‘1234567’ est l’identifiant d’utilisateur de l’instance.
‘dc0’ est l’identifiant du datacenter.
‘ac874ebc1b.url-de-test.ws’ est l’adresse internet/hôte virtuel (vhost) de test de votre instance Simple Hosting.
Ensuite le ‘commit‘ est poussé vers le gestionnaire de version en-ligne Gitweb :

~/MyProject$ git push origin master
Counting objects: 3367, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (2199/2199), done.
Writing objects: 100% (2280/2280), 1.26 MiB | 0 bytes/s, done.
Total 2280 (delta 1326), reused 0 (delta 0)
To git+ssh://1234567@git.dc0.gpaas.net/ac874ebc1b.url-de-test.ws.git
   8dd3e50..0d80d67  master -> master

===== Déploiement de l’application en production =====
Enfin, l’application est déployée vers le répertoire SFTP ‘/lamp0/web/vhosts/ac874ebc1b.url-de-test.ws.git/htdocs/‘ de votre instance :

~/MyProject$ ssh 1234567@git.dc0.gpaas.net 'deploy ac874ebc1b.url-de-test.ws.git'
...
htdocs/web/bundles/
htdocs/web/bundles/framework -> ../../vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Resources/public/
sent 757182 bytes  received 944 bytes  1516252.00 bytes/sec
total size is 753574  speedup is 0.99
-----> Build complete
-----> Cleaning temporary files

Vous avez la possibilité d’éviter l’affichage des logs sur la console grâce à une redirection de la sortie standard vers ‘/dev/null‘, soit :

~/MyProject$ ssh 1234567@git.dc0.gpaas.net 'deploy ac874ebc1b.url-de-test.ws.git' > /dev/null

Lien :
https://wiki.gandi.net/fr/simple/git
===== Test de votre application Symfony =====
Vous pouvez enfin tester votre site développé sous le framework Symfony 2.8/3.1 à l’adresse internet par défaut de test, dans notre cas :
http://ac874ebc1b.url-de-test.ws/

Comments are closed, but trackbacks and pingbacks are open.