Aller au contenu

droit d'upload php.ini avec Social engine


Spoon

Sujets conseillés

bonjour,

je ne sais pas si c'est le bon endroit pour poster ma question mais après des heures de recherche sur google et plusieurs forum, je n'ai tjs pas eu de réponse à mon problème que voici.

Avant tout je tient à préciser que je dispose d'un serveur dédié chez OVH( non pas un virtuel, mais un vrai dédié - Celui ci pour être exacte) sur le quel j'ai installer Social Engine. (script style facebook)

Toute l'installation c'est bien passée, et tout fonctionne nickel, sauf l'upload d'image.

Une fois inscrit dessus, il est impossible d'uploader une image à partir de son profil ( image avatar de profil par exemple )

Cela se pose pour tout upload d'image en fait.

quand je vais dans l'admin de mon script je vois les deux message suivant.

- PHP: Open_basedir: If set, this php.ini directive may cause problemes with file uploads, if you run into problemes later, try turning it of

- PHP: Safe_mode: this php.ini directive may cause problemes with file uploads and has been deprecated and renoved as of php 6.

D'après ce que je comprend c'est une histoire de modification à faire dans le fichier php.ini

Je me suis donc connecté en ssh via le logiciel WinSCP et j'ai pu récuperer mon fichier php.ini qui se trouvait dans: root/etc ( du moins c'est le seul endroit ou j'ai trouver un fichier php.ini, donc j'espère que c'est bien celui là que il faut modifier.

Et c'est là que je bloque, je ne sais absolument pas quelle ligne modifier.

j'ai bien trouver les lignes ...

- safe_mode

et

- open_basedir

Et voici ce que j'ai a ces emplacement.

- safe_mode ( a savoir que les ///////// sépare les différentes partie signifie que ce sont des paragraphes différents concernant le safe_mode que j'ai trouver dans le fichier php.ini)

-------------

; Safe Mode;

safe_mode = Off

; By default, Safe Mode does a UID compare check when

; opening files. If you want to relax this to a GID compare,

; then turn on safe_mode_gid.

safe_mode_gid = Off

; When safe_mode is on, UID/GID checks are bypassed when

; including files from this directory and its subdirectories.

; (directory must also be in include_path or full path must

; be used when including)

safe_mode_include_dir =

; When safe_mode is on, only executables located in the safe_mode_exec_dir

; will be allowed to be executed via the exec family of functions.

safe_mode_exec_dir =

/////////

; Note: If this directive is empty, PHP will let the user modify ANY

; environment variable!

safe_mode_allowed_env_vars = PHP_

/////////

; This directive contains a comma-delimited list of environment variables that

; the end user won't be able to change using putenv(). These variables will be

; protected even if safe_mode_allowed_env_vars is set to allow to change them.

safe_mode_protected_env_vars = LD_LIBRARY_PATH

/////////

[/color]

sql.safe_mode [color=Red]=[/color] Off

[b][color=Magenta]//////////////////////////////////////////////////////[/color][/b]

- open_basedir

===========

[color=DarkGreen]; open_basedir, if set, limits all file operations to the defined directory

; and below. This directive makes most sense if used in a per-directory

; or per-virtualhost web server configuration file. This directive is

; *NOT* affected by whether Safe Mode is turned On or Off.

;open_basedir =[/color]

=================

J'ai bien essayer de faire

safe_mode [color=Red]=[/color] On

et mettre à la place de [color=DarkGreen];open_basedir =[/color]

open_basedir [color=Red]=[/color] On

Mais rien ne change et je reste dans l'impossibilité d'uploader une image a partir de mon script.

je tient a préciser que il n'y a rien d'autre dans le php.ini concernant le safe_mode et le open_basedir que ce que je vous ai copier/coller ci dessus.

quelqu'un pourrait il/elle me venir en aide et me dire ce que je doit modifier exactement de façon à ne plus avoir les deux message d'erreur et que je puisse uploader enfin des image a partir du script sur mon serveur dédié?

merci d'avance.

PS: Dsl pour ce super long poste, mais j'ai essayer d'être le plus clair possible.

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

Le fichier php.ini se trouve dans /usr/local/lib/php.ini en général. Mais cela peut varier selon les distributions.

La meilleure manière de savoir quel script est utilisé est d'uploader un petit fichier php sur un de tes hébergement avec ceci comme contenu :

<?php
phpinfo();
?>

Tu verras quel est le chemin du php.ini.

Ensuite, il faut désactiver l'open_basedir et le safe_mode et redémarrer Apache.

Dan

Lien vers le commentaire
Partager sur d’autres sites

En fait le php.ini je l'ai trouve ril se trouvais dans root/etc

la actuellement j'ai tout remis d'origine, car après avoir fait la modif du safe_mod et avoir rebbot le serveur, rien avais changer.

pour l'open_basedir en fait il n'ya rien, c'est moi qui avait essayer open_basedir = On

au départ il y avait juste ces lignes là au sujet de basedir...

; open_basedir, if set, limits all file operations to the defined directory

; and below. This directive makes most sense if used in a per-directory

; or per-virtualhost web server configuration file. This directive is

; *NOT* affected by whether Safe Mode is turned On or Off.

;open_basedir =

Et rien d'aitre.

donc ni on ni off.

là j'ai donc remis safe_mod en off et laisse open_basedir et rebbot le serveur et rien ne change.

je me demande si je doit pas mettre le chemin du fichier ou les image sont envoyer.

par exemple:

open_basedir = /path/de/tes/dossiers/autorisés, /path2/, path3, ...

Lien vers le commentaire
Partager sur d’autres sites

sinon j'ai tester cela:

open_basdir = /var/www/NomDuSite/httpdocs/Social/uploads_user/

mais ai je bien fait de retirer le ; qui étais devant ou je doit le laisser genre?

;open_basdir = /var/www/NomDuSite/httpdocs/Social/uploads_user/

De toute façon aucun des deux ne fonctionne.

j'ai tester avec et sans le ; devant le open_basdir car je ne savais pas si il fallais mettre une nouvelle ligne sans le ; ou laisse la ligne avec le ;

Lien vers le commentaire
Partager sur d’autres sites

Un php.ini dans root/etc ???

Vu les permissions généralement attribuées à /root, il faudrait que php et/ou Apache tourne en setuid root pour pouvoir aller lire ce fichier.

Ce serait surprenant ! :wacko:

As-tu vérifié avec phpinfo() que c'est bien celui-là d'actif ?

Lien vers le commentaire
Partager sur d’autres sites

oui j'ai vérifier le phpinfo et c'est bien le chemin qu'il m'indique.

a savoir que je suis sous plesk avec mon dédié.

Et c'est de pire en pire, personne ne parviens a me venir en aide.

je pense que je vais finir par laisser tomber le dédié, je n'aurai jamais cru que c'était aussi prise de tête ce truc.

Et malheureusement en tant que particulier, je n'ai pas forcément les moyen de me payer une infogérance ^^

Modifié par Spoon
Lien vers le commentaire
Partager sur d’autres sites

Le problème avec Plesk, c'est que c'est un peu "usine à gaz" et qu'il est difficile pour un non-aguerri de paramétrer son serveur comme il faut :!:

Je comprends bien pour l'infogérance, pas de souci. J'ai tout de même tenté de t'aider. Mais Plesk, ce n'est vraiment pas ma tasse de thé !

Et c'est de pire en pire, personne ne parviens a me venir en aide.

Quand on voit le nombre d'heures (de jours ?) qu'on peut passer à tenter de résoudre des problèmes sans y arriver, on peut aussi comprendre que même des particuliers font appel à l'infogérance. ;)

Teste tout de même en laissant open_basedir à "_vide_" et safe_mode à "off".

PS1: le ; devant une ligne (dans le fichier php.ini) signifie que cette ligne est un commentaire

PS2: assure-toi que tu n'es pas confronté aux limitations de base de php, notamment en matière de taille d'uploads. Tente avec une image plus petite que 1MB pour essayer.

Lien vers le commentaire
Partager sur d’autres sites

Je commence a comprendre le soucis de plesk, car de plus en plus de monde me dit la même chose.

mais quand j'ai pris la location de mon dédié, j'ai pas eu trop le choix, il a été installer avec plesk par ovh.

je me demande encore comment j'ai fait pour réussi à le mettre a jour ^^

pour le safe_mode et open_basedir j'ai testé toute les possibilités et aucun changement. ( toujours en redémarrant le serveur après chaque modif bien sur)

en on, en off, avec le ; sans le ; en mettant = on, etc..

mais rien ne change.

voilà un suivis de la discutions sur un des forum ovh, tu va voir on me dit de faire de drôle de trucs que bien entendu je n'ai pas préfère faire par mesure de sécurité.


/>http://forum.ovh.com/showthread.php?t=54270

pour la limitation des images elles sont par défaut à 2 mo

Et l'image que j'essaie d'uploader fait 15 Ko donc le soucis ne viens pas de là.

j'ai ajouter un plug in aussi a mon script pour proposer un album photo et quand on essaie d'uploader des images sur l'album cela dit que le téléchargement c'est bien passer mais aucune images n'est là.

le script que j'utilise est social engine

Et le plus marrant c'est que à partir du forum phpbb3 ( que j'ai aussi installer) la je parviens a uploader des avatar a partir de mon disque dur sans problème )

de plus en plus bizarre. ^^

encore merci pour ton aide.

Lien vers le commentaire
Partager sur d’autres sites

Tu peux sans problème mettre dans le fichier .htaccess du répertoire où se trouve ton script :

error_reporting(E_ALL);
ini_set('display_errors', true);

Ou alors changer le "display_errors=off" en "display_errors=on" dans le php.ini, puis redémarrer Apache (pas besoin de rebooter, on n'est pas sous Windows :) )

Si tu as des erreurs, elles devraient s'afficher à l'écran. On pourra aller plus loin une fois qu'on les connaîtra !

Lien vers le commentaire
Partager sur d’autres sites

bahh... là je comprend de moins en moins.

on ma dit de passer en FASTcgi, ce que j'ai fait, cela a fonctionné mais j'avais une erreur en voulant me connecté à ma page de connexion admin.

donc je me suis remis en module apache pour pouvoir m'y connecter.

j'ai encore tester l'upload au cas ou ( et oui l'espoir fait vivre) en configuration de début ou rien fonctionnais, donc module apache et le safe mode activé et cela fonctionne maintenant.

est ce le fait d'être passer en FASTcgi et de revenir a la normal qui fait cela ?

aucune idée mais maintenant cela fonctionne.

j'ai toujours ces deux messages d'erreur sur mon admin par contre.

si je coche la case Safe mode sous plesk:

- PHP: Open_basedir: If set, this php.ini directive may cause problemes with file uploads, if you run into problemes later, try turning it of

- PHP: Safe_mode: this php.ini directive may cause problemes with file uploads and has been deprecated and renoved as of php 6.

Et si je ne la coche pas, je n'ai que celui là.

- PHP: Safe_mode: this php.ini directive may cause problemes with file uploads and has been deprecated and renoved as of php 6.

je no comprend pas trop, mais estc e que je peux laisser la case safe mode décocher ou me conseille tu de la cocher ?

Modifié par Spoon
Lien vers le commentaire
Partager sur d’autres sites

Tu peux décocher le safe_mode ... cela ne changerait quelque chose que si tu revendais de l'espace et ouvrais ton serveur à d'autres utilisateurs.

Lien vers le commentaire
Partager sur d’autres sites

bahh justement, histoire de rentabilisé un peu ma location je voulais louer un peu d'espace à d'autres personne.

donc si je le fait, tu me conseille de cocher à nouveau la case Safe mode alors ?

Lien vers le commentaire
Partager sur d’autres sites

EDIT:

Le problème à été résolu.

Et cela sans rien modifier dans le php.ini

en fait je suis passer en FASTcgi, j'ai laisser le safe_mode

Et j'ai mis en CHmod 777 le dossier : /var/lib/php/session

Et tout fonctionne nickel.

Idem pour les deux message d'erreur que j'avais sur mon admin, ils ne sont plus là non plus.

encore un grand merci à toi pour ton aide.

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