Les archives de FluxBB.fr
Vous n'êtes pas identifié(e).
Bonjour à tous,
j'ai vraiment été séduit par l'aspect très épuré de PunBB. J'ai fait une installation locale pour voir les choses de plus près en http://localhost/Forum. Quand j'ai pu me rendre compte que cela me satisfaisait, j'ai tenté une installation sur un serveur distant (chez free : http://sisco.laf.free.fr/Forum).
Tout s'est passé parfaitement bien, sauf que lorsque je suis redirigé automatiquement par le forum (par exemple juste après m'être identifié en tant qu'administrateur), la redirection se fait sur le forum local !!!
Donc :
1) je suis sur http://sisco.laf.free.fr/Forum
2) Je m'identifie en tant qu'administrateur
3) Je suis aussitôt redirigé vers http://localhost/Forum !!!
Incroyable non ! Avez-vous une idée ?
Merci d'avance.
François
Dernière modification par sisco (21-12-2007 05:48:42)
Hors ligne
Surement un problème avec l'url de base regarde se post : http://www.punbb.fr/forums/viewtopic.php?id=6739
Kit Graphique gratuit : http://www.tcheval.net
URL Rewriting de FluxBB/PunBB en moins de 1 minutes : http://www.tcheval.net/forum/s1871-page … inute.html
Hors ligne
Bonjour,
Il faut modifier le fichier config.php pour que cela puisse fonctionner quel que soit l'hébergeur.
Par exemple, mon « vrai » forum est chez Free, mais :
- Je développe et mets au point en local sous WampServer
- Je fais des essais poussés chez un autre hébergeur
- Je fais tourner mes sites en stand-alone sur CD-ROM ou clé USB
J'ai été « partisan du moindre effort » pour m'éviter de le modifier avant chaque transfert par FTP suivant le destinataire et je me suis creusé la tête pour trouver une solution perenne :
Code modifié de config.php
<?php
$db_type = 'mysql';
$db_prefix = 'punbb_';
$cookie_name = 'punbb_cookie';
$cookie_domain = '';
$cookie_path = '/';
$cookie_secure = 0;
switch ($_SERVER['SERVER_NAME']) {
case "aviatechno.free.fr": // Site réel chez Free
$db_host = 'sql.free.fr';
$db_name = 'login_free';
$db_username = 'login_free';
$p_connect = true;
$db_password = 'mot_de_passe_site_1';
$cookie_seed='graine_1';
break;
case "aviatechno": // Site local sous Wampserver
$db_host = 'localhost';
$db_name = 'aviatechno';
$db_username = 'root';
$p_connect = true;
$db_password = 'mot_de_passe_site_2';
$cookie_seed = 'graine_2';
break;
case "microweb": // Stand Alone sur CD-ROM ou Clé USB
$db_host = 'localhost';
$db_name = 'aviatechno';
$db_username = 'root';
$p_connect = false;
$db_password = 'mot_de_passe_site_3';
$cookie_seed = 'graine_3';
break;
case "aviatechno.info": // Site chez 1and1
$db_host = 'db780.1and1.fr';
$db_name = 'nom_base_1and1';
$db_username = 'user_1and1';
$p_connect = true;
$db_password = 'mot_de_passe_site_4';
$cookie_seed='graine_4';
break;
default:
$db_host = NULL;
$db_name = NULL;
$db_username = NULL;
$p_connect = true;
$db_password = NULL;
$cookie_seed= NULL;
}
define('PUN', 1);
?>Re-Bonjour,
J'ai oublié de donner les modifs de cache_config.php concernant justement les « Redirections »
À la fin du fichier cache_config.php, j'ai ajouté :
include('cache_config_modif_oto.php');juste avant la ligne "?>"
Et le fichier cache_config_modif_oto.php contient :
<?php
// Modification du tableau $pun_config[ ] du fichier cache_config
switch ($_SERVER['SERVER_NAME']) {
case "aviatechno.free.fr":
$pun_config['o_base_url'] = 'http://aviatechno.free.fr/punbb';
break;
case "aviatechno":
$pun_config['o_base_url'] = 'http://aviatechno/punbb';
break;
case "microweb":
$pun_config['o_base_url'] = 'http://microweb/aviatechno/punbb';
break;
case "aviatechno.info":
$pun_config['o_base_url'] = 'http://aviatechno.info/punbb';
break;
default:
$pun_config ['o_base_url'] = NULL;
}
?>Le problème, est que le fichier cache_config.php est réécrit lors de modifications de configuration par le script cache.php.
J'ai donc aussi modifié le fichier cache.php vers la ligne 88
Remplacer :
// Output config as PHP code
$fh = @fopen(PUN_ROOT.'cache/cache_config.php', 'wb');
if (!$fh)
error('Unable to write configuration cache file to cache directory. Please make sure PHP has write access to the directory \'cache\'', __FILE__, __LINE__);
fclose($fh);
}Par :
// Output config as PHP code
$fh = @fopen(PUN_ROOT.'cache/cache_config.php', 'wb');
if (!$fh)
error('Unable to write configuration cache file to cache directory. Please make sure PHP has write access to the directory \'cache\'', __FILE__, __LINE__);
// [modif oto] Ajout de include('cache_config_modif_oto.php') pour les modif de base_url
fwrite($fh, '<?php'."\n\n".'define(\'PUN_CONFIG_LOADED\', 1);'."\n\n".'$pun_config = '.var_export($output, true).';'."\n\n".'include(\'cache_config_modif_oto.php\');'."\n\n".'?>');
fclose($fh);
}Dernière modification par Otomatic (21-12-2007 11:56:26)
Ce n'est pas parce que l'erreur se propage qu'elle devient vérité. Gandhi
Sont différents : ça et sa - est et ait - à et a - ce et se - mes et mais ou met - été et était - c'est et ces - ce-si et ceci
La vie sans musique est tout simplement une erreur, une fatigue, un exil. Friedrich Nietzsche
Hors ligne
Et bien merci infini pour toutes ces réponses, en plein dans le mille.
Merci pour tes codes Otomatic, je m'en inspirais je pense.
Je crois que je vais pouvoir considérer le problème comme résolu. Mais avant, j'aimerais (pour être sûr de bien comprendre) bien faire un petit récapitulatif sur : quel est le minimum à modifier à la main pour réussir un transfert local <--> distant impeccable ? Car j'ai encore un petit doute.
1) Il faut changer le fichier /config.php
2) Il faut changer le fichier /cache/cache_config.php où à ma connaissance il suffit de modifier seulement la ligne "'o_base_url'"
3) Il faut importer la base de données
Mais, arrêtez moi si je me trompe :
4) il faut aussi modifier la case "o_base_url" de la table pun_config de la base de données fraîchement importée.
Question 1
Et là j'ai un doute ? 1), 2), 3) et 4) sont sont-ils suffisants ? Dans la discussion que l'on m'a suggérée de lire il parle d'effacer le contenu du dossier cache, ce qui me parait étrange. A quoi serviraient les modifications faites en 2) ?
Question 2
Autre question, sommes nous absolument obligés de faire une modification dans la base de données ? Je trouve ça un peu dommage, car on pouvait s'attendre à ce que la base de donnée gère le contenu uniquement et soit portable telle quelle du local au distant.
Merci beaucoup pour votre aide.
Dernière modification par sisco (21-12-2007 15:03:12)
Hors ligne
Bonsoir, [Faut bien changer un peu]:P
Avant que je n'effectue ces modifications de fichiers, avant de transférer par FTP, je modifiais :
- config.php pour les informations base de données
- la ligne "o_base_url" de cache_config.php
Je n'ai jamais modifié la base de données car le rôle du fichier cache_config.php est d'éviter d'aller l'interroger si ledit fichier existe.
Maintenant, avec mes quatre localisation du même forum (Maître chez Free.fr), je fais mes essais et modifications en local sous WampServer, puis je transfère les fichiers sur les autres sites via FTP, sans rien modifier avant les transferts et, pour les mises à jour des bases de données, j'exporte toute la base depuis http://sql.free.fr ou http://sql.free.fr/backup.php puis je l'importe dans les autres sites via PhpMyAdmin.
Ce n'est pas parce que l'erreur se propage qu'elle devient vérité. Gandhi
Sont différents : ça et sa - est et ait - à et a - ce et se - mes et mais ou met - été et était - c'est et ces - ce-si et ceci
La vie sans musique est tout simplement une erreur, une fatigue, un exil. Friedrich Nietzsche
Hors ligne
qd on met un site local sur le web :
1) on supprime les fichier cache_*.php du repertoire cache
2) on change dans la base o_base_url
ca suffit amplement...
http://www.foxmask.info
HaveFnuBB! le seul forum produit avec le framework PHP5 Jelix
(dé)pot de miel
Membre de la CoreTeam Jelix
Hors ligne
Je dirais plutôt l'inverse, non ? 
Hors ligne
qd on met un site local sur le web :
1) on supprime les fichier cache_*.php du repertoire cache
2) on change dans la base o_base_urlca suffit amplement...
Je ne suis pas tout à fait d'accord (mais je peux me tromper). Je dirais plutôt :
1) on modifie le fichier /config.php (ça me semble incontournable)
2) on change dans la base o_base_ur
3) on supprime les fichiers cache_*.php du répertoire cache
Otomatic, tu dis que du ne touche pas à la base de données et donc tu ne fais pas l'étape 2). Je suis assez étonné car elle me semble incontournable, non ?
Sinon, qui a-t-il dans la case o_base_ur de ta base de données ?
François
Hors ligne
Otomatic, tu dis que du ne touche pas à la base de données et donc tu ne fais pas l'étape 2). Je suis assez étonné car elle me semble incontournable, non ?
Sinon, qui a-t-il dans la case o_base_ur de ta base de données ?
Bonsoir,
Il est vrai que dans les bases des quatre localisations, il y a :
o_base_url = http://aviatechno.free.fr/punbb
ce qui correspond à une seule localisation.
Mais, ça ne me contrarie en aucune manière, puisque les procédures appellent d'abord le fichier cache_config.php avant d'éventuellement le créer, s'il n'existe pas, à partir de la base de données.
// Load cached config
@include PUN_ROOT.'cache/cache_config.php';
if (!defined('PUN_CONFIG_LOADED'))
{
require PUN_ROOT.'include/cache.php';
generate_config_cache();
require PUN_ROOT.'cache/cache_config.php';
}D'autre part, sur mes quatre localisations, lorsque je vais voir dans l'administration, Options, l'URL de base est la bonne, puisqu'elle est obtenue à partir du fichier cache_config.
Si j'effectue alors une modification d'une option, quelle qu'elle soit, les valeurs modifiées seront écrites dans la base de données ET dans le fichier cache_config.php
Avant d'effectuer toutes les modifications décrites précédemment, j'ai « décortiqué » le fonctionnement base de données et fichier cache_config.php.
CQFD.
Ce n'est pas parce que l'erreur se propage qu'elle devient vérité. Gandhi
Sont différents : ça et sa - est et ait - à et a - ce et se - mes et mais ou met - été et était - c'est et ces - ce-si et ceci
La vie sans musique est tout simplement une erreur, une fatigue, un exil. Friedrich Nietzsche
Hors ligne
Merci beaucoup pour toutes ces explications. 
Je vois en effet qu'il y a eu derrière tout ça un vrai travail de fond. Merci encore.
François
Hors ligne
Je dirais plutôt l'inverse, non ?
peu import l'ordre tant qu'on ne fait pas d'accès au site avant que ces 2 etapes aient été faites
@sisco : oui pour le config.php ssi la base ne porte pas le meme nom ni le host 
http://www.foxmask.info
HaveFnuBB! le seul forum produit avec le framework PHP5 Jelix
(dé)pot de miel
Membre de la CoreTeam Jelix
Hors ligne