Dernière modification 7.1.01
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.
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.
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
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
######################################################################
# 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
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
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é
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).
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;
A noter que pour Free vous trouverez une excellente FAQ pour l'installation de PHPNuke à l'URL: http://highsecu.free.fr/download/faqfree/
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.
- 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.
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] |