サーバーに30MBのファイルをアップロードしようとしていますが、動作しません。
30MBのファイルをアップロードすると、ページに「Page Not Found」が読み込まれます
3MBファイルをアップロードすると、nginx/0.6.32で「413 Request Entity Too Large」を受け取ります
「client_max_body_size」を増やすことができるようにnginxを見つけようとしていますが、サーバーにインストールされているnginxを見つけることができません。私も実行してみました:
vi /etc/nginx/nginx.conf
または
vi /usr/local/nginx/conf/nginx.conf
構成ファイルが存在するかどうかを確認しますが、サーバー上で見つけることができませんでした。
とにかくこの問題を解決する方法はありますか?または、サーバーにnginxをインストールする必要がありますか。
編集:
Php.iniファイルに必要な変更をすべて加えました。
post_max_size 128M
upload_max_filesize 100M
memory_limit 256M
ありがとう、ラジュ
ソース: http://www.cyberciti.biz/faq/linux-unix-bsd-nginx-413-request-entity-too-large/
Nginxのconfファイルを編集します。
nano /etc/nginx/nginx.conf
Httpセクションに行を追加します。
http {
client_max_body_size 100M;
}
MBは使用しないでください。Mのみが機能します。
また、nginxを再起動することを忘れないでください
systemctl restart nginx
-php.ini(/etc/php.ini内)
max_input_time = 24000
max_execution_time = 24000
upload_max_filesize = 12000M
post_max_size = 24000M
memory_limit = 12000M
-in nginx.conf(inside/opt/nginx/conf)
client_max_body_size 24000M
私の場合、その働き
最初にNginx構成ファイルを編集(nginx.conf
)
場所:Sudo nano /etc/nginx/nginx.conf
次のコードを追加します。
http {
client_max_body_size 100M;
}
その後、PHP構成ファイル(php.ini
)に次の行を追加します
場所:Sudo gedit /etc/php5/fpm/php.ini
次のコードを追加します。
memory_limit = 128M
post_max_size = 20M
upload_max_filesize = 10M
ドメインnginxファイルを入力してください:
nano /etc/nginx/sites-available/domain.set
このコードをファイルに追加
client_max_body_size 24000M;
エラーが発生した場合は、このコマンドを使用します
nginx -t
Php.iniファイルに必要な変更を加えたと仮定します。
この問題を解決するには、次のパスにあるnginx.confファイルに次の行を追加します。
/etc/nginx/nginx.conf
次に、vimテキストエディターを使用して次のようにファイルを編集します。
vi /etc/nginx/nginx.conf
そして、十分な値を持つclient_max_body_sizeを追加します。例:
client_max_body_size 20MB;
その後、必ず:xi
または:wq
を使用して保存してください
次に、nginxを再起動します。
それでおしまい。
私のために働いた、これが役立つことを願っています。
上記の変更でアップロードが機能しました。しかし、変更を行ったとき、ファイルのアップロードで404応答を取得し始めました。これにより、さらにデバッグを行い、nginx error.logをチェックすることで権限の問題を見つけました。
解決策:
/ var/lib/nginxで現在のユーザーとグループの所有権を確認します。
$ ls -ld /var/lib/nginx
drwx ------。 3 nginx nginx 17 Oct 5 19:31/var/lib/nginx
これにより、nginxという名前の存在しない可能性のあるユーザーとグループがこのフォルダーを所有していることがわかります。これはファイルのアップロードを妨げています。
私の場合、「/ etc/nginx/nginx.conf」に記載されているユーザー名は
user vagrant;
この場合、vagrantでnginx.confで定義されているユーザーにフォルダーの所有権を変更します。
$ Sudo chown -Rf vagrant:vagrant /var/lib/nginx
実際に変更されたことを確認します。
$ ls -ld /var/lib/nginx
drwx------. 3 vagrant vagrant 17 Oct 5 19:31 /var/lib/nginx
より安全なsadeのためにnginxとphp-fpmをリロードしてください。
$ Sudo service nginx reload
$ Sudo service php-fpm reload
許可拒否エラーはなくなります。 error.logを確認します(nginx.confのerror_logの場所に基づいて)。
$ Sudo nano /path/to/nginx/error.log
次のように、nginxのグローバル構成ではなく、仮想ホストに変更を直接追加します。
server {
client_max_body_size 100M;
...
}
そして、上記のコメントのように、php.iniのパラメーターを変更します。
max_input_time = 24000
max_execution_time = 24000
upload_max_filesize = 12000M
post_max_size = 24000M
memory_limit = 12000M
そして忘れられないのは、centos 7でnginxとphp-fpmを再起動することです:
systemctl restart nginx
systemctl restart php-fpm
つかいます:
php -i
コマンドまたは追加:
phpinfo();
構成ファイルの場所を取得します。
ニーズとサーバーに応じてこれらの変数を更新します
max_input_time = 24000
max_execution_time = 24000
upload_max_filesize = 12000M
post_max_size = 24000M
memory_limit = 12000M
Linuxでは、新しいini設定がロードされるように、nginx/Apacheおよびphpfpmサービスを再起動する必要があります。 xampp、ammpsでは、これらのアプリケーションに付属のコントロールパネルからこれらを再起動できます。
ファイルを開く/etc/nginx/nginx.conf
追加または変更client_max_body_size 0;