[ Présentation | Installation en local ( Installation des fichiers , création de la base , création d'un hôte virtuel , configuration , premiers essais , configuration avec le navigateur , personnaliser un thème  , correction de quelques bugs ) | Installation sur un compte hébergé ( présentation , configuration préalable , configuration de la fonction mail()transfert vers l'hébergeur , création de la base ) ]

Dernière modification 7.1.01

PHPNuke

Présentation

PHPNuke est un portail de site écrit en PHP (PHP3) et utilisant MySQL avec un système de news, de liens, de sondage, et bien d'autres choses prêtes à l'emploi ou presque. Avant dans dire plus voici un exemple de site faisant appel à PHPNuke, ça vous permettra de vous faire une idée : news.linuxbe.org

Ne vous fiez pas au look de l'interface, vous avez à votre disposition une vingtaine de thèmes graphiques disponibles, et si aucun ne vous plait, vous pouvez toujours en bricoler un. Niveau fonctionnalité, vous pouvez mettre en place une modération pour le post des news, la modération pouvant être faite par plusieurs administrateurs, par ailleurs vous pouvez faire en sorte que seuls les utilisateurs enregistrés pourront poster des commentaires dans les news pour éviter les dérapages. Ce même système de modération existe aussi pour les liens.
Dans cette page je vous présente l'installation de PHPNuke sur une machine en local puis sur un compte hébergé chez Free et Online.

Pour avoir un exemple de PHPNuke, allez donc sur mon sous domaine news.funix.org.

PHPNuke possède néanmoins deux inconvénients que certains pourraient considérer comme rédhibitoires,  il utilise les cookies et le javascript.

[Retour haut de la page]

Installation en local

Installation des fichiers

On va récupérer l'archive PHP-Nuke-4.3.tar.gz à l'URL http://phpnuke.org. On va créer un répertoire phpnuke-4.3, dans celui-ci on désarchive le tarball :

tar xvfz PHP-Nuke-4.3.tar.gz

Cela va nous créer les fichiers textes classiques (README, CHANGES, ...) et les deux répertoires html et sql. Le premier contient les fichiers php nécessaire à l'exécution de PHPNuke, le deuxième les tables MySQL à créer.

[Retour haut de la page]

Création de la base

On va d'abord créer une base de données nuke :

mysqladmin -u olivier -p create nuke
Enter password:
Database "nuke" created.

A présent dans le répertoire  phpnuke-4.3/sql on tape :

mysql -u olivier -p nuke < nuke.sql
Enter password:

Maintenant à partir de phpMyAdmin, vous pouvez voir que la base nuke a bien été créée.

NOTE Pour plus d'info sur MySQL
- ma page Linux
- ma page Windows

[Retour haut de la page]

Création d'un hôte virtuel

Pour que vos utilisateurs puissent accéder à PHPNuke, il faut que vous disposiez d'un serveur HTTP capable d'interpréter le PHP, j'utilise pour ma part le célèbre Apache. On va faire en sorte que PHPNuke soit accessible à l'URL nuke.breizland.bz

Dans le fichier de conf httpd.conf on rajoutera au niveau de la partie hôte virtuel :

<VirtualHost 192.168.13.11>
DocumentRoot /usr/local//php/phpnuke-4.3/html
ServerName nuke.breizland.bz
</VirtualHost>

Par ailleurs il faut évidemment que le module d'Apache pour les hôtes virtuels soit chargé et qu'Apache interpréte l'extension .php. Vous pouvez relancez Apache.

NOTE Pour plus d'info sur Apache
- ma page Linux
- ma page Windows

[Retour haut de la page]

Configuration

On va éditer le fichier config.php se trouvant sous phpnuke-4.3/html, pour d'une part configurer les paramètres de connexion à la base :

######################################################################
# Database & System Config
#
# dbhost:   MySQL Database Hostname
# dbuname:  MySQL Username
# dbpass:   MySQL Password
# dbname:   MySQL Database Name
# system:   0 for Unix/Linux, 1 for Windows (non testé sous windows de mon côté)
######################################################################

$dbhost = "localhost";
$dbuname = "olivier";
$dbpass = "mot-de-passe";
$dbname = "nuke";
$system = 0;

Et des infos générales sur la config de nuke.breizland.bz

######################################################################
# General Site Configuration
#
# $sitename:      Le nom de votre site
# $nuke_url:      L'URL de votre site
# $site_logo:     Nom du fichier image du logo de votre site pour la version imprimable (en n/b c'est mieux)
# $slogan:        Votre slogan
# $startdate:     Date de départ du site (pour les stats)
# $adminmail:     email du webmaster
# $anonpost:      Permettre à des anonymes de poster des commentaires ? (1=Oui 0=Non)
# $Default_Theme: Theme par défaut du site (Voir dans phpnuke-4.3/themes pour voir la liste des thèmes)
# $foot(x):       Messages de pied de page
# $commentlimit:  taille max en octets pour les commentaires
# $anonymous:     Nom par défaut de l'utilisateur anonyme
# $site_font:     font par défaut du site
# $minpass:       Nombre de caractères mini pour les passwords
# $pollcomm:      Activer les commentaires dans les sondages? (1=Oui 0=Non)
######################################################################

$sitename = "Nuke Breizland";
$nuke_url = "http://nuke.breizland.bz";
$site_logo = "logo.gif";
$slogan = "Mettez un pingouin dans votre PC";
$startdate = "31 décembre 2000";
$adminmail = "webmaster@breizland.bz";
$anonpost = 1;
$Default_Theme = "Green";
$foot1 = "<a href=http://phpnuke.org><img src=images/powered/phpnuke.gif border=0 Alt=\"Web site powered by PHP-Nuke\"></a><br>";
$foot2 = "Tous les logos et marques citées dans ce site sont la propriété de leur propriétaire respectif. Les commentaires sont sous la responsabilité de leurs auteurs, tout le reste est sous © 2000-2001 de Tartenpion";
$foot3 = "Ce site utilise  <a href=http://phpnuke.org>PHP-Nuke</a>, un portail de site écrite en PHP. PHP-Nuke est un logiciel libre utilisant la <a href=http://www.gnu.org>GNU/GPL licence</a>.";
$foot4 = "Vous pouvez mettre les news de ce site en utilisant le fichier <a href=backend.php>Backend.php3</a> ou <a href=ultramode.txt></a>";
$commentlimit = 4096;
$anonymous = "Anonymous";
$site_font = "Verdana,Arial,Helvetica";
$minpass = 5;
$pollcomm = 1;

(...)

Vous pouvez activer un système de bannières sur votre site

######################################################################
# Banners/Advertising Configuration
#
# $banners: Activer les bannières ? (1=Oui 0=Non)
# $myIP:    On met ici sa propre adresse IP qui doit compter pour du beurre pour les stats
######################################################################

$banners = 0;
$myIP = "192.168.13.11";

Configuration du fichier backend qui pourra être réutilisé par d'autres sites pour reprendre vos news

######################################################################
# XML/RDF Backend Configuration
#
# $backend_title:    Backend title, can be your site's name and slogan
# $backend_language: Language format of your site
# $backend_image:    Image logo for your site
# $backend_width:    Image logo width
# $backend_height:   Image logo height
######################################################################

$backend_title = "Nuke Breizland";
$backend_language = "fr_fr";
$backend_image = "http://nuke.breizland.bz/images/logo.gif";
$backend_width = 88;
$backend_height = 31;

######################################################################
# Site Language Preferences
#
# $language: Language of your site (You need to have lang-xxxxxx.php file for
# $locale:   Locale configuration to correctly display date with your country
######################################################################

$language = "french";
$locale = "fr_FR";

(...)

######################################################################
# Notification of News Submissions
#
# $notify:         Voulez vous être prévenu à chaque fois que quelqu'un propose une news (1=Oui, 0=Non )?
# $notify_email:   Email de la personne à prévenir
# $notify_subject: Sujet de l'email
# $notify_message: Corps du message
# $notify_from:    Le champ from de l'email
######################################################################

$notify = 0;
$notify_email = "webmaster@breizland.bz";
$notify_subject = "Soumission de news";
$notify_message = "Une nouvelle soumission est arrivée";
$notify_from = "webmaster";

Ce fichier doit avoir pour droit 666

chmod 666 config.php

[Retour haut de la page]

Premiers essais

Dans votre navigateur taper http://nuke.breizland.bz L'interface suivante s'affiche, elle peut évidemment varier suivant le thème choisi (ici GnuCash) :

[Retour haut de la page]

Configuration avec un navigateur

Pour configurer à partir du navigateur PHPNuke, on tapera comme URL :

http://nuke.breizland.bz/admin.php

On saisit les champs suivants:

AdminID: God
Password: Password

On clique sur le bouton Identifiant

Le menu d'administration apparaît :

Maintenant on clique sur Preferences pour configurer PHPNuke, vous aurez accès alors à :

Configuration du thème graphique  (Defaut theme for your site)

Type de modération (Comments moderation (No, by admin, by users))

Au niveau de Edition bloc principal, vous pouvez modifier les champs du bloc principal apparaissant en haut à gauche :




Idem avec les autres blos à gauche de l'écran (blocs gauches)

Vous pouvez en créer autant que vous voulez

[Retour haut de la page]

Idem pour les blocs à droite de l'écran (blocs droits)

Vous disposez aussi d'un gestionnaire de fichier

Vous pouvez créer un sondage, qui apparaîtra sur la page d'accueil en haut à droite

Au niveau de Gros titres (headlines), vous pouvez rajouter un bloc de news issues d'autres sites comme par exemple slashdot ou freshmeat. On peut en rajouter d'autres en pointant vers le fichier au format RDF/XML (backend) du site de news en question.

Au niveau d'Affectation des sujets vous pouvez rajouter des sujets avec une image associée

Avec Articles automatiques, vous pouvez programmer l'affichage d'une news à un moment donné

[Retour haut de la page]
Avec Editions des administrateurs vous pouvez rajouter des administrateurs tout en limitant leur pouvoir, c'est utile si vous voulez que plusieurs personnes modèrent le site.

Au niveau de liens, vous avez la possibilité de créer des catégories et sous catégories

Rajout d'une sous catégorie

Vous avez plus bas dans la page aussi possibilité de modifier une catégorie.

Vous constaterez à l'usage qu'il y a des bouts de phrase qui sont en anglais, mal traduits, ou pas traduits du tout (Needs Translation). Pour corriger cela, vous devez modifier le fichier phpnuke-4.3/html/language/lang-french.php. Vous constaterez que la syntaxe est assez simple, voici un extrait :

case "User doesn't exist!":                $tmp = "Utilisateur inexistant!"; break;
case "Submit News":                          $tmp = "Envoyer la Nouvelle"; break;

Au besoin voici mon fichier lang-french.php3 renommé en .txt pour ne pas être interprété (ATTENTION extension modifiée en .php y compris à l'intérieur du fichier).

[Retour haut de la page]

Personnaliser un thème

Maintenant si vous voulez personnaliser un thème, par exemple GnuCash, il suffit de modifier quelques bricoles dans phpnuke-4.3\themes\GnuCash
- remplacer logo.gif par votre logo
- modifier header.php pour modifier l'entête
- modifier theme.php pour modifier le corps de la page
- modifier footer.php pour modifier le pied de page

[Retour haut de la page]

Corrections de quelques bugs

Les administrateurs qui n'ont pas le droit super utilisateur ne peuvent poster de news, il faudra modifier le fichier admin/stories.php et admin/automated.php, au lieu de :

if (($radminsurvey==1) OR ($radminsuper==1)) {

On doit écrire :

if (($radminarticle==1) OR ($radminsuper==1)) {

Maintenant pour que le gestionnaire de fichier marche bien, dans le fichier admin.php, au lieu de :

$basedir = dirname($SCRIPT_FILENAME);

On écrira :

$basedir = dirname($PATH_TRANSLATED);

Dans le fichier links.php au lieu de

global $admin, $perpage, $show;

On écrira :

//global $admin, $perpage, $show;
 
 

[Retour haut de la page]

Installation sur un compte hébergé

Présentation

L'exemple est donné pour un compte hébergé chez Free et Online, la version pro de free (les deux = Proxad). On va d'abord travailler avec les fichiers en local avant de les transférer. Vous pouvez commencer par corriger les quelques bugs.

A noter que pour Free vous trouverez une excellente FAQ pour l'installation de PHPNuke à l'URL: http://highsecu.free.fr/download/faqfree/

[Retour haut de la page]

Configuration préalable

Le problème avec proxad est que l'extension .php n'est pas interprété, il faut tout convertir en .php, qu'à cela ne tienne, on va écrire le script suivant :

php2php

Contenant

#!/bin/bash
for nom in $(ls *.php) ; do
cat "${nom}" > "$(basename ${nom} .php).php"
done
rm -f *.php

for nom in $(ls *.php) ; do
sed s/\\.php/\.php/g ${nom} > /tmp/toto.php3
cat /tmp/toto.php > ${nom}
done
rm -f /tmp/toto.php

On lui donne les droits d'exécution :

chmod 755 phpphp3

Vous devez l'exécuter dans tous les répertoires et sous répertoires contenant des fichiers .php de phpnuke-4.3.  Ne vous inquiétez pas maintenant si les liens ne fonctionnent plus dans le bloc principal et ailleurs, il faudra dans la page d'administration de PHPNuke modifier l'extension .php en .php.

NOTE Pour les utilisateurs sous Windows, pour effectuer cette manip, j'aurais tendance à vous orienter vers cygwin qui vous apporte tous ses languages de script dont est dépourvu Windows.

Avant de transférer, vous pouvez faire le ménage sous language et ne garder que lang-english et lang-french, idem sous themes ne gardez que ceux qui vous intéressent. Par ailleurs sous phpnuke-4.3/html/images/menu, supprimer les répertoires qui ne servent à rien (on garde english et french).

Bon maintenant ce qui me gène est que les paramètres de connexion à la base sont directement à la racine de PHPNuke, c'est franchement moyen pour la sécurité. Créer un répertoire phpnuke-4.3/admin/config, et bouger le fichier phpnuke-4.3/config.php dans phpnuke-4.3/admin/config.

NOTE Vous pouvez très bien mettre ce fichier n'importe où dès lors qu'il est dans un répertoire isolé.

Maintenant on va créer un nouveau fichier phpnuke-4.3/config.php, qui contiendra :

<?
$maconfig="admin/config/config.php";
include($maconfig);
?>

Dans le répertoire phpnuke-4.3/admin/config,  on va créer un fichier .htaccess contenant

deny from all

Voilà comme ça, personne ne pourra accèder à vos paramètres de connexion. Vous pouvez maintenant configurer config.php et l'adapter à votre site hébergé, vous pouvez, si vous les connaissez, mettre les paramètres de connexion à la base.

[Retour haut de la page]

Configuration de la fonction mail()

Avec Online, la fonction PHP mail() a été désactivée, elle est remplacée par email() qui nécessite d'avoir dans le champ from webmaster@votredomaine. Avec Free, PHPNuke marche très bien, mais la fonction mail() n'existe pas non plus et n'a pas été remplacée par une autre fonction :-(  du coup certaines fonctionnalités ne peuvent marcher dont :

- envoi du mot de passe à un nouveau utilisateur
- envoi de l'avertissement comme quoi il y a une nouvelle soumission

Avec Online, on devra modifier les fichiers suivants sous phpnuke-4.3

user.php
banners.php
friend.php
submit.php
admin/links.php

Au lieu de l'appel à mail() comme ici :

mail($email, $subject, $message, "From: $from\nX-Mailer: PHP/" . phpversion());

On écrira

email("webmaster",$email,$subject,$message);

Pour un compte chez Free on pourra très bien pour l'envoi du mot de passe à un nouveau utilisateur modifié le fichier user.php, au niveau de la page 104, mettre à la place de

mail($email, $subject, $message, "From: $from\nX-Mailer: PHP/" . phpversion());

Ceci

echo $message;

L'utilisateur en s'enregistrant verra tout de suite son mot de passe de connexion. Je pense qu'il y a moyen de se débrouiller avec la fonction form2mail disponible chez Free.
 
 
 

[Retour haut de la page]

Transfert vers l'hébergeur

C'est bon on peut transférer les fichiers chez l'hébergeur, attention pour le fichier .htaccess qui doit être transféré au format ascii.
[Retour haut de la page]

Création de la base

Pour créer la base chez Free, il faut d'abord avoir un compte, il suffit de se rendre à l'URL http://subscribe.free.fr/acces/createbase.html La base de donnée est effectivement créée quelques heures plus tard.
Pour Online, vous pouvez activer votre base à partir de votre page d'administration

Pour Free, on pourra créer la base à l'URL support.free.fr/web/index3.html, c'est phpMyAdmin qui est utilisé. En fait la base existe déjà, elle porte le nom de votre compte, vous ne pouvez créer que des tables. Au niveau du champ Emplacement du fichier texte, vous devez (avec Parcourir...) pointer vers le fichier phpnuke-4.3/sql/nuke.sql. Mais ATTENTION ! vous allez vous faire jeter, il faut enlever tous les commentaires qu'il y a dedans (les lignes commençant par #), au besoin voici mon nuke.sql. Une fois que vous avez pointé vers le bon fichier, cliquez sur Exécuter, les tables sont alors créées.

La manip est similaire chez Online.

La première chose à faire maintenant que ce soit avec phpMyAdmin chez votre hébergeur ou à partir de l'interface d'administration de PHPNuke est de modifier le mot de passe d'administrateur par défaut God.

N'oubliez pas maintenant éventuellement de modifier le fichier config.php pour mettre les paramètres de connexion de votre base.
 
 
[Retour page d'acceuil FUNIX]