verschiedene php.ini einstellungen für verschiedene virtualhost (php-fpm)

11

Ich habe allot hier auf serverFault gesucht und diese Lösung gefunden ...

Das Einfügen in den virtuellen Host sollte funktionieren:

  php_admin_flag register_argc_argv = On
  php_value max_execution_time = 1000
  php_value session.gc_maxlifetime = 15000
  php_admin_flag magic_quotes_gpc = on

Aber als mir klar wurde, benutze ich mod_php überhaupt nicht. Ich habe PHP-Fpm installiert. Und ich kann wirklich keine Informationen finden, ob meine Methode funktioniert oder ob es einen alternativen Weg gibt ...

Was mache ich also, wenn ich php-fpm habe und andere Einstellungen für virtualhost haben möchte?

S.


quelle
Warum sollten Sie jemals magische Zitate wollen? Das sind böse.
Nathan C
@ NathanC Ich weiß, aber der Drehbuchautor war sogar unhöflich genug, mir zu sagen: "Ja, alle Anforderungen werden benötigt, deshalb sind sie Anforderungen."
Wenn es nur möglich wäre, diesen Skriptautor zu feuern.
Nathan C
@ NathanC Ja, ich hasse Snobby-Entwickler :) Nur wenn ich Zeit hätte, würde ich es selbst entwickeln: S
Ja da opp 0pu66996 9 6 79
sbrattla

Antworten:

8

Bei php-fpm legen Sie dies normalerweise im fpm-Pool der Domain fest. Die Pools sind in der Hauptkonf-Datei von php-fpm enthalten, die sich auf meinem Server unter /etc/php/fpm-php5.3/php-fpm.conffolgender Adresse befindet :

...

;;;;;;;;;;;;;;;;;;;;
; Pool Definitions ; 
;;;;;;;;;;;;;;;;;;;;

include=/var/www/*/conf/fpm-pool.conf

In der fpm-pool-config können Sie Folgendes einstellen php_admin_flagund php_admin_valuemögen:

...

;   php_value/php_flag             - you can set classic ini defines which can
;                                    be overwritten from PHP call 'ini_set'. 
;   php_admin_value/php_admin_flag - these directives won't be overwritten by
;                                     PHP call 'ini_set'
php_flag[display_errors]            = on
php_admin_value[error_log]          = /var/www/cloud/logs/php_err.log
php_admin_flag[log_errors]          = on
php_admin_value[memory_limit]       = 1024M
#php_value[max_execution_time]       = 30
php_admin_value[upload_max_filesize] = 4G
php_admin_value[post_max_size]      = 4.2G
php_admin_value[max_input_time]     = 3600
php_admin_value[max_execution_time] = 3600
etagenklo
quelle
4

Ich hatte einen RAM-hungrigen Server und wollte vermeiden, mehrere Pools für jede der von mir ausgeführten Websites mit geringem Datenverkehr zu konfigurieren. Ich mochte auch die Sicherheitsbedenken der verzeichnisbasierten .user.ini nicht, deshalb habe ich eine andere Lösung mit den "Abschnitten" von php.ini implementiert:

http://php.net/ini.sections

Sie können Abschnitte von php.ini (in meinem Fall /etc/php5/fpm/php.ini) definieren, die entweder pfad- oder hostspezifisch sind. Unten habe ich:

[HOST=host1.example.com]
auto_prepend_file = '/var/www/something'

[HOST=host2.example.net]
upload_max_filesize = 5M

Ich habe an anderer Stelle gelesen, dass Sie, wenn Sie die Host-Methode verwenden, den in ServerName in der VirtualHost-Konfiguration definierten spezifischen Wert verwenden müssen, keinen der Aliase.

PS Dies wurde alles auf Debian Jessie 8.4 gemacht

jaydisc
quelle
1

Sie können diese Flags in eine .htaccess-Datei unter jedem virtuellen Host aufnehmen, für den Sie diese Einstellungen wünschen. Siehe: http://www.php.net/manual/en/configuration.file.per-user.php

Nathan C.
quelle
1
Ist das nicht nur mit mod_php möglich? Ich habe PHP-Fpm installiert.
Nach dem, was ich gelesen habe, ist dies die Methode, um dies mit php-fpm zu erreichen. Mit mod_php können sich die Anweisungen in Ihrer httpd.conf befinden.
Nathan C
0

Verwenden Sie für Nginx diese Lösung:

Da können PHP 5.3.3Sie diesen Befehl in Ihrer nginx-vhost-Datei verwenden.

Beispiel zum Einstellen der maxlifetimeSitzungen:

server {
    listen 80;
    listen [::]:80;

    ...

    location ~ \.php$ {
        ...

        fastcgi_param PHP_VALUE "session.gc_maxlifetime=604800";
        fastcgi_param PHP_VALUE "session.cookie_lifetime=604800";
    }
}
Code Name
quelle