Kimsufi LAMP

Ma kim ne va ni me servir a gérer les DNS ni les MAIL. Pour la bonne raison que je considère ces services comme trop sensible pour que ce soit le même serveur qui les gère tous. Donc les DNS seront gérer par OVH et les mail par google avec son service personnalisé. La kim ne servira donc que de LAMP.

Alors on va commencer par le minimum vitale pour une bonne utilisation du serveur :

# sudo apt-get install binutils cpp fetchmail flex gcc libarchive-zip-perl libc6-dev libcompress-zlib-perl libdb4.3-dev libpcre3 libpopt-dev lynx m4 make ncftp nmap openssl perl perl-modules unzip zip zlib1g-dev autoconf automake1.9 libtool bison autotools-dev g++ build-essential

J’en profite aussi pour mettre ntp et maintenir mon serveur à l’heure automatiquement :

#sudo apt-get install ntp ntpdate

A présent je vais attaquer le LAMP.

Alors mysql :

#sudo apt-get install mysql-server mysql-client libmysqlclient15-dev

Ma kim possedant un noyau ovh qui n’a pas la gestion des modules activer je me retrouve avec ces erreurs :

grep: /proc/modules: Aucun fichier ou dossier de ce type
ls: ne peut accéder /sys/module/apparmor: Aucun fichier ou dossier de ce type
grep: /proc/modules: Aucun fichier ou dossier de ce type
ls: ne peut accéder /sys/module/apparmor: Aucun fichier ou dossier de ce type
grep: /proc/modules: Aucun fichier ou dossier de ce type
ls: ne peut accéder /sys/module/apparmor: Aucun fichier ou dossier de ce type
FATAL: Could not load /lib/modules/2.6.24.5-xxxx-std-ipv4-32/modules.dep: No such file or directory
$Loading AppArmor module: Failed.

Mais cela ne gène en rien l’installation et le bon fonctionnement du serveur mysql.

Enfin on verifie que mysql est bien lancé et écoute :

#sudo netstat -tap | grep mysql
tcp 0 0 localhost.localdo:mysql *:* LISTEN 11766/mysqld

Ensuite viens apache 2.2 (faut prononcé apachi) :

#sudo apt-get install apache2 apache2-doc apache2-mpm-prefork apache2-utils libexpat1 ssl-cert

Puis php5 et ruby (temps qu’a faire)

#sudo apt-get install libapache2-mod-php5 libapache2-mod-ruby php5 php5-common php5-curl php5-dev php5-gd php5-idn php-pear php5-imagick php5-imap php5-json php5-mcrypt php5-memcache php5-mhash php5-ming php5-mysql php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl

Sans oublier phpmyadmin

#sudo apt-get install phpmyadmin

Allez à présent de la configuration pour faire marcher le bousin.
Je commence par modifier les fichiers index par défaut en rajoutant ceux qui manque :

#sudo nano /etc/apache2/mods-available/dir.conf
DirectoryIndex index.html index.htm index.shtml index.cgi index.php index.php3 index.pl index.xhtml

Ensuite j’active les modules suplémentaire dont j’ai besoin :

#sudo a2enmod ssl
#sudo a2enmod rewrite
#sudo a2enmod suexec
#sudo a2enmod include

Allez un petit reload d’apache pour vérifier que tout est ok avant de continuer la configuration.

#sudo /etc/init.d/apache2 force-reload

Maintenant on va plonger les doigts dans le apache2.conf

#sudo nano /etc/apache2/apache2.conf

La grande question du prefork et du worker. Pour ma part j’ai toujours lut que le worker était moins stable et plus gourmand que le prefork, je vais donc commenter le worker et configurer le prefork. Je vais mettre 150 client max ce qui est emplement suffisant pour une kim, ainsi que starter 20 server ce qui permetra de lisser le load en cas d’afflux de visiteurs. mon Spare est assez proche toujours pour lisser mon load et je donne 1000 request par child. Si j’avais un superplan j’aurais donné 4000 maxrequests et 250 maxclient.

StartServers       20
MinSpareServers      25
MaxSpareServers      30
MaxClients      150
MaxRequestsPerChild  1000

Décommenter le server-status et ne laisser l’accès que au localhost.


SetHandler server-status
Order deny,allow
Deny from all
Allow from 127.0.0.1

##
# Stat Systeme
##
Alias /tutu /var/www/munin

##
# Alias pour Phpmyadmin
##
Alias /toto /var/www/phpmyadmin

Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all

##
# Config tuning
##
ServerTokens Prod
ServerName EMAX
ServerSignature Email
ServerAdmin root@artiflo.net
ExtendedStatus On

Un dernier reload

#sudo /etc/init.d/apache2 force-reload

Cela devrait être bon à présent vous pouvez tester.

A présent je m’occupe des virtual host pour gérer les sites qui vont etre hebergé sur le serveur. Je vais prendre le cas de artiflo.net.

Je creer un fichier dans /etc/apache2/sites-available/ que je nomme artiflo.net, je ferais un fichier par site pour facilité la configuration. Et ensuite je créer un liens symbolique entre ce fichier et /etc/apache2/sites-enabled/. Sans oublié de supprimer le liens symbolique de default. Petite précision apache définis la priorité d’affichage des hôte virtuel par ordre alphabétique. C’est a dire que si vous voulez que votre site toto.com apparaisse avant titi.net il faut créer un liens symbolique de ce type :

#sudo nano /etc/apache2/sites-available/artiflo.net
#sudo ln -s /etc/apache2/sites-available/artiflo.net /etc/apache2/sites-enabled/000-artiflo.net

Je creer le repertoire qui sera accessible du web et je met les bon droits dessus.

#sudo mkdir /home/artiflo/www
#sudo chown -R artiflo.artiflo /home/artiflo/www

Alors écrivons le contenue du virtual host.

NameVirtualHost *

        ServerName www.florian-cristina.fr
        ServerAlias *.florian-cristina.fr
        ServerAdmin admin@florian-cristina.fr

        DocumentRoot /home/artiflo/www/florian-cristina.fr/

                Options Indexes FollowSymLinks MultiViews
                AllowOverride All
                Order allow,deny
                Allow from all

        ErrorLog /var/log/apache2/florian-cristina.fr.error.log

        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn

        CustomLog /var/log/apache2/access.log combined

C’est mieux aussi si ceci est placé dans un des vhost :

Order deny,allow
Deny from all

Les mail a présent. Meme si ma kim ne va pas servir de pop elle va tout de meme pouvoir envoyé des mail avec le bon postfix :

#sudo apt-get install postfix

Enfin il reste a verifier que les configuration du serveur de mail sont bien celle que vous vouliez.

#sudo nano /etc/postfix/main.cf

A présent changer le nom d’host et aussi le relay pour pas quelle prenne pour elle les message de son propre domaine.

Stout.