विभिन्न virtualhost के लिए अलग php.ini सेटिंग्स (php-fpm)


11

मैंने यहां सर्वरफॉल्ट पर अलॉट खोजा और इसका समाधान पाया ...

वर्चुअल होस्ट में इसे शामिल करना चाहिए:

  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

लेकिन इसकी तुलना में यह मुझे परेशान कर रहा है, मैं mod_php का उपयोग बिल्कुल नहीं कर रहा हूं। मेरे पास php-fpm स्थापित है। और अगर मेरी विधि काम करेगी, या यदि कोई वैकल्पिक तरीका है, तो मुझे वास्तव में कोई जानकारी नहीं मिल सकती है ...

इसलिए, अगर मैंने php-fpm किया है और virtualhost के लिए अलग-अलग सेटिंग्स करना चाहूंगा, तो मैं क्या करूं?

एस


आप कभी जादू के उद्धरण क्यों चाहते हैं ? वे दुष्ट हैं।
नाथन सी

@NathanC मुझे पता है, लेकिन स्क्रिप्ट लेखक मुझे बताने के लिए पर्याप्त कठोर था: "हां सभी आवश्यकताओं की आवश्यकता है, अर्थात वे आवश्यकताएं हैं।"

यदि केवल उस स्क्रिप्ट लेखक को गोली मारना संभव था।
नाथन सी

@ नोथन सी हाँ, मैं स्नोबॉल डेवलपर्स से नफरत करता हूँ :) केवल अगर मेरे पास समय था, तो मैं इसे खुद विकसित करूँगा: S

हां दा जुल्म 0pu66996 9 6 79
sbrattla

जवाबों:


8

Php-fpm पर, आप इसे आमतौर पर डोमेन के fpm पूल में सेट करते हैं। पूल php-fpm की मुख्य गोपनीय फ़ाइल से शामिल हैं, जो मेरे सर्वर पर स्थित है /etc/php/fpm-php5.3/php-fpm.conf:

...

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

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

Fpm-pool-config में, आप इसे सेट php_admin_flagऔर php_admin_valueपसंद कर सकते हैं :

...

;   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

4

मेरे पास एक रैम-भूखा सर्वर था और मैं जो भी कम ट्रैफ़िक साइट चला रहा था, उनमें से प्रत्येक के लिए कई पूलों को कॉन्फ़िगर करने से बचना चाहता था। मुझे निर्देशिका-आधारित .user.ini की सुरक्षा संबंधी चिंताएँ पसंद नहीं थीं, इसलिए मैंने php.ini / अनुभागों का उपयोग करके एक अलग समाधान लागू किया:

http://php.net/ini.sections

आप php.ini (मेरे मामले में, /etc/php5/fpm/php.ini) के वर्गों को परिभाषित कर सकते हैं जो या तो पथ, या होस्ट, विशिष्ट हैं। सबसे नीचे, मेरे पास है:

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

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

मैंने कहीं और पढ़ा है कि यदि आप होस्ट विधि का उपयोग करते हैं, तो आपको VirtualNost config में ServerName में निर्दिष्ट विशिष्ट मान का उपयोग करना चाहिए, किसी भी उपनाम से नहीं।

PS यह सब डेबियन जेसी 8.4 पर किया गया था


1

आप इन झंडों को प्रत्येक वर्चुअल होस्ट के अंतर्गत एक .htaccess फ़ाइल में शामिल कर सकते हैं, जिसे आप ये सेटिंग्स चाहते हैं। देखें: http://www.php.net/manual/en/configuration.file.per-user.php


1
क्या यह केवल mod_php से संभव नहीं है? मैंने php-fpm स्थापित किया है।

मैंने जो पढ़ा है, उसमें से php-fpm के साथ इसे पूरा करने की विधि है। mod_php निर्देशों को आपके httpd.conf में होने देता है।
नाथन सी

0

इस समाधान का उपयोग करने के लिए:

चूंकि PHP 5.3.3आप इस कमांड को अपनी nginx-vhost-file में इस्तेमाल कर सकते हैं ।

maxlifetimeसत्रों की स्थापना के लिए उदाहरण :

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

    ...

    location ~ \.php$ {
        ...

        fastcgi_param PHP_VALUE "session.gc_maxlifetime=604800";
        fastcgi_param PHP_VALUE "session.cookie_lifetime=604800";
    }
}
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.