probleme creation fichier php sur serveur

Nouveau WRInaute
bonjour, nouvelle journée, nouveau problème sur le serveur dédié, théoriquement le dernier problème.


actuellement, je crée mes fichiers php de la sorte (en generation automatique)

Code:
	$file = fopen("../".$url, "w+"); 

	fwrite($file, $pagephp); 
	
	fclose($file);

en local il n'y a pas de problème, tout fonctionne comme il faut.

sur le serveur dédié, le même code fait apparaitre une page blanche (le fichier est crée il n'y a pas de souci).

si je télécharge sur mon ordi le fameux fichier copié, que je supprime celui du serveur et remplace par celui télécharge la page s'affiche correctement.

J'ai tenté pas mal d'approches différentes (chmod principalement) et aucune ne fonctionne, j'ai toujours qu'une page vide en affichage tant que je n'ai pas telechargé le fichier sur mon ordi, et renvoyé le fichier.

si quelqu'un à déjà eu le souci, merci de me donner un coup de pâte, je sèche la...
 
WRInaute accro
La page vide veut souvent dire erreurs (+warnings). Essaie de récupérer ces erreurs et warnings afin de savoir ce qu'il se passe. Tout le monde gagnera du temps ;)
 
Nouveau WRInaute
merci pour les réponses :) mais les erreurs il n'y en a pas en local donc il n'y a pas de raison qu'il y en ai en distant, "surtout pas" si je telecharge le fichier et le re balance et la ca marche.

par contre le fichier n'existe pas avant c'est bien la le souci, apres je pense en effet que c'est une question de propriétaire, mais il se passe une chose étrange. Lorsque je veu remplacer le fichier de mon ordi sur le serveur il me met que c'est impossible (en effet, permission pas autorisé) mais je peu supprimer le fichier du serveur puis remplacer.

y a t'il des choses dans le .htacess qui pourrais justement expliquer cela?
 
WRInaute accro
Infostravaux a dit:
merci pour les réponses :) mais les erreurs il n'y en a pas en local donc il n'y a pas de raison qu'il y en ai en distant, "surtout pas" si je telecharge le fichier et le re balance et la ca marche.
J'ai pas lu la suite mais là déjà je peux te dire que BIEN SOUVENT, quand il n'y a pas de blème en local, ca ne veux rien dire pour le distant, à moins (ce qui est très rare) d'avoir exactement la même config.
 
Nouveau WRInaute
que le petit code que j'ai trouvé est pratique en effet. je n'ai pas trouvé pour afficher les erreurs partout par contre sur la page oui, ce qui est le principal.

bref...

Code:
Warning: include(admin/idents.php) [function.include]: failed to open stream: Operation not permitted in monsite/httpdocs/petit-outillage-parc-location-Remorque-NOVAL-2-essieux.php on line 7

Warning: include(admin/idents.php) [function.include]: failed to open stream: Operation not permitted in monsite/httpdocs/petit-outillage-parc-location-Remorque-NOVAL-2-essieux.php on line 7

Warning: include() [function.include]: Failed opening 'admin/idents.php' for inclusion (include_path='.:') in monsite/httpdocs/petit-outillage-parc-location-Remorque-NOVAL-2-essieux.php on line 7

en effet il me semblerais bien que ce soit une question de droits de fichiers mais pourquoi cette erreur?
 
Nouveau WRInaute
je vais rajouter la partie ftp qui est étrange vis a vis du transfert du fichier vu que j'ai vraiment l'impression que le fichier php qu'y est crée n'a vraiment aucune permission, chose que je ne comprend vraiment pas.

Code:
Statut :	Connecté
Statut :	Démarrage du téléchargement de /httpdocs/petit-outillage-parc-location-Remorque-NOVAL-2-essieux.php
Commande :	CWD /httpdocs
Réponse :	250 CWD command successful
Commande :	TYPE A
Réponse :	200 Type set to A
Commande :	PASV
Réponse :	227 Entering Passive Mode (188,165,198,46,159,204).
Commande :	RETR petit-outillage-parc-location-Remorque-NOVAL-2-essieux.php
Réponse :	150 Opening ASCII mode data connection for petit-outillage-parc-location-Remorque-NOVAL-2-essieux.php (3883 bytes)
Réponse :	226 Transfer complete
Statut :	Transfert de fichier réussi, transféré 4 061 octets en 1 seconde
Statut :	Démarrage de l'envoi de \\SERVEUR\www\sites\generation - Copie\petit-outillage-parc-location-Remorque-NOVAL-2-essieux.php
Commande :	PASV
Réponse :	227 Entering Passive Mode (188,165,198,46,130,134).
Commande :	STOR petit-outillage-parc-location-Remorque-NOVAL-2-essieux.php
Réponse :	550 petit-outillage-parc-location-Remorque-NOVAL-2-essieux.php: Permission denied
Erreur :	Erreur critique de transfert du fichier
 
Nouveau WRInaute
bonjour bonjour, j'ai tenté certaines choses ce week end et pour l'instant rien ne fonctionne sur ce point... si quelqu'un a une idée cela serais fort apprécié :)
merci d'avance
 
WRInaute accro
PHP Safemode si tu est sur ON tu met sur OFF si tu est sur OFF tu met sur ON (en fait je me souviens plus mais je pense qu'il faut que ce soit sur OFF) ça devrais résoudre ton souci.
Il y a du plesk sur le serveur ?
 
Nouveau WRInaute
bon, de bidouille en bidouille ca commence a fonctionner. le seul truc que je ne comprend pas du tout doit être probablement lié à des variables de porté globales ou pas.

Code:
include("admin/idents.php");
sur la page, alors que tout fonctionne comme il faut, donne un beau

Warning: mysql_query() [function.mysql-query]: Access denied for user 'apache'@'localhost' (using password: NO) in /var/www/vhosts/.../httpdocs/petit-outillage-parc-location-Remorque-QUEMERAIS-2-essieux.php on line 11

Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in /var/www/vhosts/.../httpdocs/petit-outillage-parc-location-Remorque-QUEMERAIS-2-essieux.php on line 11
Access denied for user 'apache'@'localhost' (using password: NO)

alors que la page d'idents contient bien les parametres de connexion, hors les variables, même si je les appels par un bête "echo" cela ne ressort rien du tout...



bon j'ai vraiment un probleme au niveau des paramètres, doit me manquer quelque chose dans la config je pense


un bete

Code:
$myServer = "localhost";
	
include("http://jardi-concept-location.fr/idents.php");

et dans le fichier "idents.php"

Code:
echo 'serveur:'.$myServer ;
ne donne rien en resultat

je n'avais encore jamais vu cela, donc si quelqu'un a une idée, merci bien :)
 
WRInaute accro
Je pense que si tu fait :

include("http://jardi-concept-location.fr/idents.php");

en fait tu inclu le script "ident.php" au travers d'une connections web et non pas au travers du file System (pas certain que le wrapper soir le même dans les deux cas) donc l'inclusion doit se faire au travers d'une nouvelle connections apache donc avec une session différente, un thread différent, donc des variables différentes et dans ton cas pas initialisées ;-)

essaie un truc genre :

include($_SERVER['DOCUMENT_ROOT'].'/dossier/vers/mon/fichier/idents.php');

a mon avis tu devrais éviter les include http:// et quand tu as des chaînes en dur sans variables utilise plutôt le simple quote (') pour encadrer tes chaînes a la place du double (") -> (moins gourmand car les chaînes encadrées par des " sont évaluées par le moteur php et pas seulement traitées comme tel)
 
Nouveau WRInaute
bonne idée je pense, cela dit j'avais essayé d'enlever le safe_mode de diverses manières, et pour l'instant rien ne marche (la connexion ssh s'arrête après le login...)

Code:
Warning: include() [function.include]: SAFE MODE Restriction in effect. The script whose uid is 48 is not allowed to access /var/www/vhosts/jardi-concept-location.fr/httpdocs/idents.php owned by uid 10015 in /var/www/vhosts/jardi-concept-location.fr/httpdocs/petit-outillage-parc-location-Camion-Benne-3T5-Permis.php  on line 7

un problème en amène un autre il me semble :) en espérant que celui la résoudra le tout...
 
WRInaute accro
essaie de raccrocher dans le même groupe l'utilisateur uid 48 (vraisemblablement php) et le 10015 (vraisemblablement l'utilisateur FTP) mais c'est pas dit que ça roule.

Lorsque je veu remplacer le fichier de mon ordi sur le serveur il me met que c'est impossible (en effet, permission pas autorisé) mais je peu supprimer le fichier du serveur puis remplacer.
Typique comme souci en faisant cela tu change le propriétaire du fichier donc ça roule.
La vrai solution simple conciste a donner la propriété du fichier généré dynamiquement aux même utilisateur que ceux que tu upload mais c'est pas forcement possible car il me semble que le script doit avoir un privilège root pour ça.

Bref c'est un souci de droits et permissions utilisateurs les scripts que tu génère dynamiquement sont la propriété de l'utilisateur php qui n'a pas les mêmes droits que l'utilisateur FTP (rencontré que sous plesk) une 'bidouille' pas très sécu qui peut t'aider est d'accorder les privilèges maximum a tous tes fichiers et dossier concernés.
CAD de permettre aux "autres utilisateur" d'écrire et d'exécuter, du coup tu passe par dessus les limitations de sécurité.

Tu peut aussi regarde du côté de SUID qui peut t'aider

Droit SUID

Ce droit s'applique aux fichiers exécutables, il permet d'allouer temporairement à un utilisateur les droits du propriétaire du fichier, durant son exécution. En effet, lorsqu'un programme est exécuté par un utilisateur, les tâches qu'il accomplira seront restreintes par ses propres droits, qui s'appliquent donc au programme. Lorsque le droit SUID est appliqué à un exécutable et qu'un utilisateur quelconque l'exécute, le programme détiendra alors les droits du propriétaire du fichier durant son exécution. Bien sûr, un utilisateur ne peut jouir du droit SUID que s'il détient par ailleurs les droits d'exécution du programme. Ce droit est utilisé lorsqu'une tâche, bien que légitime pour un utilisateur classique, nécessite des droits supplémentaires (généralement ceux de root). Il est donc à utiliser avec précaution. Pour des partitions supplémentaires, il faut activer le bit suid pour pouvoir l'utiliser en le spécifiant dans les options des partitions concernés dans le fichier fstab.

Je sais pas si la faute incombe a Plesk et j'ai trop peut travaillé avec pour finir par bien maîtriser la bête mais a chaque fois j'ai galéré comme un fou avec ce truc qui si il présente une interface propre et pas trop moche c'est, dans plusieurs cas, toujour révélé casse c*****e / Pied.
 
Nouveau WRInaute
en effet il commence a sembler que plesk fait vraiment n'importe quoi
sur un serveur mutualisé le script fonctionne comme il faut (les include marchent au premier coup)
sur le serveur ovh dédié j'ai toujours mes fameux "Operation not permitted in monsite/httpdocs/petit-outillage-parc-location-Remorque-NOVAL-2-essieux.php on line 7"
 
Discussions similaires
Haut