Un serveur web fonctionnel en 10 minutes

Un serveur web fonctionnel en 10 minutes

Un serveur web fonctionnel en 10 minutes
 
Nous allons voir comment créer un serveur apache près à héberger un site sous Symfony 2.
Pour commencer la création de votre serveur web mettez à jour vos dépôts :  
apt-get update
apt-get upgrade

Installez apache 2 et certains utilitaires :

apt-get apache2 apache2-utils 

Puis installez Php5 ainsi que certains outils utiles (la galerie GD, l'extension intl conseiller pour synfony 2, imagick, mysql et curl) 

apt-get php5 php5-cli php5-gd php5-intl php5-imagick php5-mysql php5-curl

Installez mysql server (l'installation vous demandera un mot de passe)

apt-get mysql-server

Installez Postfix (le serveur smtp pour envoyer des mails) et ssh

apt-get install postfix
apt-get install ssh

La base du serveur est installée.

Il faut à présent installer les outils de développement et donc les différents gestionnaires de versions. Git est fortement conseillé car il est utilisé par composer, un outil que symfony2 utilise.

N'installez subversion (svn) que si vous l'utilisez (Si vous ne savez pas de quoi je parle ne l'installez pas)

apt-get git-core
apt-get subversion

Un autre outil de dévelopement bien utile est PHPmyadmin pour gérer vos bases de donnés, l'installation est plus complexe:

cd /var/www
wget http://downloads.sourceforge.net/project/phpmyadmin/phpMyAdmin/4.2.7.1/phpMyAdmin-4.2.7.1-all-languages.zip
mv phpMyAdmin-4.2.7.1-all-languages.zip pma.zip
unzip pma.zip //peux etre install unzip
mv phpMyAdmin-4.2.7.1-all-languages/ pma
rm pma.zip

Verifiez que la version de PhpMyAdmin n'as pas changée --> http://www.phpmyadmin.net/home_page/index.php

Phpmyadmin est prèt à être utilisé il suffit juste de dire à apache ou chercher. Nous allons donc configurer apache2.
 
cd /etc/apache2/sites-available
nano 000-default.conf

Modifiez ou ajoutez  DocumentRoot /var/www si ce n'est pas déjà fait.

Activez la réécriture d'url:
a2enmod rewrite

dans le dossier /etc/apache2/sites-available créez un fichier pma.conf pour configurer l'accés à phpmyadmin.

 >> pma.conf
 nano pma.conf

Selons que votre serveur soit en locale  ou sur internet le domaine n'est pas le même. Dans mon cas je suis sur internet donc j'utilise phpmyadmin.ideak.fr mais si j'étais en local j'utiliserais phpmyadmin.dev

<VirtualHost *:80>
        ServerAdmin contact@ideak.fr
        ServerName phpmyadmin.ideak.fr
        ServerAlias phpmyadmin.ideak.fr
        DocumentRoot /var/www/pma

        <Directory /var/www/pma>
                Order allow,deny
                allow from all
        </Directory>

        ErrorLog ${APACHE_LOG_DIR}/error.log

        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.

        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Activez la config de phpmyadmin:

a2ensite pma.conf

Si vous êtes en local ajoutez l'hosts (dans mon cas phpmyadmin.dev) 

nano /etc/hosts 
127.0.0.1  phpmyadmin.dev

sinon créez un sous domaine phpmyadmin et faites le pointer sur votre serveur.

redemarrez apache2
/etc/init.d/apache2 restart

Votre serveur est déjà près vous pouvez aller sur phpmyadmin.dev ou phpmyadmin.mondomaine.fr (attention dans le dernier cas si vous venez de configurer vos DNS cela peux prendre du temps (1 jour))

Dans mon cas je vais donc sur phpmyadmin.ideak.fr puis je rentre l'utilisateur root suivie du mot de passe que j'ai donné à mysql
Pour la suite je vais vous montrer comment mettre en place votre 1er projet (SF2)
J'importe la BDD de mon projet sur mon phpmyadmin.ideak.fr
j'utilise SVN pour importer mon projet (vous pouvez utiliser git (git clone ...))
utilisez svn ou git pour rapatrier le projet
cd /var/www 
svn co svn://svn.ideak.fr/subversion/ideak ideak

Puis configurez apache pour votre projet

config apache2 comme pma
cd /etc/apache2/sites-available
>> ideak.conf
nano ideak.conf

 

Entrer les informations suivantes (Attention à pointer sur le dossier web dans Symfony)
<VirtualHost *:80>
        ServerAdmin contact.ideak.fr
        ServerName ideak.fr
        ServerAlias ideak.com
        DocumentRoot /var/www/ideak/Symfony/web

        <Directory /var/www/ideak/Symfony/web/>
                Order allow,deny
                allow from all
        </Directory>

        ErrorLog ${APACHE_LOG_DIR}/error.log

        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.

        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Continuer en activant le site:

a2ensite ideak.conf
/etc/init.d/apache2 restart
cd /var/www/ideak/symfony

Si vous n'avez pas encore composer dans votre projet installé le:

php -r "readfile('https://getcomposer.org/installer');" | php

sinon mettez le à jour:

./composer.phar self-update

Dans mon cas les vendor sont local et les caches et logs sont ignorés par mon gestionnaire de version, donc je dois les créer:

mkdir app/cache
mkdir app/logs

Vider le cache

Vous pouvez être amené à modifier /etc/php5/cli/php.ini pour faire fonctionner composer et à ajouter la ligne suivante:
suhosin.executor.include.whitelist = phar

Profiter en pour modifier une ligne nécessaire au bon fonctionnement de Symfony 2 :

date.timezone = Europe/Paris

Modifier cette dernière ligne aussi dans  /etc/php5/apache2/php.ini

Enfin de retour dans votre projet Symfony ont le mais à jour:
./composer.phar update

Videz le cache

Puis mettre à jour votre base de données :
php app/console doctrine:schema:update --force

Videz le cache et générez les liens web (assets):

php app/console assets:install web/ --symlink

On finit par configurer Postfix dans le cas ou vous êtes en local

nano /etc/postfix/main.cf

Ajouter ou modifier la ligne :

relayhost = smtp.orange.fr // ou autre

 

Votre serveur est prêt !

Fait par : Joris Saenger

Commentaires (0)

Ajouter un commentaire