Installation de mysql et phpmyadmin

mysql

On va passer à l'installation de la base de donnée.

apt-get install mysql-server
apt-get install php5-mysql

Première chose à faire, car assez critique, attribuer un mot de passe root à votre serveur MySQL si celui-ci n'a pas été demandé à l'installation précedente.

root > mysql
mysql > use mysql

mysql > UPDATE user SET  password= PASSWORD('nouveaumotdepassemysql')  WHERE user = 'root';
mysql > flush privileges;
mysql > quit

la configuration de base de MySQL se trouve dans le fichier :

/etc/mysql/my.cnf

phpMyAdmin

Pour plus de confort, on va installer phpMyAdmin pour pouvoir gérer nos bases de données plus facilement.

apt-get install phpmyadmin

la configuration de phpmyadmin se trouve dans le fichier :

/etc/phpmyadmin/config.inc.php

On va également ajouter la ligne suivante au fichier

/etc/apache2/apache2.conf

Include /etc/phpmyadmin/apache.conf
Pour plus de sécurité, on va créer un VirtualHost pour y accéder et empecher l'acces par l'url par defaut.

Pour ce faire, on va commenter la ligne suivante :

Alias /phpmyadmin /usr/share/phpmyadmin

Dans le fichier :

/etc/phpmyadmin/apache.conf

Il ne reste plus que d'ajouter un nouvel accès en créant un nouveau virtual host :

/etc/apache2/sites-available/phpmyadmin.mon-domaine.com

Avec comme contenu :

<VirtualHost *:80>
    ServerAdmin admin@mon‐domaine.com
    ServerName phpmyadmin.mon‐domaine.com
    DocumentRoot /usr/share/phpmyadmin
</VirtualHost>
On va aussi forcer l'utilisation de https.

On va utiliser le module SSL d'apache :

sudo a2enmod ssl
sudo service apache2 restart
sudo apt‐get install openssl

Et le paquet openSLL pour la génération du certificat :

cd /tmp
openssl genrsa ‐des3 ‐out server.key 2048
openssl req ‐new ‐key server.key ‐out server.csr
cp server.key server.key.org
openssl rsa ‐in server.key.org ‐out server.key
openssl x509 ‐req ‐days 365 ‐in server.csr ‐signkey server.key ‐out server.crt
mkdir /etc/apache2/certificate
cp server.crt server.key /etc/apache2/certificate

vérifions qu’Apache écoute bien le port 443 (qui correspond à HTTPS). Votre fichier /etc/apache2/ports.conf doit
ressembler à ça :

NameVirtualHost *:80
NameVirtualHost *:443
Listen 80
<IfModule ssl_module>
    Listen 443
</IfModule>

On va maintenant modifier le vHost préalablement créer pour y forcer l'accès en https:

<VirtualHost *:80>
    # Configuration de l'addresse
    ServerAdmin admin@mon‐domaine.com
    ServerName phpmyadmin.mon‐domaine.com
    DocumentRoot /usr/share/phpmyadmin/
    # Redirection vers HTTPS
    RewriteEngine on
    RewriteCond %{HTTPS} !=on
    RewriteRule ^(.*)$ https://%{SERVER_NAME}$1 [L,R=301]
</VirtualHost>
<IfModule mod_ssl.c>
    <VirtualHost *:443>
        # Configuration de l'addresse
        ServerAdmin admin@mon‐domaine.com
        ServerName phpmyadmin.mon‐domaine.com
        DocumentRoot /usr/share/phpmyadmin/
        # Personnalisation des logs
        TransferLog /var/log/apache2/phpmyadmin‐access.log
        ErrorLog /var/log/apache2/phpmyadmin‐error.log
        # Utilisation de la clé et du certificat
        SSLEngine on
        SSLCertificateFile /etc/apache2/certificate/server.crt
        SSLCertificateKeyFile /etc/apache2/certificate/server.key
        SSLProxyEngine on
    </VirtualHost>
</IfModule>

On va activer le module Rewrite, si ce n'est déjà hait :
a2enmod rewrite Un petit reload d'apache et tout devrait être bon :

service apache2 reload