«

»

Août 08 2015

[TUTO]: Mettre en place un serveur Web sous CentOS (Apache, MySQL, PHP, VsFTPd)

Bonjour à tous, dans ce tutoriel nous allons voir comment mettre en place un serveur Web sous CentOS utilisant:

Apache, PHP, MySQL et VsFTPd comme serveur FTP et aussi PHPMyAdmin

Installation de Apache, PHP et MySQL.

Sur votre serveur donc, ouvrez un terminal et tapez les commandes suivantes:

yum update
yum install httpd php-* mysql-server -y

Une fois l’installation terminé tapez les commandes suivantes pour démarrer les services httpd et MySQL

service httpd start
service mysql start

Configuration de MySQL

Nous nous allons maintenant lancer un script afin de configurer MySQL

mysql_secure_installation

Suivez les étapes, afin de créer un mot de passe root por votre serveur MySQL et supprimer les bases de données de test.

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MySQL
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!


In order to log into MySQL to secure it, we'll need the current
password for the root user.  If you've just installed MySQL, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none):
OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MySQL
root user without the proper authorisation.

Set root password? [Y/n] y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
 ... Success!


By default, a MySQL installation has an anonymous user, allowing anyone
to log into MySQL without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] y
 ... Success!

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] y
 ... Success!

By default, MySQL comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] y
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] y
 ... Success!

Cleaning up...



All done!  If you've completed all of the above steps, your MySQL
installation should now be secure.

Thanks for using MySQL!

Configuration d’ Apache

Maintenant que de votre serveur MySQL est prêt, nous allons créer un utilisateur auquel nous allons associer:

  • Un site web stocké dans son /home/
  • Une base de données
  • Un compte FTP

Je vais donc créer un utilisateur denis.

useradd -s /sbin/nologin denis
passwd denis
Changing password for user denis.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.

Puis nous allons créer un dossier pour les pages Web:

mkdir /home/denis/www

La prochaine étape, va être de créer un VirtualHost sous Apache, qui va pointer sur /home/denis/www.

Donc allez dans le dossier /etc/http d/conf.d/ et créez un fichier denis.conf.

<VirtualHost *:80>
 DocumentRoot /home/denis/www
 ServerName www.web-tuto.denirosenkranz.com
 ServerAlias web-tuto.denisosenkranz.com
 DirectoryIndex index.html index.php
</VirtualHost>

Dans cet exemple vous pouvez voir que j’ai créer un virtualhost tournant le port 80 avec comme nom: web-tuto.denisosenkranz.com.

Dans Apache c’est ce qe l’on appelle un Name Based VirtualHost, cela veut dire que si vous avez plusieurs VirtualHost sur votre serveur en fonction de l’URL que vous mettez dans votre navigateur vous serez redirigé vers un site spécifique.

Cela permet donc d’heberger sur un serveur une multitude de sites.

Une fois le fichier enregistré, redémarrez Apache

service httpd restart

Vous pouvez verifier que votre virtualhost fonctionne bien avec la commande

httpd -S
VirtualHost configuration:
wildcard NameVirtualHosts and _default_ servers:
*:80                   www.web-tuto.denirosenkranz.com (/etc/httpd/conf.d/denis.conf:1)
Syntax OK

Nous allons maintenant vérifier si notre VirtualHost fonctionne:

Allez dans le dossier www que nous avons créer (dans mon cas /home/denis/www) et créez un fichier index.html avec un texte dedans:

vi /home/denis/www/index.html

Pour ma part j’ai mis ce texte dedans:
Page de test WEB-TUTO.DENISROSENKRANZ.COM

Enregistrez la page et tapez la commande suivante afin de pouvoir acceder á votre page

#On donne les bonnes permissions
chmod -R 755 /home/denis
#On ajoute denis dans le groupe apache
usermod -a -G apache denis
#On rajoute le groupe apache pour le dossier www
chgrp -R apache /home/denis/www

Si nous n’avez pas d’enregistrement DNS qui pointe sur votre serveur web, vous pouvez tester votre VirtualHost en éditant votre fichier hosts comme ceci:

#IP de votre serveur	Nom de votre virtual-host
192.168.2.50	web-tuto.denisrosenkranz.com	www.web-tuto.denisrosenkranz.com

Ouvrez votre navigateur et allez a l’URL de votre site.

Votre vhost es OK

Votre vhost es OK

Maintenant que votre site est fonctionnel nous allons installer VsFTPd pour que vous puissiez y uploader (téléverser :P) votre contenu.

Tapez la commande suivante pour installer VsFTPd:

yum install vsftpd -y

Une fois le logiciel installé, éditez son fichier de configuration /etc/vsftpd/vsftpd.conf

Et rajoutez ces trois lignes á la fin:

chroot_local_user=YES
user_sub_token=$USER
local_root=/home/$USER/www

Cette configuration va permettre de faire en sorte que vos utilisateurs une fois connecté en FTP ne vont pouvoir accéder que a leur dossier www avec leurs  compte Linux.

Démarrez VsFTPd et tester la connexion FTP avec votre client FTP préféré.

service vsftpd restart

Création de la base de données.

Nous allons créer une base de données appelée denisdb et l’associéeà un utilisateur denis.

Connectez vous donc a MySQL avec l’utilisateur root.

mysql -u root -p
Enter password:

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 12
Server version: 5.1.73 Source distribution

Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

Nous allons créer la base de données avec la commande suivante:

#On créer la base de données
mysql> CREATE DATABASE denisdb;
Query OK, 1 row affected (0.00 sec)

#On donne l'accès complet à la base de données a denis avec le mot de passe denispassword
mysql> GRANT ALL PRIVILEGES ON denisdb . * TO 'denis'@'localhost' IDENTIFIED BY 'denispassword';
Query OK, 0 rows affected (0.03 sec)

#On reload les priviléges.
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

#On quitte MySQL
mysql> exit
Bye

Vous pouvez vérifier que ou est ok comme ceci:

mysql -u denis -pdenispassword

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 14
Server version: 5.1.73 Source distribution

Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| denisdb            |
+--------------------+
2 rows in set (0.09 sec)

mysql>

Et voila vous avez maintenant un serveur Web avec Apache, PHP, MySQL et serveur FTP totalement fonctionnel !

 

 

(8 commentaires)

Passer au formulaire de commentaire

  1. alex

    bonsoir
    je un petit souci je configure le serveur ntp mais il m’affiche cet erreur là
    no association ID’s returned
    sous centos 7
    merci

  2. alex

    bonsoir
    je un peit souci je configure le serveur ntp mais il m’affiche cet erreur là
    no association ID’s returned
    merci

  3. iciyas

    Bonjour

    pour moi également
    il m’affiche access denied to / on this server.
    je ne comprend pas le problème.

    de plus quand je redémarre httpd il m’affiche :
    warning : /home/userX/ww doesn’t exist !!!

    est ce t’aurais une idée s’il te plaît, Merci.

  4. wil310031

    bonsoir
    j’ai un petit souci j’ai bien suivi votre tuto et il maffiche toujours forbidden?

    1. Denis

      Qu’est-ce qui t’affiche forbidden?

      L’accès a la page web?

      1. http://edbehandlung.men/

        But it's hard to tell which stars make up those constellations are if you're not already on (or near) earth. There are a whole lot of star in the universe, and which ones are brightest depends on where you are.

      2. http://www./

        The McGuinty govt has wasted what is supposed to be our most protected foundation in this country: health.I won’t forget the e-health scandal and nor will I forget those living near Industrial Wind Turbines.Money wasted that was meant to help us stay healthy and money thrown at a poor energy plan that harms people and animals.

    2. http://lapiluleduweekend.men/

      The lyric of this gorgeous song game me enough courage to keep my largest dream alive. The like of my life is far away from me.but now I know that I have to fight against the struggles on the way. I just can say that I’ll be with my bebe one day. like you much Jesus.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Lire les articles précédents :
openldap
[Tuto] Installer et configurer OpenLDAP sous CentOS

Bonjour à tous, Dans ce nouveau tutoriel, nous allons voir comment mettre en place un simple annuaire LDAP afin de...

Fermer