2013-02-24 33 views
0

我見過有關如何php.ini中的post_max_size一些容易混淆的問題,和的upload_max_filesize工作。閱讀php.net文件,我知道,通過設置的post_max_size = 16M和的upload_max_filesize = 16M,將使我們能夠上傳最大16MB的文件。但是我所看到的不是。我使用這個PHP最大文件上傳配置問題

$max_upload = (int)(ini_get('upload_max_filesize')); 
$max_post = (int)(ini_get('post_max_size')); 
$memory_limit = (int)(ini_get('memory_limit')); 
$upload_mb = min($max_upload, $max_post, $memory_limit); 

echo $max_upload; 
echo $max_post; 
echo $memory_limit; 
echo $upload_mb; 

輸出檢查加載的.ini值:

2 
8 
96 
2 

的價值是不一樣的我在這個php.ini中所指定!

這裏是我的php.ini的配置: https://docs.google.com/file/d/0B2o1vMJ7XFKyT0xDWUhJTnR0M2c/edit?usp=sharing

我已經確保此配置是PHP解釋器加載的一個通過檢查的phpinfo()的輸出;

感謝

+0

有可能是託管(如果您使用它),它會覆蓋可能在用戶腳本中設置的任何值或.htaccess文件 – kirugan 2013-02-24 15:38:31

+0

我用我自己的VM – 2013-02-24 15:40:37

+0

整個網絡php_admin_value你有沒有重新啓動,或者重新加載Web服務器來獲取新的PHP配置? – 2013-02-24 15:41:40

回答

1

設置我已經找到了解決我自己的問題。 通過檢查/etc/php5/fpm/php.ini更徹底,我發現的是:

error_reporting = E_ALL error_reporting = E_ALL & ~E_DEPRECATED ~E_DEPRECATED 

通過該值固定爲

error_reporting = E_ALL & ~E_DEPRECATED 

解決了這個問題。 爲什麼我在首位擁有這些嵌套值的原因是因爲我使用SED首先修改的值,我忘了逃走「&」字。 (&表示插入子字符串,所以它會在那之前插入字符串)。在將其轉換爲'\ &'後,sed命令按預期工作。

乾杯

0

你確定更改正確的php.ini看到Apache的配置PHP的ini目錄也許你換另外的php.ini

搜索在Apache的配置是這樣的即是一套PHP INI目錄

PHPINIDir "c:/php" 

的另一個問題也許雅閣被設置在htaccess的這個參數,如果設置的參數覆蓋在運行。

php_value upload_max_filesize 10M 
php_value post_max_size 10M 

通知:htaccess的有時候父目錄

+0

是的,我確定這是正確的php.ini加載。從phpinof()輸出: '加載的配置文件的/ etc/PHP5/FPM/php.ini中' 即在php.ini配置,我上傳我的問題上面 – 2013-02-24 16:15:23

+0

是的,你是對的,檢查Apache,Apache可以設置php_value – 2013-02-24 16:19:53

+0

我使用Nginx,而不是Apache – 2013-02-24 16:21:45