簡體   English   中英

用於不同子域和/或目錄的替代max_post_size和upload_max_filesize php.ini nginx fastcgi php-fpm

[英]Alternate max_post_size and upload_max_filesize for different subdomains and/or directories php.ini nginx fastcgi php-fpm

我的nginx和php5-fpm工作得非常好,而www.mysite.comthis.mysite.comthat.mysite.com都可以優雅地轉到不同的目錄。 我一直在一個網站上載文件。 我希望最大文件大小為10 GB。 為此,我必須告訴php.ini,max_post_size和upload_max_filesize為10240 MB,而不是默認的2 MB。

我非常了解安全隱患。 因此,我希望這些10240 MB的php.ini值僅適用於以下一項或兩項:

  • upload.mysite.com

和/或

  • www.mysite.com/upload

一種選擇是還安裝Apache以在其他端口上偵聽,執行一些重定向/重寫操作,並讓mod_php的php.ini文件具有10240 MB的值僅處理上傳站點。 我寧願不這樣做。

在沒有單獨的Web服務器處理對我的上傳頁面的請求的情況下,如何在nginx的單個實例中完成此操作?

使用client_max_body_size並將其設置為server塊中的所需值。 如果請求主體超過此指令中指定的大小,Nginx將直接放棄對請求的處理。 請注意,在這種情況下,您將不會提交任何POST

使用php-fpm,您可以運行多個池,每個網站一個。

然后,您可以使用池中的以下語法來更改池配置中的任何php.ini設置(但是請注意,您不能使用MBG快捷方式):

; UPLOAD
php_admin_flag[file_uploads]         =1
php_admin_value[upload_tmp_dir]="/some/path/var/tmp"
;Maximum allowed size for uploaded files. 10240MB *1024 *1024 -> 10737418240
php_value[upload_max_filesize] ="10737418240"
php_admin_value[max_input_time]      = (...)
php_admin_value[post_max_size]  (...)

這實際上與Apache虛擬主機可用的語法接近。 PHP配置從未卡在php.ini文件中。

如您所見,您可以使用php_valuephp_admin_value ,最大的不同是,當使用php_value時 ,設置可以稍后由應用程序使用ini_set命令進行更改。 因此,您可以對upload_max_filesize使用較低的值,並僅在上載腳本中在應用程序中對其進行更改。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM