[英]Cannot change upload_max_filesize or post_max_size in php.ini
請記住,我不是系統管理員,我只是一名開發人員。 我找不到和我一樣有確切問題的人,只是相似,而且他們的“修復”似乎都不起作用。
我目前正在運行一個 Amazon EC2 實例。
CentOS 6.2
Nginx 1.2.2
PHP 5.3.16 with APC
Percona 5.5.24 // not currently using this as I am using an RDS
我已將我的 php.ini (/etc/php.ini) 設置為以下
upload_max_filesize=10M
post_max_filesize=20M
重新加載配置后,通過 ssh 使用php -i
,這些設置似乎已加載。 顯示upload_max_filesize=10M
等。
使用phpinfo()
或ini_get
時,兩個選項都返回為4M
phpinfo()
表示我正在編輯的文件是已加載的文件 ( /etc/php.ini
)。
我也跑過php -i | grep "\.ini"
php -i | grep "\.ini"
檢查加載了哪些文件,沒有不必要的加載配置。 我什至單獨檢查了每個加載的文件,以檢查它們里面沒有設置。
此外,有人建議我嘗試使用.user.ini
配置文件。 這也沒有改變值。
ini_set()
也不起作用。
我有點不知所措。
編輯:不確定這是否有幫助,但我正在使用這個 AMI http://megumi-cloud.com/
文件名:
nginx/sites-available/default
添加:
location ~ \.php$ {
fastcgi_param PHP_VALUE "upload_max_filesize = 50M \n post_max_size=51M";
}
運行:從命令行: sudo service nginx restart
嘗試執行這樣的命令:
php --ini
它會告訴你哪些 ini 文件被 php 加載了。
示例輸出:
[admin@staging ~]$ php --ini
Configuration File (php.ini) Path: /usr/local/etc
Loaded Configuration File: /usr/local/etc/php.ini
Scan for additional .ini files in: /usr/local/etc/php
Additional .ini files parsed: /usr/local/etc/php/extensions.ini
我聯系了制作 AMI 的人,發現還有其他配置文件覆蓋了php.ini
有 2 個文件保存設置
/etc/php-fpm.d/www.conf // This is the file which holds upload_max_filesize and post_max_size, among others
/etc/php-fpm.conf
顯然,不同配置的位置可能不同,但希望這能幫助人們了解還需要尋找什么。
如果您在 php.ini 文件中明確設置了這些值,並且在您運行 PHP 腳本時它們不相同,那么某些東西已經覆蓋了它們。 您知道您的 php.ini 設置是正確的,因為 PHP 信息的 CLI 版本顯示了新設置。
我也跑過 php -i | grep ".ini" 檢查加載了哪些文件,沒有不必要的加載配置。 我什至單獨檢查了每個加載的文件,以檢查它們里面沒有設置。
這很好,但它告訴您 what.ini 文件已從 PHP CLI 加載——而不是您的應用程序。
您需要檢查phpinfo()
輸出的Additional.ini files parsed部分,以准確查看從您的 Web 服務器加載的文件。 其中一個文件正在覆蓋您的設置。
最后,如果這些文件都不是罪魁禍首,您應該在項目中對ini_set()
進行全局查找,以確保某些流氓腳本沒有為您設置這些值(試圖提供幫助)。
繼續挖掘,您會在這兩個地方之一找到罪魁禍首。
我遇到了 PHP 應用程序抱怨上傳文件大小的相同問題。 使用命令 lilne version of php (php --ini) 我確定 php.ini 文件為:/etc/php5/cli/php.ini
使用 php -info 我驗證了設置。 但應用程序仍然給了我同樣的錯誤。 我發現 PHP 對於 CLI 和 Apache 有不同的 ini 文件。 檢查你的 /etc/php5 文件夾,它有 apache2 和 cli 文件夾,里面有單獨的 ini 文件。 只需編輯 /etc/php5/cli/php.ini 來更改 apache 設置。
重新啟動您的網絡服務器。 這就是您需要做的全部。
請記住,我不是系統管理員,我只是一名開發人員。 我找不到和我一樣有確切問題的人,只是相似,而且他們的“修復”似乎都不起作用。
我在同一條船上,遇到同樣的問題,結果發現它們是相關的!
我包含了增加upload_max_filesize
和post_max_size
的行,但是這些行被忽略了, phpinfo()
返回了默認值。 我已經重新啟動了 Apache,並且還檢查了正在加載的其他.ini
文件,但並不高興。
解決方案是我在文件開頭附近添加了我的行來增加這些參數,並且它們稍后在同一個文件中被覆蓋了!
所以,如果您遇到這個問題,請確保您沒有犯同樣的愚蠢錯誤,然后Ctrl-F
找到聲明的原始實例,然后編輯它而不是添加您自己的;)
類似於此處已經指出的內容:在 Ubuntu 16.04 上,我執行了systemctl reload php7.0-fpm
以使我對upload_max_filesize
的更改生效。 我不必重新加載/重新啟動 nginx。
(php7.0 是我機器上安裝的當前 PHP 版本。)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.