Installer Symfony sur Centos
janvier 4, 2015 12:44 Laissez vos commentairesL’installation du célèbre Framework Symfony peut s’avérer fastidieuse. C’est pourquoi je vous propose ce petit tutoriel afin de solutionner les éventuelles erreurs liées au processus d’installation.
Prérequis :
Un serveur Centos configuré avec apache et Mysql.
PHP installé avec les modules optionnels suivants
yum install php-xml yum install php-posix yum install git yum install php-cli yum install php-pecl-apc yum install php-mbstring
Installation d’un accélérateur PHP (Recommandé) :
yum install php-pear php-devel httpd-devel pcre-devel gcc make
Installation :
Installez le composer (bibliothèque de gestion de dépendance PHP) 1
curl -s https://getcomposer.org/installer | php
php composer.phar create-project symfony/framework-standard-edition /var/www/symfony
Placez vous dans le dossier /var/www/symfony, vous devriez obtenir une liste de fichiers et dossiers ressemblant à cela :
drwxr-xr-x 7 root root 4096 2 janv. 12:13 app drwxr-xr-x 2 root root 4096 2 janv. 12:13 bin -rw-r--r-- 1 root root 2462 2 déc. 13:33 composer.json -rw-r--r-- 1 root root 60510 2 janv. 12:13 composer.lock -rw-r--r-- 1 root root 1065 2 déc. 13:33 LICENSE -rw-r--r-- 1 root root 5732 2 déc. 13:33 README.md drwxr-xr-x 4 root root 4096 2 janv. 12:13 src -rw-r--r-- 1 root root 1308 2 déc. 13:33 UPGRADE-2.2.md -rw-r--r-- 1 root root 1962 2 déc. 13:33 UPGRADE-2.3.md -rw-r--r-- 1 root root 356 2 déc. 13:33 UPGRADE-2.4.md -rw-r--r-- 1 root root 8499 2 déc. 13:33 UPGRADE.md drwxr-xr-x 14 root root 4096 2 janv. 12:13 vendor drwxr-xr-x 2 root root 4096 2 déc. 13:33 web
Modifiez les autorisations :
[root@dev www]# chown -R apache:apache symfony/ cd symfony chmod 777 app/cache/ chmod 777 app/logs/
Vérifiez que la configuration de votre système est prête à accueillir Symfony:
Dans le répertoire Symfony, lancez simplement :
php app/check.php
Réglez ensuite les éventuels problèmes explicités, comme par exemple le timezone du fichier php.ini :
nano /etc/php.ini
Ajoutez la ligne :
date.timezone = Europe/Paris
ou encore la mise à jour des vendors ({Vendor libraries must be installed}). Ajouter la ligne dans le fichier composer.json ou créer le s’il n’existe pas :
{
"require": {
"symfony/finder": "2.3.*"
}
}
Relancez le check :
[OK] Your system is ready to run Symfony2 projects
On vide les caches :
rm -rf app/cache/* rm -rf app/logs/*
Dans le cas d’une configuration de type virtual hosts, il suffit d’ajouter le vhost suivant à la fin de votre fichier {/etc/httpd/conf/httpd.conf}
ServerAdmin webmaster@local DocumentRoot /var/www/symfony/web ServerName http://urldusite ServerAlias urldusite ErrorLog /var/www/symfony/internal-error.log CustomLog /var/www/symfony/internal-requests.log common DirectoryIndex app.php Options -Indexes FollowSymLinks SymLinksifOwnerMatch AllowOverride All Allow from All
N’oubliez pas de redémarrer apache :
service httpd restart
Il est temps de tester l’url http://urldusite/config.php
Il est possible d’obtenir l’erreur {This script is only accessible from localhost.}
Pour corriger cette erreur, modifiez le fichier script.php dans le répertoire /web de symfony en y ajoutant l’IP publique de l’ordinateur à partir duquel vous essayez de vous connecter :
if (!in_array(@$_SERVER['REMOTE_ADDR'], array(
'127.0.0.1',
'::1',
'Mon adresse IP'
))) {
header('HTTP/1.0 403 Forbidden');
exit('This script is only accessible from localhost.');
}
Ajoutez également votre IP dans le fichier de configuration http://urldusite/app_dev.php
if (isset($_SERVER['HTTP_CLIENT_IP'])
|| isset($_SERVER['HTTP_X_FORWARDED_FOR'])
|| !(in_array(@$_SERVER['REMOTE_ADDR'], array('127.0.0.1', 'fe80::1', '::1', 'MON_IP')) || php_sapi_name() === 'cli-server')
) {
header('HTTP/1.0 403 Forbidden');
Réessayer l’url…Miracle ça fonctionne!
Poursuivez la configuration en cliquant sur {Configure your Symfony Application online} sur l’url http://urldusite/config.php
. Pour la base de donnée, il peut être nécessaire de la créer avant de lancer cet assistant.
Notes:
- la commande php composer.phar install fonctionne également ↩
Classés dans :Symfony
Cet article a été écrit par admin