2012-11-07 20 views
7

私はシステム管理者ではありません。私は開発者です。 正確なの問題は私には似ていて誰も見つけることができず、 "修正"のどれもうまくいかないようです。php.iniのupload_max_filesizeまたはpost_max_sizeを変更できません

現在、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 

は、私はssh経由php -iを使用して、設定をリロードした後、次の

upload_max_filesize=10M 
post_max_filesize=20M 

に私のphp.iniの(に/etc/php.ini)の設定を設定している、これらの設定がロードされているように見えました。 4M

phpinfo()は私が編集していたファイルがロード1(/etc/php.ini)であることを示しているようphpinfo()またはini_getを使用している場合など

upload_max_filesize=10M表示、両方のオプションが返されます。

また、php -i | grep "\.ini"を実行して、どのファイルがロードされているかを確認しました。また、不要なロード設定はありません。私はロードされた各ファイルを個別に調べて、内部に設定されていないことを確認しました。

また、.user.ini設定ファイルを使用するように提案されています。これは値を変更しませんでした。

ini_set()も機能しません。

私は少し迷っています。

EDIT:これは役立つかわからないが、何かそれから、あなたが明示的にphp.iniファイルにこれらの値を設定すると、あなたのPHPスクリプトを実行するとき、彼らは同じではない場合、私はこのAMI http://megumi-cloud.com/

+0

あなたの本当の問題は何ですか?あなたはどんなインターフェース形式でファイルをアップロードしようとしていますか? –

+0

PHP SAPIの詳細を教えてください。 '.user.ini'はCGI/FCGIインスタンス用です。Apacheでは '.htaccess'を代わりに使用しなければなりません。 PHP5.3.3 +はnginxの環境変数の回避策を提供しているようです:http://forum.nginx.org/read.php?2,22556,99839#msg-99839 – mario

+0

これは単なる基本的な画像アップロードスクリプトですが、デフォルトのアップロード量が少なすぎます。サーバーはfpm-fcgiを実行しています。 '.htaccess'ファイルを試しましたが、明白な理由から、何もしませんでした。 –

答えて

3

私は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 

明らかに場所が異なる場合が上書き追加の設定ファイルが存在していうまくいけば、これは他に何を探すべきかのアイデアを誰かに与えるのに役立ちます。

+6

同じ問題が発生し、 '/ etc/php5/fpm/php.ini'ファイルを' upload_max_filesize = 10M'を増やして編集しました。私は 'sudo service php5-fpm restart'と' sudo service nginx restart'を実行して最終的に動作させなければなりませんでした(これはUbuntu 12.04でした)。 – rs77

+2

'sudo service php5-fpm restart'と' sudo service nginx restart'は 'sudo /etc/init.d/php5-fpm restart'と' sudo /etc/init.d/nginx restart'のどこに行かなかったのですか? t! –

+0

これ! 'sudo service php-fpm restart'と' sudo service nginx restart'私の場合 – orszaczky

2

を使用していますそれらをオーバーライドしました。 CLIのPHP情報では新しい設定が表示されるため、php.iniの設定が正しいことがわかります。

私もphp -i |を実行しました。 grep ".ini"を実行して、どのファイルがロードされているかを確認し、不要なロード設定はありません。私はロードされた各ファイルを個別に調べて、内部に設定されていないことを確認しました。

これは素晴らしいですが、PHPのCLIからどのような.iniファイルが読み込まれたかを示しています---アプリケーションではありません。

phpinfo()出力の追加.iniファイルの解析済みファイルセクションを確認して、Webサーバーからどのファイルがロードされているかを確認する必要があります。これらのファイルの1つが設定を上書きしています。これらのファイルのいずれも犯人であることが判明していない場合

最後に、あなたには、いくつかの不正なスクリプトが(役立つになろうと、あなたのためにこれらの値を設定されていないことを確認するために、プロジェクトにini_set()にグローバル検索を行う必要があります)。

掘削を続けると、その2つの場所のいずれかで犯人が見つかります。

+0

ありがとう、Jesse。私はそれらを実行し、あなたが結果について知ってもらいましょう。 –

+0

私はちょうど 'phpinfo()'の追加のセクションにロードされたすべての.iniファイルを調べ、 'ini_set()'のすべてのファイルを検索しました。残念なことに、これらのどちらも問題ではありませんでした。 –

+0

これだけです。私にとって、それはいつもその2つの場所の1つです。 –

5

は、このようなコマンドを実行するために試してみてください。

php --ini 

それは、iniファイルはPHPによってロードされますが表示されます。

出力例:

[[email protected] ~]$ 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 
+0

あなたは天才です。ありがとう。 –

0
は、Webサーバーを再起動し

。それだけであなたがする必要があります。

+1

私の答えに記載されているとおり、メインの設定ファイルをオーバーライドしていた追加の設定ファイルがありました。 –

1

アップロードファイルのサイズについて不平を言うPHPアプリケーションと同じ問題がありました。 lilneのphp(php -ini)コマンドを使用して、php.iniファイルを次のように決定しました: /etc/php5/cli/php.ini

php -info設定を確認しました。それでもアプリケーションは私に同じエラーを与えました。私は、PHPがCLIとApache用に異なるiniファイルを持っていることを発見しました。あなたの/ etc/php5フォルダーをチェックしてください。そこには別のiniファイルが入ったapache2とcliフォルダーがあります。 /etc/php5/cli/php.iniを編集して、Apacheの設定を変更してください。

11

ファイル名:

nginx/sites-available/default 

追加:

location ~ \.php$ { 
     fastcgi_param PHP_VALUE "upload_max_filesize = 50M \n post_max_size=51M"; 
} 

実行:コマンドラインから :sudo service nginx restart

0

ベア心​​の中で、私はシステム管理者午前、私は開発者です。私はまさに私と同じ問題を抱えている人を見つけることはできません。まったく同じように、彼らの「修正」のどれもうまくいかないようです。

私は同じ問題を抱えて同じボートにいて、関連していることが判明しました。

私はupload_max_filesizepost_max_sizeを増やす行を含めましたが、これらは無視されており、phpinfo()がデフォルト値を戻していました。私はApacheを再起動し、追加の.iniファイルが読み込まれていることを確認しました。

解決策は、ファイルの先頭付近でこれらのパラメータを増やすために私の行を追加し、後で同じファイルに上書きするというものでした。

この問題が発生している場合は、同じ愚かな間違いをしていないことを確認してから、Ctrl-Fを使用して宣言の元のインスタンスを見つけ、それを編集してください。

関連する問題