Jump to content

(TUTO) Installer un serveur VPS pour PrestaShop DE A à Z sous Debian 10 et ispconfig


Recommended Posts

Installer de A à Z son Serveur  VPS ou dédié sur debian 10 + ISPCONFIG

(Version PHP : 7.3 pour etre le plus compatible en versions PS)

' Ce nouveau tuto est une version entièrement réadaptée aux nouvelles versions de débian. L'ancien commencant a poser plus de soucis sous les nouvelles versions qu'il n'en résolvait (cela dit il est encore valable pour les debian de 5 à 7) '

 par Jean François G

 

(Dans cet exemple nous choisissons un serveur VPS OVH mais le tuto est valable pour tous les serveurs VPS et même les serveurs 100% dédiés.)

Un petit mot avant de commencer :

Vous lirez dans plein de topics : "Si tu n'es pas un administrateur de génie, alors ne tente pas l'expérience des serveurs dédiés car c'est impossible. Tu dois faire appel à un professionnel payant."

Nous allons tenter ici de casser ce discours et de faire en sorte que vous puissiez vous aussi avoir votre serveur dédié avec juste un minimum de connaissances.

 Lorsque votre opérateur vous livre votre VPS, sa version de débian est "nue" (Sauf cas spéciaux). C'est à dire que le serveur démarre, charge linux, comprend le html... mais c'est à peu prêt tout. Pour le reste c'est une coquille vide qui attend patiemment que quelqu'un vienne lui dire quoi faire. Il va donc falloir que ce soit vous qui le lui disiez.

Dans ce tuto vous allez apprendre à installer les fichiers nécessaires pour que le serveur comprenne le PHP, utilise une base de donnée et supporte les fonctions utiles à prestashop, mais aussi le sécuriser, le clôturer et punir les méchants qui souhaiteraient lui faire du mal..

Vous allez également installer un gestionnaire graphique de serveur, accessible depuis internet, afin de pouvoir gérer celui ci plus facilement sans avoir besoin d'en apprendre les lignes de commandes. J'ai choisi ISP-Config car il à l'avantage d'être 100% gratuit et assez simple à comprendre.

Pour les novices, comptez environ 1h30 à 2 heures pour tout faire.. Alors ... c'est parti 

Infos importantes :

- Ce serveur ne contiendra pas de serveur Mail,ni de serveur DNS. Nous partons du principe que si vous lisez ces lignes vous n’êtes pas un admin réseau et donc que la notion de DNS, serveur de nom, et serveur mail est encore un peu flou pour vous.. Vos mails seront donc gérés par votre hébergeur de nom de domaine et les DNS aussi (en toute logique). Les envois de prestashop se feront par la commande mail de débian par défaut .

- Ce nouveau tuto est une version entièrement réadaptée aux nouvelles versions de débian. L'ancien commencant a poser plus de soucis sous les nouvelles versions qu'il n'en résolvait (cela dit il est encore valable pour les debian de 5 à 7)

- Les lignes de commandes sont entre des caractères comme << ou >> ou encore " " . Bien sur on ne les tapent pas, ils ne sont la que pour faire comprendre que c'est une ligne de commande......

- Notez que pour tous mes dédiés ou mes VPS je crée toujours des scripts de sauvegardes journalières sur un hebergement externe, lancés via une tâche CRON. Mais ce tuto est pour les novices, donc je leur conseille pour débuter de prendre l'option de sauvegarde automatique du loueur du VPS ou du dédié. Ils en ont forcement une. (si j'ai le temps je vous ferais un tuto pour expliquer les scripts de sauvegarde, mais ce n'est pas une mince affaire :)  )

PRELIMINAIRE :

Nous allons avoir besoin des données que nous avons reçu d’OVH lors de la création du VPS.

Notamment son nom (vpsxxxxx.ovh.net)

Le mot de passe root pour le ssh (ou le login-user avec les droits root et son mot de passe)

L’adresse IP du serveur

 

1 / Si vous avez déjà tenté quelque chose sur votre VPS il faut le réinstaller.  :

Vous devez vous rendre dans votre espace d'administration de votre compte sur le site de votre hebergeur (Pour exemple ici, un VPS OVH)

Dans votre espace utilisateur repérer l’onglet « serveurs privés virtuels »

En haut à droite une case est marquée "REINSTALLER"

Vous choisissez la version de Débian 10

  

2/ Préparation du serveur :

Nous allons tout paramétrer par SSH. Donc il faut télécharger un programme pour cela. Par exemple le logiciel Putty : http://www.clubic.co...0874-putty.html

 Lancez  putty, puis connectez vous sur l’IP de votre serveur.

 Une fenêtre noir apparait, c’est la que tout se passe.

·         Tapez votre login : root (Ou le user ayant les droits)

Puis votre mot de passe reçu sur le mail de confirmation que vous venez de recevoir.

 

Nous allons utiliser un éditeur de fichier pour paramétrer notre serveur.

Debian est normalement fourni avec l'utilitaire nano. Il est parfait pour faire notre paramétrage et en plus est complet.

Pour savoir s'il est bel et bien déja préinstallé, il suffit de taper l'ordre "Nano"'

Si un éditeur noir s'affiche, c'est tout bon. un CTRL X reviendra aux lignes de commandes.

Si un message d'erreur s'affiche alors allez au chapitre 2b, effectuez les modifs et revenez ici après :)

A noter que :

- pour annuler la saisie : CTRL Z

- Pour enregistrer le fichier : CTRL X, puis Y pour confirmer et ENTREE pour valider le nom de fichier

- Pour débloquer si l'on a fait une mauvaise manip : CTRL C

2a : Verifier le hostname

Une fois logué en root, la première chose à faire est de vérifier que votre host est bien configuré (notamment si vous n'êtes pas sur un serveur VPS OVH, ou si vous êtes sur un vrai dédié :

"nano /etc/hostname"

Vous vérifiez que le nom de votre serveur est présent et bien complet, sinon vous corrigez.

 

2b : Changer le mot de passe du root 

Pour mieux vous rappeler du mdp root, nous allons le changer. Tapez

« passwd root »

Et choisissez un mot de passe qui vous plait.

(Si vous n’avez pas accès au compte ROOT, vous pouvez changer le MDP de l‘utilisateur avec pouvoir bien sur.. )

POUR INFORMATION SEULEMENT, VOICI COMMENT CREER UN AUTRE UTILISATEUR AVEC DROITS ROOT (Certains veulent le faire, d’autres non.. A vous de voir) :

Créer un nouvel utilisateur classique d’abord :

« sudo adduser nomutilisateur »

Ensuite on lui injecte les droits root :

« sudo usermod -aG sudo nomutilisateur »

 Et enfin on vérifie si ça a fonctionné :

« su nomutilisateur » (Si tout est ok, vous pouvez vous déconnecter et reconnecter avec ce nouveau user avec droits)

Notez qu’une fois sous ce nouveau login, pour ne plus avoir à taper le mot sudo, il suffit de taper cette ligne de commande :

« sudo –s »

 

2c : Faire la mise à jour

" apt-get update ", validez

Si erreur "There is no public key available for the following key IDs" :

·         apt-get install debian-archive-keyring

·         apt-key update

 

Normalement à ce stade on met à jour notre linux, mais pour éviter des erreurs plus tard nous allons dès maintenant installer des appli critiques :

 Installation de dialog (au cas ou) : "apt-get install dialog"

puis les taches cron : "apt-get install cron"

puis les complément de apt : " apt-get install apt-utils"

Puis on met à jour notre linux

“apt-get upgrade”, validez 

 

Maintenant que le système est à jour, on va pouvoir travailler correctement

 

2d : Configurer la langue et les caractères

Par défaut, le serveur peut être configuré pour une autre langue que FR (souvent en_EN.utf8), nous allons le paramétrer pour les caractères français :

« dpkg-reconfigure locales »

Un panneau apparait. Faites naviguer la liste et cochez fr_FR.UTF-8, puis tab et validez

Dans région par défaut, choisissez « fr_FR.UTF-8 »

Nous avons donc configuré la langue française et le type de caractère à UTF-8 (ça tombe bien c'est ce qu'utilise prestashop)

Note : Si le message "no locales installed on this server" apparait, lancez l'installation avec un "apt-get install locales" puis recommencez le chapitre 2

 

2e : Installer les programmes obligatoires

Installation de Maria-db (equivalent à mysql en plus rapide), d’open-SSL, de curl (qui contient des protocoles essentiels), FTP (pour de futurs sauvegardes externes) et rkhunter (un anti rootkit) :

"apt-get -y install mariadb-client mariadb-server openssl curl ftp rkhunter"

Ensuite on configure Maria-db de base :

mysql_secure_installation

Il vous demandera si vous souhaitez changer le mot de passe : Y

Puis vous donnez un nouveau mdp et vous répondez Y à toutes les autres questions.

2eb : Si vous souhaitez administrer mysql depuis l’extérieur

Par defaut mysql n’écoute que le localhost. Pour y acceder de l’exterieur vous devez lui donner l’autorisation :

« nano /etc/mysql/mariadb.conf.d/50-server.cnf »

Puis commenter la ligne « bind-address           = 127.0.0.1 » en ajoutant un dièse devant pour donner

#bind-address           = 127.0.0.1

 

2-f : Installation d’apache et de PHP

« apt-get -y install apache2 apache2-doc apache2-utils libapache2-mod-php php7.3 php7.3-common php7.3-gd php7.3-mysql php7.3-imap php7.3-cli php7.3-cgi libapache2-mod-fcgid apache2-suexec-pristine php-pear mcrypt  imagemagick libruby libapache2-mod-python php7.3-curl php7.3-intl php7.3-pspell php7.3-recode php7.3-sqlite3 php7.3-tidy php7.3-xmlrpc php7.3-xsl memcached php-memcache php-imagick php-gettext php7.3-zip php7.3-mbstring memcached libapache2-mod-passenger php7.3-soap php7.3-fpm php7.3-opcache php-apcu libapache2-reload-perl»

puis on active les différents modules :

"a2enmod suexec rewrite ssl actions include dav_fs dav auth_digest cgi headers actions proxy_fcgi alias"

 

Et on relance le service

« systemctl restart apache2»

 

3 - Installation du serveur FTP :

 On va utiliser pure-ftpd qui fonctionne très bien.

« apt-get install pure-ftpd-common pure-ftpd-mysql »

« nano /etc/default/pure-ftpd-common »

 

On change sur ce fichier la ligne VIRTUALCHROOT=false, en VIRTUALCHROOT=true

Et on sauve

Puis on relance le service

 « /etc/init.d/pure-ftpd-mysql restart »

 

4 - Installation de phpmyadmin :

Il n’y a plus de package phpmyadmin dans debian 10. On doit tout installer manuellement (merci debian)

Création des répertoires :

"mkdir /usr/share/phpmyadmin

mkdir /etc/phpmyadmin

mkdir -p /var/lib/phpmyadmin/tmp

chown -R www-data:www-data /var/lib/phpmyadmin

touch /etc/phpmyadmin/htpasswd.setup"

On telecharge le source :

"cd /tmp wget https://files.phpmyadmin.net/phpMyAdmin/4.9.0.1/phpMyAdmin-4.9.0.1-all-languages.tar.gz"

et on décompresse l’ensemble :

"tar xfz phpMyAdmin-4.9.0.1-all-languages.tar.gz

mv phpMyAdmin-4.9.0.1-all-languages/* /usr/share/phpmyadmin/

rm phpMyAdmin-4.9.0.1-all-languages.tar.gz

rm -rf phpMyAdmin-4.9.0.1-all-languages"

On crée le fichier de configuration par defaut:

"cp /usr/share/phpmyadmin/config.sample.inc.php  /usr/share/phpmyadmin/config.inc.php"

et on l’ouvre :

"nano /usr/share/phpmyadmin/config.inc.php"

Dans le fichier on va insérer un mot de passe pour les cookies (32 caractères) sur cette ligne :

$cfg['blowfish_secret'] = 'votremotdepassede32caracteres'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */

Puis il faut insérer cette ligne tout en bas du fichier pour lui dire ou se trouve le dossier temporaire:

$cfg['TempDir'] = '/var/lib/phpmyadmin/tmp';

Maintenant on crée un fichier de config personnalisé :

"nano /etc/apache2/conf-available/phpmyadmin.conf"

et on copie ceci dedans (sans les premiers et derniers tirets, ce n'est que esthétique pour vous)

----------

# phpMyAdmin default Apache configuration

Alias /phpmyadmin /usr/share/phpmyadmin

<Directory /usr/share/phpmyadmin>
 Options FollowSymLinks
 DirectoryIndex index.php

 <IfModule mod_php7.c>
 AddType application/x-httpd-php .php

 php_flag magic_quotes_gpc Off
 php_flag track_vars On
 php_flag register_globals Off
 php_value include_path .
 </IfModule>

</Directory>

# Authorize for setup
<Directory /usr/share/phpmyadmin/setup>
 <IfModule mod_authn_file.c>
 AuthType Basic
 AuthName "phpMyAdmin Setup"
 AuthUserFile /etc/phpmyadmin/htpasswd.setup
 </IfModule>
 Require valid-user
</Directory>

# Disallow web access to directories that don't need it
<Directory /usr/share/phpmyadmin/libraries>
 Order Deny,Allow
 Deny from All
</Directory>
<Directory /usr/share/phpmyadmin/setup/lib>
 Order Deny,Allow
 Deny from All
</Directory>

-----------

On sauvegarde le fichier et hop !

On active l’ensemble :

"a2enconf phpmyadmin systemctl restart apache2"

Pour que phpmyadmin fonctionne, il lui faut sa base par défaut. Allons y :

"mysql -u root -p"

(entrez le mot de passe de maria) puis création du fichier :

CREATE DATABASE phpmyadmin;

Puis on crée un utilisateur avec pouvoir sur les bases:

CREATE USER 'utilisateur'@'localhost' IDENTIFIED BY 'votremotdepasse';

(utilisateur et votremotdepasse sont a mettre à votre sauce bien sur) puis on lui donne les droits :

GRANT ALL PRIVILEGES ON *.* TO 'utilisateur'@'localhost' IDENTIFIED BY 'votremotdepasse' WITH GRANT OPTION;

FLUSH PRIVILEGES;

EXIT;

Maintenant on charge la base nouvellement créé (il faudra encore taper le mot de passe):

"mysql -u root -p phpmyadmin < /usr/share/phpmyadmin/sql/create_tables.sql"

Dernière étape : Finaliser le fichier de config

"nano /usr/share/phpmyadmin/config.inc.php"

Puis on enleve les commentaires pour activer les lignes :

/* User used to manipulate with storage */
$cfg['Servers'][$i]['controlhost'] = 'localhost';
$cfg['Servers'][$i]['controlport'] = '';
$cfg['Servers'][$i]['controluser'] = 'user';
<- A changer par celui de mariadb
$cfg['Servers'][$i]['controlpass'] = 'password';  <- A changer par celui de mariadb

/* Storage database and tables */
$cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';
$cfg['Servers'][$i]['bookmarktable'] = 'pma__bookmark';
$cfg['Servers'][$i]['relation'] = 'pma__relation';
$cfg['Servers'][$i]['table_info'] = 'pma__table_info';
$cfg['Servers'][$i]['table_coords'] = 'pma__table_coords';
$cfg['Servers'][$i]['pdf_pages'] = 'pma__pdf_pages';
$cfg['Servers'][$i]['column_info'] = 'pma__column_info';
$cfg['Servers'][$i]['history'] = 'pma__history';
$cfg['Servers'][$i]['table_uiprefs'] = 'pma__table_uiprefs';
$cfg['Servers'][$i]['tracking'] = 'pma__tracking';
$cfg['Servers'][$i]['userconfig'] = 'pma__userconfig';
$cfg['Servers'][$i]['recent'] = 'pma__recent';
$cfg['Servers'][$i]['favorite'] = 'pma__favorite';
$cfg['Servers'][$i]['users'] = 'pma__users';
$cfg['Servers'][$i]['usergroups'] = 'pma__usergroups';
$cfg['Servers'][$i]['navigationhiding'] = 'pma__navigationhiding';
$cfg['Servers'][$i]['savedsearches'] = 'pma__savedsearches';
$cfg['Servers'][$i]['central_columns'] = 'pma__central_columns';
$cfg['Servers'][$i]['designer_settings'] = 'pma__designer_settings';
$cfg['Servers'][$i]['export_templates'] = 'pma__export_templates';

 

5 - Installation d'autres modules, optionnels mais fortement conseillés (comme unzip par exemple):

 « apt-get install unzip bzip2 arj nomarch lzop cabextract apt-listchanges libnet-ldap-perl libauthen-sasl-perl daemon  zip »

On active les redirections

“a2enmod suexec rewrite ssl actions include”
“a2enmod dav_fs dav auth_digest”

 On relance le service :

 « /etc/init.d/apache2 restart »

 

6 - Installation de fail2ban :

« apt-get install fail2ban »

Puis on crée les fichiers de configuration pour chaque service

« nano /etc/fail2ban/jail.local »

Et on rempli avec ceci :

 [ssh]

enabled  = true
port     = ssh
filter   = sshd
logpath  = /var/log/auth.log

bantime = 86400
maxretry = 2

 [pure-ftpd]

enabled  = true
port     = ftp,ftp-data,ftps,ftps-data
filter   = pure-ftpd
logpath  = /var/log/syslog

bantime= 7400
maxretry = 3

 

Moi j'ai été hard, j'ai mis 2 tentative maximum en erreur car les russes ont bien compris que tout le monde mettait 5 et ils tentent que 3 fois par 20 minutes...

Vous pouvez remonter à 5 si vous avez peur de vous tromper vous même ... Mais bon si vous connaissez vos codes, normalement c'est zero mauvaises tentatives...

 

7 - INSTALLATION D'ISPCONFIG :

cd /tmp

wget http://www.ispconfig.org/downloads/ISPConfig-3-stable.tar.gz

tar xfz ISPConfig-3-stable.tar.gz

cd ispconfig3_install/install/

php -q install.php

Si à la fin de cette configuration d'isp config vous avez un message d'alerte noté :

NameVirtualHost *:443 has no VirtualHosts

 

Lancez cette ligne de commande :

"ln -s /etc/apache2/sites-available/default-ssl /etc/apache2/sites-enabled/000-default-ssl"

 

Cela corrigera le fait qu'il n'y a pas de virtualhost SSL d'activé.

 

L’installation de base est terminée.

 

Pour acceder a ispconfig (login « admin » et mot de passe que vous avez choisi) :

votrenomdeVPS.ovh.net :8080 (ou votre hostname:8080 ou votreIP:8080)

 

Pour acceder à phpmyadmin

Votrenomdevps.ovh.net/phpmyadmin (ou votre hostname/phpmyadmin ou votreIP/phpmyadmin)

 

 

8/ Réglages essentiels de sécurité 

 

8a : Edition de php.ini pour autoriser l’importation des gros fichiers dans phpmyadmin :

« nano /etc/php/7.3/apache2/php.ini »

En face de max_input_vars, mettre 20000 et enlever le dièse si necessaire(Pour les fichiers de traduction de prestashop)

Et mettez 20M en face de upload_max_filesize =

 

!! Attention !! si vous choisissez le mode PHP-CGI ou FPM pour vos site vous devez faire la même chose dans le dossier /etc/php/7.3/CGI ou  /etc/php/7.3/FPM

 

On relance le serveur :  /etc/init.d/apache2 restart

 

8b : securiser et changer le port d’accès pour ispconfig

« nano /etc/apache2/sites-available/ispconfig.vhost »

 

Vous trouverez ceci :

 

Listen 8080

NameVirtualHost *:8080

<VirtualHost _default_:8080>

<IfModule mod_fcgid.c>

 

À changer en ceci si vous voulez le port 7654 à la place du 8080 :

 

Listen 7654

NameVirtualHost *:7654

<VirtualHost _default_:7654>

<IfModule mod_fcgid.c>

 Puis on change le vhost d’ispconfig (normalement c’est déja fait puisque c’est un fichier virtuel, mais on ne sait jamais)

nano /etc/apache2/sites-enabled/000-ispconfig.vhost

 Et on fait pareil

 

 

8c : Changer l’adresse d’accès de phpmyadmin

«nano /etc/apache2/conf-available/phpmyadmin.conf »

 

Vous trouverez ceci :

Alias /phpmyadmin /usr/share/phpmyadmin

 

A changer en ceci (ou monraccourci = l’adresse souhaitée)

Alias /monraccourci /usr/share/phpmyadmin

 

Et on relance pour valider tout ça :

"systemctl restart apache2"

 

9 : Parametrer un nouveau site dans ISPCONFIG

Dans ISP CONFIG :

/ Enlever les prefixes :

Si on ne compte pas utiliser son dédier pour vendre des sites web a des clients, on peut enlever les préfixes automatiques que ISP config met dans les paramètres.

Onglet « system » : « Interface config » : onglet « sites »

Supprimer tous les préfixes déjà préconfigurés. Cela évitera de ne plus se rappeler des différents login que ispconfig aurait modifié lui-même.

/ Créer son propre compte client :

Histoire de ne pas avoir de messages de rappel a répétition ou de zones vides dans la config.

 

Onglet « Client »

« Ajouter un nouveau client » et on renseigne les zones

/ On crée l’espace du futur site web :

 

Onglet « Site »: « Add new site »

Sous onglet « domaine » :

- Serveur : sélectionner son serveur

- Client : le fameux client créé précédemment

- Adresse ip : * (choisir l’etoile et ne pas choisir l’adresse IP du serveur, sauf si vous ne voulez jamais rajouter d’autres sites. En gros laisser l’étoile)

- Domaine : nomdomaine.com (ne pas mettre le www.)

- De CGI à SuEXEC, remplissez selon les technologies utilisées

- Auto sous-domaine : *.

- SSL : cochez si vous administrez via SSL

- ]PHP : choisissez votre fonctionnement de PHP (fast-CGI)

- Actif : Coché (évidemment)

Et : ENREGISTRER

/ On crée l’utilisateur FTP pour le site :

Onglet « site » : Sous onglet « utilisateur FTP »
+ Nouvel utilisateur FTP : puis
Site web : on choisi le domaine concerné

Nom d’utilisateur : Choisir un login (qui ne sera pas modifié puisqu’on a supprimé les préfixes)

Choisir un mot de passe

Quota de disque : -1 (c’est vous donc pas de restriction)

Actif : ben oui

On peut maintenant accéder via FTP a l’espace web et uploader le site dans le dossier « web »

/ La base de données :

Je passe par PHPmyadmin pour créer ma base de données puis l’importation pour transférer les tables .

Sous phpmyadmin créez une nouvelle base de donnée (rappelez vous de son nom pour plus tard), puis dans cette base de données, grâce à l’onglet « importer », restaurez votre sauvegarde SQL que vous avez faite via votre mutualisé. Pour cela cliquez sur parcourir et allez cherchez le fichier Zip ou sql (c’est selon) puis cliquez sur « executer ». Ca mouline …. On attends (ça peut durer longtemps) … et hop c’est bon.

Dans privileges, créez un nouvel utilisateur, donnez lui un nom, laissez « tout serveur », donnez lui un mot de passe, et les privilèges passe partout. (vous pouvez aussi donnez tous les droits sur cette base uniquement, en cliquant sur le choix plus bas, plus facile mais c’est plus risqué) . Cliquez sur « éxecuter »

La base est prête

 

10 / Pointer votre DNS de domaine sur votre serveur 

Chez votre registar, accédez au zones DNS, puis dans la zone A, mettez votre serveur vps.xxxxx.ovh.com ou votre adresse IP de serveur

Dans la zone MX, faites pareil (si vous voulez gérer vos mails sur votre serveur)

 

 

11 / Sécuriser son accès SSH

Actuellement votre accès à distance est sur ROOT sur le port  22, c'est à dire sur l'utilisateur maître (un dieu en somme) sur le port par défaut.

Nous allons changer cela afin de compliquer une éventuelle tentative d'utilisation de votre SSH par un tiers.

 

11a : Changement du port d'accès :

 Avec putty, accedez à votre serveur et loguez vous en root.

puis :

"nano /etc/ssh/sshd_config"

 

vous allez avoir ceci :

 # What ports, IPs and protocols we listen for
Port 22
# Use these options to restrict which interfaces/protocols sshd will bind to
#ListenAddress ::
#ListenAddress 0.0.0.0
Protocol 1 (Quelques fois protocol 2)

à changer en ceci (ou 7654 est à changer dans le numéro de port que vous souhaitez) :

 # What ports, IPs and protocols we listen for

Port 7654
# Use these options to restrict which interfaces/protocols sshd will bind to
#ListenAddress ::
#ListenAddress 0.0.0.0
Protocol 2

 

et sauvegardez

 

11b : Maintenant nous allons créer un utilisateur autre que root:

 

Création de l'utilisateur :

 "adduser teteatoto"

 Pas bien compliqué ça ... Mais pour l'instant root peut toujours accéder au SSH

 

11c : Interdiction du SSH à root  et autorisation d'accès à teteatoto

 Attention : Cette étape va interdire le login SSH de root, ne vous trompez pas concernant le nouveau nom d'utilisateur. Si vous l'oubliez = Réinstallation

 

"nano /etc/ssh/sshd_config"

 vous allez avoir ceci :

 

# Authentication:

LoginGraceTime 120
PermitRootLogin yes
StrictModes yes
 

à changer en ceci :

# Authentication:
LoginGraceTime 120
PermitRootLogin no
StrictModes yes
AllowUsers teteàtoto

 

sauvez le fichier

relancez le service :

 "/etc/init.d/ssh restart"

 

Dorénavant pour accéder au serveur en ssh vous devrez vous loguer en tant teteatoto (et mot de passe de teteatoto), puis dès que vous accedez à la ligne de commande, vous devrez demander les droits du root pour travailler à sa place avec la lignes suivante :

 "su -"

 Il sera demandé le mot de passe du root et une fois fait, hop vous avez pris sa place

 

12 / VERIFIER QUE LE MODULE MOD_EXPIRES EST BIEN ACTIF

 

Pour gagner de la vitesse dans l'affichage des pages il est important que les navigateurs sachent quand ils doivent recharger les images et quand les prendre dans le cache. Pour cela c'est le module 'expires' qui donne les instructions.

Debian n'active pas toujours ce module par défaut, alors dans le doute on va le vérifier et si besoin l'activer :

On lance la commande suivante :

"a2enmod expires"

 

Si on à la réponse 'expires already enabled' alors on est bon, rien besoin de rajouter.

 

Si la réponse est 'Enabling module expires. To activate the new configuration, you need to run:   service apache2 restart' Alors on écoute et on tape sagement :

"service apache2 restart"

 

Et hop, google vous dira merci.
 

Derniers petits chargements :

Je rajoute quelques utilitaires qui seront bien utiles si vous voulez décompresser des fichiers de sauvegardes ou bien en créer ou les transférer sur une autre serveur..

"apt-get install unzip zip ftp"

 

Comme son nom l'indique unzip decompresse des archives zip, son petit frère zip les crée, et ftp est le mode ligne de commande pour transférer sur un ftp distant. Il ne reste plus qu'a créer le script qui va bien..

 

ASTUCE : IMPORTER UNE BASE EXISTANTE MYSQL :

 

Astuce pour ceux qui souhaitent faire une importation sans risque d'erreur d'un PHP.ini ou de phpmyadmin (on va faire simple, sans transferts SSH compliqués ou pour que ceux qui ne connaissent pas les transferts SFTP puissent le faire autrement et facilement en FTP classique. Donc on ne va pas travailler dans un dossier interne du serveur mais on va passer par un dossier temporaire du site web. C'est parti :

Via le FTP, on crée un dossier "tempo" à la racine du site web

Dans le phpmyadmin de l'ancien serveur ou de l'hebergement mutualisé, faire une exportation de la bdd en format zip (pas gzip)

Copier ensuite ce fichier zip de votre PC dans le site sur le VPS ou le dédié,  dans ce dossier temporaire fraichement créé. Ensuite vous fermez votre FTP.

Techniquement parlant le fichier se trouvera donc dans /var/www/nomdusite.com/web/tempo

Ouvrez une session SSH avec putty et allez dans ce dossier sur le serveur

"cd /

cd /var/www/nomdusite.com/web/tempo" (vous remplacer bien sur nomdusite.com par votre propre domaine.

Lancez un

"unzip nomdelabase.zip"

ce 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 avec les droits complets.

 

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..

 

Une fois l'importation terminée, et après avoir bien vérifié sous phpmyadmin que tout est la, vous pouvez rouvrir votre FTP et supprimer le dossier TEMPO du site avec tout ce qu'il contient. 

 

et le dossier est de nouveau propre

De plus on contourne ainsi les limitations des PHP.ini ce qui sécurise encore un peu plus et permet de laisser le upload_max_filesize par défaut..

 

 ---------------------------------------------------------------------------------------------------------

et voila. Vous avez terminé

Il n'y a plus qu'a vous lancer dans l'expérience !

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

  • razaro changed the title to Installer un serveur VPS pour PrestaShop DE A à Z sous Debian 10 et ispconfig
  • Jean Francois G changed the title to (TUTO) Installer un serveur VPS pour PrestaShop DE A à Z sous Debian 10 et ispconfig

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...