まこと の ブログ

MaKoTo no burogu — Journal de bord…

Aller au contenu | Aller au menu | Aller à la recherche

Serveur internet @ la maison -3-

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;

À suivre…

Ajouter un commentaire

Les commentaires peuvent être formatés en utilisant une syntaxe wiki simplifiée.

Fil des commentaires de ce billet