Mise en place d'un forum base sur SPIP sur une machine MacOS X 10.5. Ce forum est à accès privé sur mot de passe unique (sauf si l'on vient d'une plage de réseau particulier). Pour poster, il faut s'indentifier et seuls un certain nombre d'adresses sont autorisées à poster. Il n'y a pas de liste de mails mais simplement les mails ayant une forme particulière (xx@serveurparticulier.fr).
L'installation doit être faite sans avoir besoin des droits d'administrateurs (sauf pour lancer le serveur http). Pour cela tout sera mis en place dans un répertoire particulier. Pour permettre les mises à jour des différents logiciels, on mettra en place une notion de current pointant vers la version courante comme nous l'avons fait pour la mise en place d'un serveur SVN-Trac.
chgrp -R www /Users/compte
Création d'une arborescence toutforum.
ln -s /Volumes/HD750/toutforum /toutforum
chgrp www /Volumes/HD750/toutforum
chmod g+w /Volumes/HD750/toutforum
Arborescence /toutforum :
L'installation de spip a besoin de mysql et de jpeg dans php. Pour améliorer les performances du serveur web, j'ai rajouté la possibilité de compression en gzip des fichiers htpl et css à la volée.
$prefix=/toutforum/versions/a (par exemple)
Installation de la bibliothèque zlib 1.2.3 permettant de compacter les fichiers html et css à la volée.
Installation du serveur web httpd. Compilation avec le mod deflate afin de compresser les fichiers à la volée.
Voir ici tous les paramètres de configuration
Installation de la bibliothèque jpeg-6b permettant de traiter les jpeg en php
Installation de mysql pour avoir la librairie nécessaire à php
Voir ici tous les paramètres de configuration
Installation de php pour avoir la librairie nécessaire à apache
Voir ici tous les paramètres de configuration
Installation de SPIP. Mise ne place du favicon.ico, du fichier mes_options.php ainsi que du lien vers la modification des squelettes.
A la fin du fichier httpd.conf de base d'apage, j'ai rajouté Include conf/sites/*.conf permettant de mettre des extensions de configuration dans le dossier site.
<IfModule mime_module>
AddType application/x-httpd-php .php
</IfModule>
<IfModule dir_module>
DirectoryIndex index.php index.html
</IfModule>
Listen 80
<VirtualHost _default_:80>
# General setup for the virtual host
DocumentRoot "/toutforum/spip"
ServerName <nom.domaine.fr>:80
ServerAdmin webmaster@nom.domaine.fr
CustomLog "/toutforum/current/logs/access_log" "%h %l %u %t \"%r\" %>s %b"
ErrorLog /toutforum/current/logs/error_log
ErrorDocument 404 /spip.php?page=404 (page spéciale pour les erreurs de spip)
<Directory "/toutforum/spip">
Options All +MultiViews -ExecCGI -Indexes
AllowOverride Limit
<IfModule mod_dav.c>
DAV Off
</IfModule>
AuthName "Mot de passe Intranet"
AuthType Basic
AuthUserFile /toutforum/current/conf/user.access (fichier contenant l'utilisateur unique et son mot de passe)
<Limit GET head OPTIONS CONNECT POST PROPFIND>
Require user nom-utilisateur-du mot-de-passe-unique
Order deny,allow
Allow from xxx.yyy.0.0/255.255.0.0
Deny from all
Satisfy any
</Limit>
</Directory>
<IfModule mod_rewrite.c>
RewriteEngine On
# on empeche de lire le .svn et les ._nom de fichier (crée par ssh_fs depuis un Mac)
RewriteRule ^(.*/)?\.svn/ - [NC,F] (le NC est là car, par défaut, les noms de fichier de MacOS ne sont pas sensibles à la casse)
RewriteRule ^(.*/)?\._* - [F]
</IfModule>
</VirtualHost>
# DEFLATE
# Mod Deflate
<IfModule mod_deflate.c>
DeflateCompressionLevel 6
DeflateMemLevel 9
DeflateWindowSize 15
DeflateBufferSize 8096
</IfModule>
<Location />
<IfModule mod_deflate.c>
SetOutputFilter DEFLATE
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css
AddOutputFilterByType DEFLATE image/svg+xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/atom_xml
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE application/x-httpd-php
AddOutputFilterByType DEFLATE application/x-httpd-fastphp
AddOutputFilterByType DEFLATE application/x-httpd-eruby
# Don't compress images
SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png|swf|flv)$ no-gzip dont-vary
SetEnvIfNoCase Request_URI \.(?:exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-vary
SetEnvIfNoCase Request_URI \.pdf$ no-gzip dont-vary
SetEnvIfNoCase Request_URI \.avi$ no-gzip dont-vary
SetEnvIfNoCase Request_URI \.mov$ no-gzip dont-vary
SetEnvIfNoCase Request_URI \.mp3$ no-gzip dont-vary
SetEnvIfNoCase Request_URI \.mp4$ no-gzip dont-vary
SetEnvIfNoCase Request_URI \.rm$ no-gzip dont-vary
<IfModule mod_headers.c>
# Make sure proxies don't deliver the wrong content
Header append Vary User-Agent env=!dont-vary
</IfModule>
</IfModule>
</Location>
# Properly handle old browsers that do not support compression
<IfModule mod_deflate.c>
# Netscape 4.x has some problems...
BrowserMatch ^Mozilla/4 gzip-only-text/html
# Netscape 4.06-4.08 have some more problems
BrowserMatch ^Mozilla/4\.0[678] no-gzip
# MSIE masquerades as Netscape, but it is fine
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
# NOTE: Due to a bug in mod_setenvif up to Apache 2.0.48
# the above regex won't work. You can use the following
# workaround to get the desired effect:
#BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html
</IfModule>
<?php
function test_inscription($mode, $mail, $nom, $id=0) {
include_spip('inc/filtres');
$adresse_ok=false;
if (strpos($mail, "@domaine-particulier.fr")) $adresse_ok=true;
if (strpos($mail, "@autre_domaine-particulier.fr")) $adresse_ok=true;
if ($adresse_ok) return test_inscription_dist($mode, $mail, $nom, $id);
else return('ecrire:mail_non_valide');
}
?>
mail_non_valide est un message du fichier local_fr.php, le nom de variable contient "mail" afin de s'afficher au bon endroit dans le formulaire en cas d'erreur. 'mail_non_valide' => 'Votre adresse électronique doit comporter @domaine-particulier ou @autre_domaine-particulier.'.
à compléter par des modifications faites sur les fichiers de squelettes suivant : threadspip.html, sommaire.html, rubrique.html, rss_forum_thread.html, recherche.html, recents.html, patch-forum.css, local_fr.php, mes_fonctions.php, forumspip.html, forum.css, formulaires, backend.html,backend-forum.html, article.html.
2008-2008 (aidé par Emmanuel Saint-James pour tout ce qui concerne SPIP).
|