[Apache] Problème de création d'un fichier avec PHP (résolu)

Applications, problèmes de configuration réseau
Tristelune
Elfe
Messages : 516
Inscription : mer. 01 août 2007, 16:38

[Apache] Problème de création d'un fichier avec PHP (résolu)

Message par Tristelune »

Salut à tous,

j'aimerais créer un fichier xml à l'aide de php, mais impossible de créer le fichier. Comme je ne comprends pas encore bien ce qui se passe, il se peut que je dise pas mal de bêtises.

Je fais un site internet et j'utilise Apache pour afficher mes pages internet. Pour créer le fichier .xml, j'utilise le code suivant:

Code : Tout sélectionner

<?php
.
.
.
$fp = fopen("news.xml", "w+");
fputs($fp,$xml);
fclose($fp);
?>
Ma variable $xml n'est pas vide et contient une chaîne de caractères. Si j'exécute mon script, le fichier n'est pas créé. Après quelques recherches, il me semble que le problème vienne des droits d'accès. Je développe mon site web dans mon home, genre /home/utilisateur/site_web/. L'adresse http://localhost/~user/ pour Apache correspond à /home/utilisateur/site_web/.
J'ai remarqué que si je donnais les droits 777 à utilisateur/ et site_web/ le fichier est créé et tout fonctionne comme il faut. Je me demande toutefois si c'est vraiment une bonne idée de donner l'accès 777 à ces deux répertoires. N'y a-t-il pas moyen de régler le problème autrement ?
En cherchant un peu avec Google, j'ai lu certaines choses sur les groupes apache et nobody, mais ce n'était pas très clair. Peut-on magouiller un truc avec un groupe apache ou je ne sais quoi ? Puis-je donner à Apache les mêmes droits que "utilisateur" ?

Merci!
Dernière modification par Tristelune le mer. 26 sept. 2007, 22:34, modifié 1 fois.
Tristelune
Elfe
Messages : 516
Inscription : mer. 01 août 2007, 16:38

Message par Tristelune »

Après une bonne dose de Google, j'ai trouvé une solution qui me satisfait mieux. J'ai remarqué qu'Apache effectue les opération en tant qu'utilisateur nobody et appartient au groupe nobody. J'ai donc donné les droits 775 au répertoire dans lequel je voulais écrire le fichier et j'ai défini que ce répertoire appartient au groupe nobody. Du coup Apache peut me créer le fichier sans problème.

Mais le plus sympa est que ce que j'ai fait ne servait à rien. Je n'ai pas besoin d'écrire un fichier à l'aide de php pour faire ce que je veux...... Toujours sympa de réfléchir à quelque chose dont on a pas besoin. :cry:

Espérons que ça servira à d'autres!
Répondre