Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 07/08/2016, à 21:01

seabird2_fr

php.ini local et php-fpm

Bonjour,

Sur un de mes serveurs , j'utilise php-fpm avec le système de pool afin de cloisonner les sites.
Mais je ne veux pas autoriser l'upload de fichiers dans un dossier du site.
Lorsque j'utilisais php en module apache , il suffisait que je mette dans le dossier un php.ini local avec file_uploads=off.

Mais avec php-fpm , les php.ini locaux ne fonctionnent visiblement plus. Il faut utiliser les .user.ini 
Mais problème dans les .user.ini on ne peut mettre que des instructions PHP_INI_PERDIR ou en PHP_INI_ALL donc file_uploads=off ne fonctionne pas.

Donc peut-on dans un pool mettre  php_admin_flag[file_uploads]= off pour un dossier en particulier ?
Je ne vois pas comment faire sinon.

Merci,

Eric

Dernière modification par seabird2_fr (Le 07/08/2016, à 21:24)

Hors ligne

#2 Le 07/08/2016, à 22:02

J5012

Re : php.ini local et php-fpm

utiliser les mots cles : php-fpm upload limit
→ fichier /etc/php5/fpm/php.ini
→ variables : upload_max_filesize et post_max_size

Hors ligne

#3 Le 07/08/2016, à 22:38

seabird2_fr

Re : php.ini local et php-fpm

Bon , j'ai contourné le problème en laissant file_uploads=on dans le php.ini global

et en mettant dans le .user.ini du dossier
upload_max_filesize = 1
post_max_size = 1

Eric

Hors ligne

#4 Le 08/08/2016, à 14:09

bobe

Re : php.ini local et php-fpm

Tu peux ajouter un fichier de configuration ciblant un dossier spécifique dans le dossier conf.d de php fpm :

[PATH=/path/to/dir]
file_uploads = off

Dernière modification par bobe (Le 08/08/2016, à 14:10)

Hors ligne

#5 Le 08/08/2016, à 14:13

seabird2_fr

Re : php.ini local et php-fpm

Bonjour,

bobe a écrit :

Tu peux ajouter un fichier de configuration ciblant un dossier spécifique dans le dossier conf.d de php fpm :

[PATH=/path/to/dir]
file_uploads = off

A ben voilà très bien, merci, je n'étais pas sur de la syntaxe. je vais tester et voir ce que cela donne.
Tout ce qu'il y a en dessous de [PATH=/path/to/dir] n'est pris en compte que dans le dossier /path/to/dir, j'imagine ?

Eric

Hors ligne

#6 Le 08/08/2016, à 14:21

bobe

Re : php.ini local et php-fpm

Yep. Voilà pour l'exemple mon fichier de conf pour phpmyadmin (installé à la main dans /opt) :

[PATH=/opt/phpmyadmin]
track_vars = on
allow_url_fopen = off
include_path = '.'
upload_max_filesize = '5M'
upload_tmp_dir = '/opt/phpmyadmin/tmp'
open_basedir = '/opt/phpmyadmin/'
session.gc_maxlifetime = 7200

edit: J'ai retrouvé la page du manuel : http://php.net/manual/en/ini.sections.php

Dernière modification par bobe (Le 08/08/2016, à 14:26)

Hors ligne

#7 Le 08/08/2016, à 14:36

bobe

Re : php.ini local et php-fpm

Un des commentaires du manuel prétend qu'un bloc PATH ne s'applique qu'au dossier ciblé et non à ses sous-dossiers. Tu devrais vérifier ce point ;-)
Ou plus simple, si ton but est de désactiver l'upload pour un site spécifique, utilise plutôt [HOST=......]

Hors ligne

#8 Le 08/08/2016, à 16:03

seabird2_fr

Re : php.ini local et php-fpm

C'est bizarre, tu es sur de la syntaxe ?
A priori

[PATH=/path/to/dir]
file_uploads = off

ne s'applique qu'à un php.ini

Car dans un pool, il n'accepte pas pour moi. Il y a une erreur.
Déjà dans un pool file_uploads = off n'est pas accepté (erreur), il faut mettre php_admin_flag[file_uploads]= off pour que cela fonctionne.

Eric

Dernière modification par seabird2_fr (Le 08/08/2016, à 16:04)

Hors ligne

#9 Le 08/08/2016, à 18:30

bobe

Re : php.ini local et php-fpm

Non, non. Il faut que tu places un fichier de configuration .ini dans /etc/php/7.0/fpm/conf.d/ (ou /etc/php5/fpm/conf.d/ pour php5). J'ai parlé du dossier conf.d plus haut ;-)

Hors ligne

#10 Le 08/08/2016, à 18:36

seabird2_fr

Re : php.ini local et php-fpm

Heu quelque-chose doit m'échapper.
Il faut mettre un fichier ini mais comment savoir à quel site l'appliquer , grâce au [PATH=/path/to/dir]?
L'ini doit porter quel nom ? n'importe lequel ?

Car en fait ,voilà comment j'ai fait.
J'ai fait une copie de l'exemple par défaut /etc/php5/fpm/conf.d/www.conf  et j'ai par exemple pour site1.conf:

   
[user1]
…..
user = user1
group = user1
php_admin_value[open_basedir] = /home/user1/www:/tmp
php_value[output_buffering] = off  
;php_flag[display_errors] = off
;php_value[error_reporting] = 0
;php_admin_flag[file_uploads]= off

…..
 
listen = /var/run/php5-fpm-user1.sock

Il y a vraiment quelque-chose qui m'échappe hmm

Dernière modification par seabird2_fr (Le 08/08/2016, à 18:41)

Hors ligne

#11 Le 08/08/2016, à 19:06

bobe

Re : php.ini local et php-fpm

Si tu veux faire une discrimination sur le site, utilise plutôt HOST.

Créé un fichier /etc/php5/fpm/conf.d/60-monsite.ini (le nom importe peu, c'est pour l'organisation de ta config; le 60- pour qu'il soit chargé après la configuration de base et la configuration des extensions) avec ceci dedans :

[HOST=monsite.tld]
file_uploads = off

Redémarre le service php-fpm.

Hors ligne

#12 Le 08/08/2016, à 19:14

seabird2_fr

Re : php.ini local et php-fpm

bobe a écrit :

Si tu veux faire une discrimination sur le site, utilise plutôt HOST.

Créé un fichier /etc/php5/fpm/conf.d/60-monsite.ini (le nom importe peu, c'est pour l'organisation de ta config; le 60- pour qu'il soit chargé après la configuration de base et la configuration des extensions) avec ceci dedans :

[HOST=monsite.tld]
file_uploads = off

Redémarre le service php-fpm.

Oui mais peut -on faire à la fois une discrimination de site et de dossier dans celui ci ?
Car je veux par exemple:
http: //site.com/dossier1/  avec file_uploads = off
http: //site.com/dossier2/  avec file_uploads = on

Merci

Hors ligne

#13 Le 08/08/2016, à 19:19

bobe

Re : php.ini local et php-fpm

Alors utilise plutôt PATH. À moins que tu aies deux virtualhost ciblant le même espace web, ça ne doit pas poser de problème non ?

Hors ligne

#14 Le 08/08/2016, à 19:26

seabird2_fr

Re : php.ini local et php-fpm

Non non je n'ai pas créé deux vhost sur le même espace.
Je vais donc tester avec path .

merci en tout cas .

Eric

Hors ligne

#15 Le 08/08/2016, à 20:06

seabird2_fr

Re : php.ini local et php-fpm

Ok ca marche nickel et visiblement c'est récursif.
Mais je pense que j'ai un souci avec le répertoire temporaire. C'est bien upload_tmp_dir ?
car le fichier n'est pas envoyé dans uploads
je pense aussi que cela vient de l'endroit où est le formulaire. J'ai pourtant testé aussi en le mettant dans /uploads

upload_tmp_dir = '/home/site1/www/tmp'
[PATH=/home/site1/www]
file_uploads = off

[PATH=/home/site1/www/uploads]
file_uploads = on

[PATH=/home/site1/www/tmp]
file_uploads = on       


Eric

Dernière modification par seabird2_fr (Le 08/08/2016, à 20:23)

Hors ligne

#16 Le 08/08/2016, à 20:35

bobe

Re : php.ini local et php-fpm

À vérifier, mais je ne pense pas que tu puisses mettre une directive en dehors d'une section [PATH=...] ou [HOST=...] quand tu utilises ces dernières.

Hors ligne

#17 Le 08/08/2016, à 22:33

seabird2_fr

Re : php.ini local et php-fpm

bobe a écrit :

À vérifier, mais je ne pense pas que tu puisses mettre une directive en dehors d'une section [PATH=...] ou [HOST=...] quand tu utilises ces dernières.

Si si ça fonctionne une directive à l'extérieur.
Je vois bien upload_tmp_dir modifié en faisant un phpinfo.

Ma foi, je ne vois pas trop comment faire pour faire fonctionner ça.

En tout cas merci de ton aide.

Eric

Dernière modification par seabird2_fr (Le 08/08/2016, à 22:34)

Hors ligne