Page 1 sur 1

création de fichier sur serveur distant

Posté : 18 déc. 2011, 22:24
par foj
Bonjour,

J'ai une question concernant la création de fichier en PHP. Je suis en train de faire la partie admin d'un site, et pour cela depuis mes pages administrateurs je crée des fichiers qui seront des pages du site. Cela fonctionne mais sur mon serveur les pages sont crées par l'utilisateur Apache et ne sont pas accessible depuis l'exterieur, ce qui m'ennuie fortement.

Image

Pour créer la page j'utilise la fonction fwrite.

Comment puis-je faire pour la rendre accessible de puis le web ? dois-je m'y prendre autrement pour la créer ou dois-je modifier quelque chose sur le serveur?

Merci d'avance pour vos réponce.

Re: création de fichier sur serveur distant

Posté : 18 déc. 2011, 22:38
par moogli
salut,

si apache créer le fichier il doit pouvoir le lire, vérifie le chmod.

Comment fait tu exactement ?

@+

Re: création de fichier sur serveur distant

Posté : 18 déc. 2011, 23:01
par foj
J'ai mis les droits en lecture écriture (0777).

Ma fonction est celle ci-dessous.

Code : Tout sélectionner

function creerFichier($fichierChemin, $fichierNom, $droit="", $type, $id, $fichierBase){ $fichierExtension="php"; $cheminDossier=$_SERVER["DOCUMENT_ROOT"].$fichierChemin."/"; $fichierCheminComplet = $cheminDossier.$fichierNom; if($fichierExtension!=""){ $fichierCheminComplet = $fichierCheminComplet.".".$fichierExtension; } if (!$fp1 = fopen($cheminDossier.$fichierBase, "r")) { echo "Echec de l'ouverture du fichier"; return false; exit; } else { while (!feof($fp1)) { //on parcourt toutes les lignes $pageContenu .= fgets($fp1, 4096); // lecture du contenu de la ligne } fclose($fp1); } $fichierContenu = "<?php $"."id='".$id."'; \n $"."type='".$type."'; ?> \n ".$pageContenu; // création du fichier sur le serveur $leFichier = fopen($fichierCheminComplet, "wb"); fwrite($leFichier,$fichierContenu); fclose($leFichier); // la permission if($droit==""){ $droit="0777"; } // on vérifie que le fichier a bien été créé $t_infoCreation['fichierCreer'] = false; if(file_exists($fichierCheminComplet)==true){ $t_infoCreation['fichierCreer'] = true; } // on applique les permission au fichier créé $retour = chmod($fichierCheminComplet,intval($droit,8)); $t_infoCreation['permissionAppliquer'] = $retour; return $t_infoCreation; }

Re: création de fichier sur serveur distant

Posté : 19 déc. 2011, 00:02
par moogli
tu a un message d'erreur ?

@+

Re: création de fichier sur serveur distant

Posté : 19 déc. 2011, 22:18
par foj
Oui j'ai cela

Warning: require_once(Connections/db_conn.php) [function.require-once]: failed to open stream: Operation not permitted in /home/httpd/vhosts/fojwideweb.ch/httpdocs/contenu_admin/test.php on line 4

Fatal error: require_once() [function.require]: Failed opening required 'Connections/db_conn.php' (include_path='.:/usr/share/pear:/usr/share/php') in /home/httpd/vhosts/fojwideweb.ch/httpdocs/contenu_admin/test.php on line 4

Si je charge la même page depuis fileZila (donc avec mon accès utilisateur) je peux lire parfaitement la page.

Merci pour votre aide

Re: création de fichier sur serveur distant

Posté : 21 déc. 2011, 00:34
par Aureusms
Est ce que le dossier 'Connections/' est dans le dossier httpdocs ?

Re: création de fichier sur serveur distant

Posté : 21 déc. 2011, 21:22
par foj
Oui il l'est. De plus, si je télécharge la page et que je la retransferts depuis fileZila avec mon loggin cela fonctionne trés bien. Le problème est seulement si la page est avec l'utilisateur Apache (voir l'image du premier post)... Mais je comprends pas pourquoi!?!?

Re: création de fichier sur serveur distant

Posté : 22 déc. 2011, 00:12
par Aureusms
apache a-t-il les droits sur le dossier aussi ?