Archives FluxBB.fr

Les archives de FluxBB.fr

Vous n'êtes pas identifié(e).

#1 21-12-2007 05:47:49

sisco
Membre

Conflit entre installation locale et distante de PunBB

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

#2 21-12-2007 08:42:58

tcheval
Membre

Re : Conflit entre installation locale et distante de PunBB

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

#3 21-12-2007 11:47:04

Otomatic
Régisseur

Re : Conflit entre installation locale et distante de PunBB

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

#4 21-12-2007 15:00:07

sisco
Membre

Re : Conflit entre installation locale et distante de PunBB

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

#5 21-12-2007 16:47:43

Otomatic
Régisseur

Re : Conflit entre installation locale et distante de PunBB

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

#6 21-12-2007 18:24:33

foxmask
Lugo

Re : Conflit entre installation locale et distante de PunBB

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

#7 21-12-2007 18:34:12

Herbivor
Membre

Re : Conflit entre installation locale et distante de PunBB

Je dirais plutôt l'inverse, non ? huh

Hors ligne

#8 21-12-2007 18:48:54

sisco
Membre

Re : Conflit entre installation locale et distante de PunBB

foxmask a écrit :

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...

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

#9 21-12-2007 19:33:50

Otomatic
Régisseur

Re : Conflit entre installation locale et distante de PunBB

sisco a écrit :

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

#10 21-12-2007 20:17:38

sisco
Membre

Re : Conflit entre installation locale et distante de PunBB

Merci beaucoup pour toutes ces explications. smile
Je vois en effet qu'il y a eu derrière tout ça un vrai travail de fond. Merci encore.

François

Hors ligne

#11 21-12-2007 22:30:47

foxmask
Lugo

Re : Conflit entre installation locale et distante de PunBB

Herbivor a écrit :

Je dirais plutôt l'inverse, non ? huh

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 wink


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

Pied de page des forums