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