Installation de Apache
Après avoir installer le système d'exploitation, il sera nécessaire d'y accéder pour y transférer des fichiers. Ceci se fera à l'aide d'un client ftp. Maintenant il faut ajouter Apache, Php 5, MySql et PhpMyadmin pour parfaire le serveur Web.
Comment se connecter au serveur ?
Sous Windows® deux logiciels très pratiques Winscp pour la gestion des fichiers et Putty pour se connecter en mode console au serveur (SSH).
Installation du serveur Web::Apache2
sudo apt-get install apache2
Installation de Php5
sudo apt-get install libapache2-mod-php5 php5 php5-mysql php5-gd php5-cli php5-imagick
Installation des librairies graphiques
sudo apt-get install imagemagick netpbm
Installation de la base de données Mysql5 :
sudo apt-get install mysql-server mysql-client libmysqlclient15-dev
sudo apt-get install mysql-server-5.0 mysql-client
Modification du mot de passe par défaut de l'utilisateur «root»:
mysqladmin -u root password motdepasse
ou
/etc/init.d/mysql reset-password
Installation de phpmyadmin
phpMyAdmin
Une Interface graphique, nullement néessaire pour le fonctionnement de MySql, mais trè pratique pour l'administration des bases de données depuis un navigateur web.
sudo apt-get install phpmyadmin
Création des dossiers web pour chaque utilisateur
Dans le dossier /media
sudo mkdir /media/www-dev sudo mkdir /media/www-dev/public sudo mkdir /media/www-dev/private sudo chown -R utilisateur_courant:users /media/www-dev
Créer un VirtualHost dans Apache est une tâche courante pour héberger plusieurs sites web sur un même serveur. Voici une procédure idéale pour configurer un VirtualHost dans Apache :
Étape 1 : Installer Apache (si ce n'est pas déjà fait)
- Si Apache n'est pas déjà installé sur votre serveur, vous pouvez l'installer en utilisant les commandes suivantes :
- Sur Ubuntu/Debian :
sudo apt install apache2
- Sur CentOS/RHEL :
Étape 2 : Créer un Répertoire pour Votre Site Web
- Créez un répertoire pour votre site web dans /var/www/ (ou un autre emplacement de votre choix).
Étape 3 : Créer un Fichier de Configuration pour le VirtualHost
- Créez un fichier de configuration pour votre VirtualHost dans le répertoire /etc/apache2/sites-available/ (ou /etc/httpd/conf.d/ sur CentOS/RHEL).
- Ajoutez la configuration suivante dans ce fichier :
ServerAdmin webmaster@votre_site.com
ServerName votre_site.com
ServerAlias www.votre_site.com
DocumentRoot /var/www/votre_site
<Directory /var/www/votre_site>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/votre_site_error.log
CustomLog ${APACHE_LOG_DIR}/votre_site_access.log combined
</VirtualHost>
Étape 4 : Activer le VirtualHost
- Activez le VirtualHost en utilisant la commande suivante :
Sur Ubuntu/Debian :
Sur CentOS/RHEL :
- Vous n'avez pas besoin d'activer le site, mais assurez-vous que le fichier de configuration est inclus dans le fichier principal de configuration d'Apache.
Étape 5 : Redémarrer Apache
- Redémarrez Apache pour appliquer les modifications :
- Sur Ubuntu/Debian :
- Sur CentOS/RHEL :
Étape 6 : Configurer le DNS (Optionnel)
- Si vous avez un nom de domaine, assurez-vous que votre DNS pointe vers l'adresse IP de votre serveur. Vous pouvez configurer cela via votre registrar de domaine ou votre fournisseur DNS.
Étape 7 : Tester la Configuration
- Ouvrez un navigateur web et accédez à http://votre_site.com pour vérifier que votre VirtualHost fonctionne correctement.
Conclusion
En suivant ces étapes, vous devriez être en mesure de configurer un VirtualHost dans Apache pour héberger plusieurs sites web sur un même serveur.
Gestion des permissions pour l'utilisateur 'www-data'
Pour éviter les problèmes de permissions avec l'utilisateur www-data (l'utilisateur sous lequel Apache s'exécute) lors de la création de fichiers à partir de votre site web, vous pouvez configurer les permissions de manière à ce que www-data ait les droits nécessaires sans compromettre la sécurité. Voici une procédure idéale pour configurer les permissions sur les dossiers et fichiers :
Étape 1 : Créer un Groupe Dédié
Créez un groupe dédié pour les utilisateurs qui doivent avoir accès aux fichiers web. Par exemple, vous pouvez créer un groupe appelé webdev.
Étape 2 : Ajouter les Utilisateurs au Groupe
Ajoutez votre utilisateur personnel et l'utilisateur www-data au groupe webdev.
sudo usermod -aG webdev www-data
Étape 3 : Configurer les Permissions sur les Répertoires Web
Changez le groupe propriétaire des répertoires web à webdev et définissez les permissions appropriées.
sudo chmod -R 2775 /var/www/votre_site
- 2775 : Le bit "setgid" (2) assure que les nouveaux fichiers et répertoires créés dans ce répertoire héritent du groupe propriétaire (webdev). Les permissions 775 permettent au propriétaire et au groupe de lire, écrire et exécuter, et aux autres utilisateurs de lire et exécuter.
Étape 4 : Configurer les Permissions par Défaut pour les Nouveaux Fichiers et Répertoires
Configurez les permissions par défaut pour les nouveaux fichiers et répertoires créés dans le répertoire web.
Étape 5 : Configurer les Permissions pour les Fichiers Existants
Assurez-vous que les fichiers existants ont les permissions appropriées.
sudo find /var/www/votre_site -type d -exec chmod 2775 {} \;
- 664 : Les fichiers sont lisibles et modifiables par le propriétaire et le groupe, et lisibles par les autres.
- 2775 : Les répertoires sont lisibles, modifiables et exécutables par le propriétaire et le groupe, et lisibles et exécutables par les autres. Le bit "setgid" (2) assure que les nouveaux fichiers et répertoires héritent du groupe propriétaire.
Étape 6 : Vérifier les Permissions
Vérifiez que les permissions sont correctement configurées.
Conclusion
En suivant ces étapes, vous configurez les permissions de manière à ce que l'utilisateur www-data et votre utilisateur personnel puissent créer et modifier des fichiers dans le répertoire web sans rencontrer de problèmes de permissions. Cela permet également de maintenir un niveau de sécurité approprié.