Petite note pour me rappeller comment activer l’URL rewriting sur un serveur utilisant Debian Squeeze.

L’installation du serveur a été faite de façon standard, lorsque Tasksel propose de choisir les paquets, les options Serveur SSH, Apache et base de données ont été activées ; il n’y a pas d’interface graphique d’installé.
On obtient donc un serveur avec Apache 2.2.16-4 et PHP 5.3.3-6 d’installé ; la base de donnée est Postgresql 8.4.5.
Pour complèter l’installation avec Mysql, il faut utiliser la commande :

    apt-get install mysql-server mysql-client

Pour installer phpmyadmin, il faut utiliser la commande

    apt-get install phpmyadmin

Suite à l’installation de Drupal sur ce serveur, il est impossible d’activer les URL simplifiées (URL Mon-Site/admin/settings/clean-urls ou Mon-Site/?q=admin/settings/clean-urls).

Ce problème vient de la configuration d’Apache fournie par Debian, l’URL rewrinting n’est pas activée.

Pour corriger cette situation, il faut charger le module avec la commande

    a2enmod rewrite

Pour vérifier la prise en compte du module, il faut redémarrer le serveur et vérifier la liste des modules chargés :

    root@web3:/etc/apache2/sites-available# service apache2 restart
    Restarting web server: apache2 ... waiting .
    root@web3:/etc# apache2ctl -M
    Loaded Modules:
     core_module (static)
     log_config_module (static)
     logio_module (static)
     mpm_prefork_module (static)
     http_module (static)
     so_module (static)
     alias_module (shared)
     auth_basic_module (shared)
     authn_file_module (shared)
     authz_default_module (shared)
     authz_groupfile_module (shared)
     authz_host_module (shared)
     authz_user_module (shared)
     autoindex_module (shared)
     cgi_module (shared)
     deflate_module (shared)
     dir_module (shared)
     env_module (shared)
     mime_module (shared)
     negotiation_module (shared)
     perl_module (shared)
     php5_module (shared)
     python_module (shared)
     reqtimeout_module (shared)
     rewrite_module (shared)
     setenvif_module (shared)
     status_module (shared)
    Syntax OK

Il faut ensuite autoriser les URL simplifiées dans la configuration d’Apache, pour cela il faut éditer le fichier /etc/apache2/sites-available/default et changet les 2 premières occurences de AllowOverride None en AllowOverride All.
Ce qui donne :

     <VirtualHost *:80>
             ServerAdmin webmaster@localhost
     
             DocumentRoot /var/www
             <Directory />
                     Options FollowSymLinks
                     AllowOverride All
             </Directory>
             <Directory /var/www/>
                     Options Indexes FollowSymLinks MultiViews
                     AllowOverride All
                     Order allow,deny
                     allow from all
             </Directory>
     
             ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
             <Directory "/usr/lib/cgi-bin">
                     AllowOverride None
                     Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
                     Order allow,deny
                     Allow from all
             </Directory>
     
             ErrorLog ${APACHE_LOG_DIR}/error.log

Après avoir redémarré le serveur Apache, les URL simplifiées fonctionnent sous Drupal.