Mysql



UTF8


Passer les variables de travail de mysql concernant les character set a utf8
mysql_query("SET character_set_results = 'utf8', character_set_client = 'utf8', character_set_connection = 'utf8', character_set_database = 'utf8', character_set_server = 'utf8'", $conn);
Pour Verifier que cela a bien été fait:
$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:
<Directory>
	AuthUserFile /monfichierdemotdepasse.truc
	AuthName "Message sur la fenetre de login"
	Require valid-user
	AuthType Basic
	Satisfy all
</Directory>
Il faut bien sur creer le fichier de mot de passe en rajoutant des utilisateurs dans un fichier vide avec :
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.