Activer la ré-écriture dURL sous Debian Squeeze
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.