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
É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;
À suivre…