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
Important!
Dans ce tuto je vais utiliser CentOS 6.5.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.
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 !
Notice
Optionnel:
Vous poouvez aussi installer PHPMyAdmin si vous souhaitez gérer votre base de données via une interface Web.
Tapez les commandes suivantes:
wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm rpm -ivh epel-release-6-8.noarch.rpm yum install phpmyadmin -y
Une fois l’installation terminée, editex le fichier etc/httpd/conf.d/phpMyAdmin.conf et commentez cette section:
#<Directory /usr/share/phpMyAdmin/> # AddDefaultCharset UTF-8 # # <IfModule mod_authz_core.c> # # Apache 2.4 # <RequireAny> # Require ip 127.0.0.1 # Require ip ::1 # </RequireAny> # </IfModule> # <IfModule !mod_authz_core.c> # # Apache 2.2 # Order Deny,Allow # Deny from All # Allow from 127.0.0.1 # Allow from ::1 # </IfModule> #</Directory>
Redémarez appache et vous pourre accéder a PHPMyAdmin avec https://url-de-votre-serveur/phpmyadmin
14 Commentaires
Passer au formulaire de commentaire
window.alert(« test »)
j’ai un petit soucis pour l’installation de mon serveur mysql.
Pour configurer mon mot de passe j’ai ce message d’erreur:
Ne peut pas se connecter au serveur mysql via socket ‘/var/lib/mysql/mysql.sock .
Si vous pouvez me donner un petit coup de main..
Merci !!!!
CORDIALEMENT!!!
j’ai un petit soucis pour l’installation de mon serveur mysql.
Pour configurer mon mot de passe j’ai ce message d’erreur:
<>.
Si vous pouvez me donner un petit coup de main..
Merci !!!!
CORDIALEMENT!!!
j’ai un petit pour l’installation de mon serveur mysql.
Pour configurer mon mot de passe j’ai ce message d’erreur:
<>.
Si vous pouvez me donner un petit coup de main..
Merci !!!!
CORDIALEMENT!!!
bonjour;
il y’avait beaucoup d’erreur dans les commandes d’installation
Merci de rectifier pour les débutants
Crdlt
Mohamed AFHAMNI
Quelles erreurs?
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
bonsoir
je un peit souci je configure le serveur ntp mais il m’affiche cet erreur là
no association ID’s returned
merci
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.
bonsoir
j’ai un petit souci j’ai bien suivi votre tuto et il maffiche toujours forbidden?
Qu’est-ce qui t’affiche forbidden?
L’accès a la page web?
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.
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.
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.