Version de PHP

Aprés avoir tester en local, sur ma machine la galerie Web ZenPhoto, j'ai souhaité faire l'installation sur mon hébergement (mutualisé) chez OVH, or, lors de l'installation j'ai eu la désagréable surprise de voir que chez ovh par défaut c'est PHP4 qui est utilisé.

J'ai donc suivi le guide OVH pour passer le site en PHP 5 : à la racine du site, j'ai placé un fichier .htaccess dans lequel j'ai écrit la ligne suivante :

SetEnv PHP_VER 5

Configuration de PHP

Aprés avoir mise en place PHP 5 pour  ZenPhoto, il est nécessaire de définir certaines règles php, pour cela je vais modifier le fichier .htaccess précédement créé :

SetEnv PHP_VER 5
SetEnv REGISTER_GLOBALS 0
SetEnv MAGIC_QUOTES 0
SetEnv MBSTRING.LANGUAGE UTF-8
SetEnv mbstring.internal_encoding UTF-8

Modification de ZenPhoto

Ensuite, le plus gros problème, en effet, ZenPhoto cherche a changer les permissions sur certains repertoires, cependant OVH n'accepte pas des permissions au dela de 0755, j'ai donc modifier certains fichiers de ZenPhoto.

Tout d'abord, le fichier zp-core/setup.php :

A la ligne 42, j'ai remplacé la ligne : $chmod = 0777; par $chmod = 0755;

A la ligne 162, j'ai remplacé la ligne : $chmod = 0777; par $chmod = 0755;

Ensuite, si le fichier existe il faut modifier le fichier : zp-data/zp-config.php

A la ligne 75, remplacer 777 par 755 comme suit :


if (!defined('CHMOD_VALUE')) { define('CHMOD_VALUE', 0755); }

Permissions sur les répertoires et fichiers :

Définissez vous même les droits sur les repertoires. Pour cela je me suis connecté en SSH et dans le répertoire de zenphoto, j'ai tapé la ligne suivante :

chmod 0755 ./* -Rf

puis j'ai changé les permissions sur le fichier .htaccess :

chmod 0705 ./.htaccess


Vous pouvez également définir les permissions à l'aide de votre client FTP habituel.

Les règles de réécriture de ZenPhoto

Enfin, ZenPhoto utilise des règles de ré-écriture apache, mais comme nous avons modifier le fichier .htaccess, nous allons devoir le faire à la main, voici mon fichier :

# htaccess file version 1.2.2.0;
SetEnv PHP_VER 5
SetEnv REGISTER_GLOBALS 0
SetEnv MAGIC_QUOTES 0
SetEnv MBSTRING.LANGUAGE UTF-8
SetEnv mbstring.internal_encoding UTF-8

RewriteEngine On
RewriteBase /

RewriteRule ^/admin/?$ zp-core/admin.php [R,L]

RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^/albums/?(.+/?)?$ $1 [R=301,L]

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^/.*$ - [L]

RewriteRule /index\.php$ index.php [L,QSA]
RewriteRule ^/page/([0-9]+)/?$ index.php?page=$1 [L,QSA]
RewriteRule ^/page/([A-Za-z0-9_\-]+)/?$ index.php?p=$1 [L,QSA]
RewriteRule ^/page/([A-Za-z0-9_\-]+)/([0-9]+)/?$ index.php?p=$1&page=$2 [L,QSA]
RewriteRule ^/(.*)/page/([0-9]+)/?$ index.php?album=$1&page=$2 [L,QSA]
RewriteRule ^/(.*)/page/([A-Za-z0-9_\-]+)/?$ index.php?album=$1&p=$2 [L,QSA]

RewriteRule ^/page/search/fields([0-9]+)/(.*)/([0-9]+)/?$ index.php?p=search&searchfields=$1&words=$2&page=$3 [L,QSA]
RewriteRule ^/page/search/fields([0-9]+)/(.*)/?$ index.php?p=search&searchfields=$1&words=$2 [L,QSA]
RewriteRule ^/page/search/archive/(.*)/([0-9]+)/?$ index.php?p=search&date=$1&page=$2 [L,QSA]
RewriteRule ^/page/search/archive/(.*)/?$ index.php?p=search&date=$1 [L,QSA]
RewriteRule ^/page/search/tags/(.*)/([0-9]+)/?$ index.php?p=search&searchfields=4&words=$1&page=$2 [L,QSA]
RewriteRule ^/page/search/tags/(.*)/?$ index.php?p=search&searchfields=4&words=$1 [L,QSA]
RewriteRule ^/page/search/(.*)/([0-9]+)/?$ index.php?p=search&words=$1&page=$2 [L,QSA]
RewriteRule ^/page/search/(.*)/?$ index.php?p=search&words=$1 [L,QSA]
RewriteRule ^/pages/?$ index.php?p=pages [L,QSA]
RewriteRule ^/pages/(.*)/?$ index.php?p=pages&title=$1 [L,QSA]
RewriteRule ^/news/?$ index.php?p=news [L,QSA]
RewriteRule ^/news/([0-9]+)/?$ index.php?p=news&page=$1 [L,QSA]

RewriteRule ^/(.*)/image/(thumb|[0-9]{1,4})/([^/\\]+)$ zp-core/i.php?a=$1&i=$3&s=$2 [L,QSA]
RewriteRule ^/(.*)/image/([^/\\]+)$ zp-core/i.php?a=$1&i=$2 [L,QSA]

RewriteRule ^/(.*)/album/(thumb|[0-9]{1,4})/([^/\\]+)$ zp-core/i.php?a=$1&i=$3&s=$2&album=true [L,QSA]

RewriteRule ^/(.*)/?$ index.php?album=$1 [L,QSA]

La première ligne du fichier est Obligatoire car ZenPhoto teste le n° de version du fichier.

Normalement à ce stade vous pouvez valider le setup.

Troubleshootings

  • J'ai du souvent redéfinir les droits sur les dossiers, et sur le fichier .htaccess. (voir la section dans cet article).
  • J'ai pas réussi à définir mbstring.internal_encoding avec SetEnv ... 
En espérant que ce tuto vous aura un peu aidé, n'hésitez pas à me remonter vos remarques.