Posted at

PHP でアップロードできる最大容量を変更、反映させる(PHP + Nginx + PHP-FPM)


環境

CentOS: 7.4

PHP: 7.2

Nginx: 1.14


設定変更の手順


php.ini を編集

.htaccess で設定する方法もありますが、今回は php.ini を編集します。

私の環境では /etc/php.ini にありました。

# vi /etc/php.ini


/etc/php.ini

; メモリ使用量の上限

memory_limit = 256M

; 1度の POST でアップロードできる最大容量
post_max_size = 128M

; 1ファイルの最大容量
upload_max_filesize = 100M

; 設定値は下記のようにする
; upload_max_filesize <= post_max_size <= memory_limit


この設定の場合、1ファイル 100MB までアップロード可能になります。


nginx.conf を編集

PHP だけでなく Nginx の設定も変更する必要があります。

nginx.confclient_max_body_size の設定を追記します。


/etc/nginx/nginx.conf

sever {

listen 80;
server_name localhost;

#アップロード制限
client_max_body_size 100M;
...
}



設定を反映させる

Nginx と PHP-FPM を再起動させて設定を反映させます。

下記2つのコマンドを叩きます。

(以前、PHP-FPM の再起動を忘れていてハマりました。。)

# systemctl restart nginx

# systemctl restart php-fpm


設定が反映されているか確認する

Nginx で設定したルートディレクトリに index.php を置き、サーバーにアクセスすることで設定が反映されているか確認します。


index.php

<?php phpinfo() ?>


うまく設定できていれば upload_max_filesizepost_max_sizememory_limit が設定した値になっているはずです。