Serveur internet @ la maison -3-
Par makoto doushite le vendredi, 10 septembre 2010, 14:36 - Auto-Hébergement internet - Lien permanent
Suite du deuxième épisode
Continuons cette série de billets de notes d'installation et configuration du serveur, avec la configuration du LAMP (Linux/Apache/Mysql/Php)
php
- Pour vérifier que Php fonctionne, déposer un fichier contenant
Fichier de vérification phpinfo.php : /var/www/phpinfo.php
<?php phpinfo(); ?>
apache
- Sécurisation
Éditer : /etc/apache2/conf.d/security
ServerSignature Off ServerTokens Prod
- Empêcher le parcours des répertoires
Éditer : /etc/apache2/sitesavailable/default
ajouter l'option -Indexes:
<Directory /var/www/> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory>
- Une Favicon commune à tous les vhosts, ajouter dans /etc/apache2/apache2.conf
## ajout favicon tous les vhosts <Location "/favicon.ico"> SetHandler none </Location> alias /favicon.ico /var/www/favicon.ico
donc favicon.ico placée dans /var/www/favicon.ico (un png renomé)
Redémarrer votre serveur Apache.
- Si au démarrage d’apache, un message d'erreur de ce type apparaît,
apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName.
Taper ceci :
#echo "ServerName localhost" | tee /etc/apache2/conf.d/fqdn
- Opérations utiles sur Apache :
#/etc/init.d/apache2 reload #/etc/init.d/apache2 restart #/etc/init.d/apache2 stop #/etc/init.d/apache2 start
- VirtualHost default : /etc/apache2/sites-available/default
<VirtualHost *:80> ServerAdmin webmaster@localhost DocumentRoot /var/www/ <Directory /> Options FollowSymLinks AllowOverride None Order Deny,Allow Deny from All </Directory> # Autoriser la racine du site <Directory /var/www/> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory> # interdire la navigation dans ces sous-dossiers <Directory /var/www/site1> Options -Indexes AllowOverride None Order deny,allow Deny from all </Directory> <Directory /var/www/site2> Options -Indexes AllowOverride None Order deny,allow Deny from all </Directory> ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <Directory "/usr/lib/cgi-bin"> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all </Directory> ErrorLog /var/log/apache2/error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog /var/log/apache2/access.log combined Alias /doc/ "/usr/share/doc/" <Directory "/usr/share/doc/"> Options Indexes MultiViews FollowSymLinks AllowOverride None Order deny,allow Deny from all Allow from 127.0.0.0/255.0.0.0 ::1/128 </Directory> </VirtualHost>
- VirtualHost site1 : /etc/apache2/sites-available/site1
<VirtualHost *:80> ServerName site1.makotoworkshop.org DocumentRoot /var/www/site1 <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/site1> Options -Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory> ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <Directory "/usr/lib/cgi-bin"> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all </Directory> ErrorLog /var/log/apache2/error_site1.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog /var/log/apache2/access_site1.log combined Alias /doc/ "/usr/share/doc/" <Directory "/usr/share/doc/"> Options Indexes MultiViews FollowSymLinks AllowOverride None Order deny,allow Deny from all Allow from 127.0.0.0/255.0.0.0 ::1/128 </Directory> </VirtualHost>
Mysql
- Pour déplacer les Bases :
#/etc/init.d/mysql stop
Créer le fichier contenant : /etc/mysql/conf.d/datadir.cnf
[mysqld] datadir = /home/mysql
Créer le dossier :
#mkdir /home/mysql
Copier le contenu :
#cp -R /var/lib/mysql/* /home/mysql #rm /home/mysql/ib*
Donner les droits :
#chown -R mysql:mysql /home/mysql #/etc/init.d/mysql restart
- Si, suite à une réinstallation de Debian, Mysql refuse de démarrer avec l’erreur :
/usr/bin/mysqladmin: connect to server at ‘localhost’ failed error: ‘Access denied for user ‘debiansysmaint’@'localhost’ (using password: YES)’
Debian crée un utilisateur spécifique (debiansysmaint) dans mysql pour que le système puisse automatiser certaines tâches. Le fichier /etc/mysql/debian.cnf (il appartient à root:root et est chmod 600) contient le mot de passe de cet utilisateur. Restaurer une sauvegarde du fichier (ou mettre le bon mot de passe) devrait suffire, sinon :
Mettre à jour le mot de passe MySQL du user debiansysmaint :
#mysql -uroot -p GRANT ALL PRIVILEGES ON *.* TO 'debiansysmaint'@'localhost' IDENTIFIED BY '' WITH GRANT OPTION;
(au besoin, tuer auparavant tous les démons mysql résiduels)
- Opérations sur les bases :
Connecter MySQL :
#mysql -u root -p
Créer la base :
mysql> CREATE DATABASE base1;
Utiliser une base :
mysql> USE base1;
Créer l’utilisateur :
mysql> CREATE USER "toto"@"localhost";
Attribuer un mot de passe à l’utilisateur :
mysql> SET PASSWORD FOR "toto"@"localhost" = PASSWORD("mdp");
Donner tous les droits à l’utilisateur pour la base :
mysql> GRANT ALL ON base1.* TO toto@localhost;
Importer une sauvegarde de base :
#mysql -u root -p base1 < /home/…/Base1SavBdd.sql
Afficher les utilisateurs :
mysql>\u mysql SELECT Host, User, Password FROM user;
Supprimer un Utilisateur :
mysql> DROP USER toto@localhost;
Supprimer une Base :
mysql> DROP DATABASE base1;