Quelques infos pratiques pour customiser un peu Apache.
RewriteEngine on RewriteCond %{HTTP_HOST} ^bazar.ndlp.info$ [NC] RewriteRule ^(.*)$ http://unix.ndlp.info/$1 [R=301,L]
La configuration des VirtualHosts se trouve, généralement, à la fin du fichier de conf apache (httpd.conf ou apache2.conf). Ci-dessous un extrait du fichier avec un Virtual Host configuré :
<VirtualHost *> ServerAdmin www.ndlp.info DocumentRoot /var/www/www.ndlp.info ServerName www.ndlp.info ErrorDocument 404 http://www.ndlp.info ErrorLog /var/log/apache2/www.ndlp.info/error_log CustomLog /var/log/apache2/www.ndlp.info/access_log combined php_admin_value engine off </VirtualHost>
Ne pas oublier de décommenter la ligne suivante avant la définition des Virtual Hosts :
NameVirtualHost *
On peut créer un fichier de mots de passe avec :
htpasswd -c /etc/apache2/.htpasswd vegeta
Ensuite on rajoute une entrée dans le fichier de conf apache :
<Directory /var/www/www.ndlp.info/fm> AuthName "Authentification requise" AuthType Basic AuthUserFile /etc/apache2/.htpasswd require user vegeta </Directory>
On peut mettre un fichier .htaccess dans le répertoire où ne veut pas autoriser de CGI/Perl. Ce fichier doit donc contenir :
Options -ExecCGI
Sinon on peut utiliser les AddHandler (dans un Virtual Host ou non) dans le fichier de conf d'Apache :
AddType text/html .cgi .pl
Pour un Virtual Host donné on peut rajouter cette directive :
php_admin_value engine off
Ou bien encore utiliser les AddHandler toujours dans le fichier de conf d'Apache :
AddType text/html .php .php5 .phtml .php3
Dans le fichier /etc/php[4,5]/apache2/php.ini modifier :
upload_max_filesize = 512M post_max_size = 512M max_execution_time = 1200
Ne pas oublier de lancer un reload/restart d'Apache.
Dans un Virtual Host donné on peut définir des paramètres spécifiques. Exemples :
php_admin_flag safe_mode on php_admin_value open_basedir "/var/www/:var/www/tmp" php_admin_flag register_globals on
Avec Apache 2 on peut utiliser mod-cband pour limiter la bande passante et le nombre de connexions. On peut aussi mettre en place des quotas. Sous Debian on installe le module simplement :
apt-get install libapache2-mod-cband /etc/init.d/apache2 force-reload
Ensuite on applique la conf de manière globale ou pour un Virtual Host spécifique :
<VirtualHost *> ServerAdmin csbeta.ndlp.info DocumentRoot /var/www/csbeta.ndlp.info ServerName csbeta.ndlp.info ErrorDocument 404 http://csbeta.ndlp.info ErrorLog /var/log/apache2/csbeta.ndlp.info/error_log CustomLog /var/log/apache2/csbeta.ndlp.info/access_log combined php_admin_flag safe_mode on php_admin_value open_basedir "/var/www/csbeta.ndlp.info:/var/www/tmp" ErrorDocument 503 /limits.html CBandSpeed 51200 10 15 CBandRemoteSpeed 1024kb/s 3 1 CBandScoreboard /var/www/scoreboard <Location /cband-status> SetHandler cband-status </Location> </VirtualHost>
On peut aussi rajouter ces directives au fichier de conf apache httpd.conf ou apache2.conf :
CBandScoreFlushPeriod 1 CBandRandomPulse On
Un petit restart d'Apache et c'est parti