2013-02-24 2 views
0

Я встречал некоторые запутывающие проблемы о том, как работает php.ini post_max_size и upload_max_filesize. Читая документацию php.net, я знаю, что, установив post_max_size = 16M и upload_max_filesize = 16M, мы сможем загрузить максимум 16 МБ файла. Но то, что я видел, это не так. Я проверяю загруженную .ini значение с помощью этогоПроблемы с максимальной загрузкой файлов 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; 

Выходной сигнал:

2 
8 
96 
2 

значение не то же самое, как то, что я указал в этом php.ini!

Вот мой php.ini конфигурации: https://docs.google.com/file/d/0B2o1vMJ7XFKyT0xDWUhJTnR0M2c/edit?usp=sharing

Я уже убедиться, что эта конфигурация является один, что PHP интерпретатор загружен, проверив вывод phpinfo();

Благодаря

+0

Там может быть php_admin_value для всего веб-хостинга (если вы его используете) переопределяет любые значения, которые могут быть установлены в пользовательских сценариев или файлов .htaccess – kirugan

+0

Я использую мои собственные VM –

+0

ли вы перезагрузить или перезагрузить веб-сервер, чтобы получить новую конфигурацию php? –

ответ

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 ини каталога может быть, вы изменить другой 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() Выход: '<тд класс = "е"> Loaded Configuration File/и т.д./php5/FPM/php.ini' Это php.ini config, который я загрузил в моем вопросе выше –

+0

да, вы правы, проверьте Apache, Apache может установить php_value –

+0

Я использую Nginx, а не Apache –

Смежные вопросы