Aller au contenu

Problème de permissions


muller80

Sujets conseillés

Bonjour,

Ayant fait l'acquisition d'un logiciel sur mesure pour site de généalogie, je me retrouve confronté face à un problème.

Sur le site test, le logiciel fonctionne parfaitement.

Une fois installé sur mon serveur, je me retrouve bloqué avec un problème de permission.

Le logiciel est couplé avec IPB 2.3.1, et lorsque un membre valide la création de son arbre généalogique, un dossier est créé par défaut dans un répertoire trees.

Or il s'avère que le script octroie à ce répertoire pensant la création des droits 777.

Seulement lorsque je vérifie les droits sont à 744.

Je me suis rapproché de concepteur qui me dit d'apporter les modifications nécessaire dans le php.ini du site afin que celui ci ne modifie pas les droits.

Or la je suis perdu.

QUe modifié ? Ou modifié ??

Merci de votre aide.

Lien vers le commentaire
Partager sur d’autres sites

Me revoila,

en regardant un peu le code je trouve cela :

//-----------------------------------------
// Ok, then let's create
//-----------------------------------------

$did_folder = 0;

$guid = $this->lib->generate_guid();

@mkdir( ROOT_PATH . 'trees/' . $tree_name, 0777 );
if( $this->lib->write_index_file( ROOT_PATH . 'trees/' . $tree_name, $guid ) )
{
$did_folder = 1;
}


$this->ipsclass->DB->do_insert( 'fam_trees', array( 'guid' => $guid,
'mid' => $this->ipsclass->member['id'],
'tree_name' => $this->ipsclass->input['tree_name'],
'folder_name' => $did_folder ? $tree_name : null,
) );

$this->ipsclass->DB->do_update( 'members', array( 'has_tree' => 1 ), 'id=' . $this->ipsclass->member['id'] );

$this->ipsclass->print->redirect_screen( $this->ipsclass->lang['createtree_success'], 'autocom=family&code=view' );
}

Je me rends compte que pour les anciennes version de PHP on n'avait pas besoin de mettre le Chmod

J'ai donc modifié le code de façon à lui dire ce qu'il devait faire.

//-----------------------------------------
// Ok, then let's create
//-----------------------------------------

$did_folder = 0;

$guid = $this->lib->generate_guid();

@mkdir( ROOT_PATH . 'trees/' . $tree_name, 0777 );
@chmod( ROOT_PATH . 'trees/' . $tree_name, 0755 );
if( $this->lib->write_index_file( ROOT_PATH . 'trees/' . $tree_name, $guid ) )
{
$did_folder = 1;
}


$this->ipsclass->DB->do_insert( 'fam_trees', array( 'guid' => $guid,
'mid' => $this->ipsclass->member['id'],
'tree_name' => $this->ipsclass->input['tree_name'],
'folder_name' => $did_folder ? $tree_name : null,
) );

$this->ipsclass->DB->do_update( 'members', array( 'has_tree' => 1 ), 'id=' . $this->ipsclass->member['id'] );

$this->ipsclass->print->redirect_screen( $this->ipsclass->lang['createtree_success'], 'autocom=family&code=view' );
}

Maintenant lorsque le dossier est créé , le chemin friendly_URL est correct et est disponible de suite.

Je me retrouve face à 2 soucis.

Lorsque je valide, je me fait déconnecté du forum, et doit d'abord me reconnecter idem si j'applique une suppression.

hors lorsque j'utilise la premère version originale, je n'ai pas ce soucis, sauf que je dois mettre les chmod à la main via ftp..

Une idée de ce qui pourrais faire que je me retrouve déconnecté ?

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

Tu ne nous dit pas si Php tourne en module apache, ou en CGI avec suphp.

S'il est en module Apache, les permissions du répertoire créé devraient être correctes pour qu'il puisse écrire dedans.

Lance un "ls -ld rep" (avec rep égal au répertoire créé), qu'on puisse voir les permissions, utilisateur, groupe de celui-ci.

Lien vers le commentaire
Partager sur d’autres sites

Lance un "ls -ld rep" (avec rep égal au répertoire créé), qu'on puisse voir les permissions, utilisateur, groupe de celui-ci.

Je ne suis pas doué à ce point pour savoir lancé cette commande .. Du moins à quel niveau je dois me placer.

Je suis sur un dédié OVH en realease2 (Gentoo)

Lien vers le commentaire
Partager sur d’autres sites

Il me semble que ce soit cette ligne qui impose ensuite une déconnexion:

$this->ipsclass->DB->do_update( 'members', array( 'has_tree' => 1 ), 'id=' . $this->ipsclass->member['id'] );

Si tu modifies l'entrée correspondant à l'utilisateur, Invision force une déconnexion.

PS: et si tu es en release 2, ton script Php tourne en CGI avec suphp. Il devrait donc avoir les permissions correctes ...

Lien vers le commentaire
Partager sur d’autres sites

Ben sans l'ajout dans le code de la ligne _AT_chmod , je me retrouve automatiquement avec des droits à 744 et le dossier se retrouve inaccessible.

Cette ligne : $this->ipsclass->DB->do_update( 'members', array( 'has_tree' => 1 ), 'id=' . $this->ipsclass->member['id'] );

Est censé mettre à jour la table membre pour dire que si 1 , le membre à un arbre et si 0 il n'en a pas.

Je tourne un peu en rond....

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...