Jump to content

[TUTO COMPLET] installer son serveur VPS sous NGINX et Débian 8 de A à Z + ISPConfig


Recommended Posts

Après mon tuto pour debian 7 et apache, je vous propose un tout nouveau tutoriel pour créer votre propre serveur VPS mais sous Nginx cette fois ci.

Pourquoi nginx ? Car il est dit que nginx est de 3 à 4 fois plus reactif qu'apache, (mais aussi bien plus complexe à mettre en oeuvre). Avec mon serveur de test, ma latence de départ (le fameux wait) est passée de 1 seconde à 0,2 seconde. un exploit !

Quand à la version de debian, comme la version 8 est prête et qu'elle fonctionne avec les dernières versions de PHP, autant l'utiliser ici.

Histoire d'accelerer encore plus l'ensemble on va utiliser PHP-FPM.

 

Le principe reste le même : En suivant ligne par ligne le tutoriel, vous devez être capable de posséder et de préparer votre propre serveur dédié sans pratiquement de connaissance  linux, et ainsi oublier les fameux "pour avoir un serveur dédié, tu dois impérativement payer un prestataire qui le fera.. ". Cela permet de respecter le fameux principe de prestashop : profiter d'un maximum de gratuité pour que les débutant puissent créer leurs magasins. Mais attention, si vous avez eu du mal avec la version apache, vous allez en avoir encore plus avec ginx. Par contre si vous persévérez et que vous terminez correctement votre serveur, vous allez adorer !

 

EDIT : Changement du tutoriel. Je me rends compte que mon tuto Nginx donnait un serveur ultra rapide et optimisé mais d'une difficulté telle à mettre en place que ce n'était plus ouvert à tout le monde, ce qui n'est pas mon objectif de départ.

On change tout et on passe à une installation hyper simplifiée et générique. Merci à rose pour les lignes de commandes simplifiées

 

NOTE : Nginx ne sait pas lire les fichiers htaccess ! Si vous avez un htaccess spécifique, vous devrez le faire retraduire en directives nginx. Des utilitaires existent pour ça. Certaines bibliothèques ne sont pas compatibles nginx. Attention de bien choisir votre configuration prestashop, au cas ou..

 

Allez c'est parti :

 

1 / On installe en une fois Nginx, mysql, la bibliothèque graphique gd, mcrypt et php-fpm :

apt-get install nginx php5-fpm php5-cli php5-gd php5-mcrypt php5-mysql mysql-server mysql-client

2 / On crée la base de donnée de prestashop en ligne de commande (remplacer les mots en minuscule par les votres):

CREATE DATABASE nomdelabaseprestashop CHARACTER SET utf8 COLLATE utf8_general_ci;GRANT ALL PRIVILEGES ON nomdelabaseprestashop.* TO utilisateurbase@localhost IDENTIFIED BY 'motdepassedelabase';

3 / si vous démarrez de zéro avec un prestashop tout propre = on télécharge prestashop dans le répertoire par défaut :

cd /var/www/default/public_html/wget http://www.prestashop.com/download/prestashop_numerodeversiondésirée.zipunzip prestashop_numerodeversiondésirée.zipmv prestashop/* .rm prestashop_numerodeversiondésirée.ziprmdir prestashop/

4 / on changes les droits de propriétaire du dossier :

chown -R www-data: /var/www/default/public_html/

5 / On crée le fichier de config du site :

nano /etc/nginx/sites-available/nomdudomaine.com

et on copie ceci dedans :

server {  server_name nomdudomaine.com;  listen 80;  root /var/www/default/public_html;   index index.php;  rewrite ^/api/?(.*)$ /webservice/dispatcher.php?url=$1 last;  rewrite ^/([0-9])(-[_a-zA-Z0-9-]*)?/[_a-zA-Z0-9-]*.jpg$ /img/p/$1/$1$2.jpg last;  rewrite ^/([0-9])([0-9])(-[_a-zA-Z0-9-]*)?/[_a-zA-Z0-9-]*.jpg$ /img/p/$1/$2/$1$2$3.jpg last;  rewrite ^/([0-9])([0-9])([0-9])(-[_a-zA-Z0-9-]*)?/[_a-zA-Z0-9-]*.jpg$ /img/p/$1/$2/$3/$1$2$3$4.jpg last;  rewrite ^/([0-9])([0-9])([0-9])([0-9])(-[_a-zA-Z0-9-]*)?/[_a-zA-Z0-9-]*.jpg$ /img/p/$1/$2/$3/$4/$1$2$3$4$5.jpg last;  rewrite ^/([0-9])([0-9])([0-9])([0-9])([0-9])(-[_a-zA-Z0-9-]*)?/[_a-zA-Z0-9-]*.jpg$ /img/p/$1/$2/$3/$4/$5/$1$2$3$4$5$6.jpg last;  rewrite ^/([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(-[_a-zA-Z0-9-]*)?/[_a-zA-Z0-9-]*.jpg$ /img/p/$1/$2/$3/$4/$5/$6/$1$2$3$4$5$6$7.jpg last;  rewrite ^/([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(-[_a-zA-Z0-9-]*)?/[_a-zA-Z0-9-]*.jpg$ /img/p/$1/$2/$3/$4/$5/$6/$7/$1$2$3$4$5$6$7$8.jpg last;  rewrite ^/([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(-[_a-zA-Z0-9-]*)?/[_a-zA-Z0-9-]*.jpg$ /img/p/$1/$2/$3/$4/$5/$6/$7/$8/$1$2$3$4$5$6$7$8$9.jpg last;  rewrite ^/c/([0-9]+)(-[_a-zA-Z0-9-]*)/[_a-zA-Z0-9-]*.jpg$ /img/c/$1$2.jpg last;  rewrite ^/c/([a-zA-Z-]+)/[a-zA-Z0-9-]+.jpg$ /img/c/$1.jpg last;  rewrite ^/([0-9]+)(-[_a-zA-Z0-9-]*)/[_a-zA-Z0-9-]*.jpg$ /img/c/$1$2.jpg last;  try_files $uri $uri/ /index.php?$args;  location ~* \.(jpg|jpeg|gif|css|png|js|ico|html)$ {    access_log off;    expires max;  }  location ~ \.php {    fastcgi_index index.php;    fastcgi_split_path_info ^(.+\.php)(.*)$;    include /etc/nginx/fastcgi_params;    fastcgi_pass unix:/var/run/php5-fpm.sock;    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;  [spam-filter]

6 / on crée le lien pour activer le domaine :

ln -s /etc/nginx/sites-available/nomdudomaine.com /etc/nginx/sites-enabled/nomdudomaine.comet on redémarre : /etc/init.d/nginx restart

7 / Basculez les DNS

Chez OVh, connectez-vous à votre compte et changez les DNS de votre domaine avec ceux de votre serveur.  (24h de délai si vous n’avez pas changez le TTL au préalable)

 

VOUS AVEZ FINI !

 

Si vous avez déjà un site existant, Il ne vous reste plus qu’a transférer votre site via FTP et d’importer votre base de données en ligne de commande SQL. Toutefois, pour une question pratique et pour éviter les bug avec nginx, une installation vierge de prestashop est nettement recommandée

Edited by Jean Francois G (see edit history)
Link to comment
Share on other sites

Astuce pour ceux qui souhaitent faire une importation sans risque d'erreur de nginx ou de phpmyadmin :

 

en ssh :

cd /var

mkdir temp

 

Dans le phpmyadmin de l'ancien serveur, faire une exportation de la bdd en format zip

Copier ensuite ce fichier zip de vitre PC au nouveau VPS dans ce dossier temporaire.

Lancez un

unzip nomdelabase.zip,

qui donnera un fichier nomdelabase.sql

 

dans le nouveau phpmyadmin du vps créer la base de données (par exemple basetoto)

Puis un nouveau uilisateur pour cette base.

 

Ensuite en SSh faites :

 mysql -u utilisateur -p nomdelabasevps < nomdelabase.sql

 

il suffit ensuite de donner le mot de passe de l'utilisateur et l'importation se fait en quelques secondes seulement..

 

puis :

rm nomdelabase.*

 

et le dossier est de nouveau propre

 

De plus on contourne ainsi les limitations ou les erreurs de ginx.

Edited by Jean Francois G (see edit history)
Link to comment
Share on other sites

Bonjour Jean François et merci pour le guide.

 

Mon panneau ipsconfig marche à merveille, cependant je rencontre une anomalie sur l’accès FTP (TLS) (via mon client FileZilla). 

Il m'est impossible de récupérer le répertoire du serveur FTP distant (le vps)

 

voici le log dans /var/log/syslog suite à une connexion via Filezilla (utilisateur crée via le panneau ipsconfig (login+mdp unique)

Aug 18 21:55:27 vpsxxxxx pure-ftpd: ([email protected]) [INFO] New connection from xx.xx.xx.xx
Aug 18 21:55:27 vpsxxxxx pure-ftpd: ([email protected]) [INFO] SSL/TLS: Enabled TLSv1/SSLv3 with AES256-GCM-SHA384, 256 secret bits cipher
Aug 18 21:55:27 vpsxxxxx pure-ftpd: ([email protected]) [INFO] *erek is now logged in

As-tu déjà fait l’expérience de cette erreur ?

 

9uhZk3i.jpg

Edited by octopus23 (see edit history)
Link to comment
Share on other sites

Bonjour

 

Je déplace ce topic dans le forum Installation de prestashop, votre tutoriel relève plus de l'installation d'un serveur et de prestashop que la configuration et utilisation de prestashop.

C'est un tutoriel qui est nécessaire au début pas en cours d'utilisation.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...