Mysql
UTF8
Passer les variables de travail de mysql concernant les character set a utf8
Pour Verifier que cela a bien été fait:mysql_query("SET character_set_results = 'utf8', character_set_client = 'utf8', character_set_connection = 'utf8', character_set_database = 'utf8', character_set_server = 'utf8'", $conn);
$re = mysql_query('SHOW VARIABLES LIKE "%character_set%";')or die(mysql_error()); while ($r = mysql_fetch_assoc($re)) {var_dump ($r); echo "<br />";} exit;
Apache 2
httpd.conf
Je vais passer la config triviale de ce fichier, a part pour les logs, il est utile quand on possède des virtual hosts de savoir dans les logs a quel vhost on fait reference!
Pour cela, il suffit de rajouter %v a la directive LogFormat:
LogFormat "%v %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined LogFormat "%v %h %l %u %t \"%r\" %>s %b" common
vhost.conf
Ce fichier qui se trouve dans /usr/local/apache2/conf/extras/ contient tout les virtual hosts.
Voici un virtual host de "base":
#NameVirtualHost tutos <VirtualHost *> ServerAdmin admin@dryades.org DocumentRoot /sites/tutos/ ServerName tutos.dryades.org ErrorLog logs/tutos-error.log CustomLog logs/tutos-log.log common </VirtualHost>
On peux rajouter beaucoup d'options a ces virtualhosts, voyons les plus utiles:
Permissions selon l'ip:
<Directory> Deny from all Allow from 192.168.10 </Directory>
Cela va autoriser uniquement les ordinateurs ayant un ip commencant par 192.168.10, on pux preciser une lsite d'ip ou mettre une range.
Permissions selon l'user:
Il faut bien sur creer le fichier de mot de passe en rajoutant des utilisateurs dans un fichier vide avec :<Directory> AuthUserFile /monfichierdemotdepasse.truc AuthName "Message sur la fenetre de login" Require valid-user AuthType Basic Satisfy all </Directory>
htpasswd -c /monfichierdepassword user
Le meme principe s'applique avec les groupes : un fichier groupe avec groupname : user1 user2 ...
et dans le <Directory>:
AuthGroupFile monfichierdegroupe require group groupname
mime.types
Je trouve ca pas mal de rajouter comme type les .phps comme code source php colorié.
Pour ce faire, rajoutez la ligne suivante dans /usr/local/apache2/conf/mime.types:
application/x-httpd-php-source .phps
C'est aussi dans ce fichier que vous pouvez rajouter des extensions a parser a apache,
si par exemple vous voulez que les .truc soient considérés comme du php, il faut rajouter .truc a la ligne ou se trouve .php ;)
mod_evasive
Ce module est la pour empecher les attaques de type DoS.
Telecharger le fichier (http://www.zdziarski.com/projects/mod_evasive/)
Decompresser quelquepart (tar -xzvf monfichier.tar.gz)
Puis installer grace a apxs installé avec apache2 :
/usr/local/apache2/bin/apxs -cia mod_evasive20.c
Tout ce qu'il faut pour lancer le module avec apache a été fait, reste a le configurer :
<IfModule mod_evasive20.c> DOSHashTableSize 3097 DOSPageCount 40 DOSSiteCount 100 DOSPageInterval 1 DOSSiteInterval 2 DOSBlockingPeriod 10 DOSWhitelist 127.0.0.* DOSWhitelist 192.168.1.* </IfModule>
Voila :) Plus de DoS sur votre serveur ;)
mod_evasive
Ce module est la pour empecher les attaques de type DoS.
Telecharger le fichier (http://www.zdziarski.com/projects/mod_evasive/)
Decompresser quelquepart (tar -xzvf monfichier.tar.gz)
Puis installer grace a apxs installé avec apache2 :
/usr/local/apache2/bin/apxs -cia mod_evasive20.c
Tout ce qu'il faut pour lancer le module avec apache a été fait, reste a le configurer :
<IfModule mod_evasive20.c> DOSHashTableSize 3097 DOSPageCount 40 DOSSiteCount 100 DOSPageInterval 1 DOSSiteInterval 2 DOSBlockingPeriod 10 DOSWhitelist 127.0.0.* DOSWhitelist 192.168.1.* </IfModule>
Voila :) Plus de DoS sur votre serveur ;)
mod_bw
Ce module est la pour gerer l'allocation de bande passante d'apache.
Utile pour ralentir le telechargement de gros fichiers ou de limiter le nombre de connexions, et plein d'autres choses !
Telecharger les sources (http://www.ivn.cl/apache/)
Decompresser quelquepart (tar -xzvf mod_bw-version.tgz)
Puis installer grace a apxs installé avec apache2 :
/usr/local/apache2/bin/apxs -i -a -c mod_bw.c
Il rajoute tout seul le module dans httpd.conf (il le precise apres la compilation) :
Ensuite rajouter la conf sur chacun des vhosts (fonctionne aussi pour directory)
BandwidthModule On ForceBandWidthModule On LargeFileLimit .avi 1 30000
Cela devrait empecher pas mal de script kiddies de s'amuser avec votre apache ;)
Comme dirait Aubert, "Voilaaaaa c'est fini". Bon c'est pas proprement fait, il faut que je le refasse en plus clair, mais bon ca a le mérite d'exister :D.