Bienvenue sur le site de St Carré

  • 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.

    lire la suite