WordPress: インポートファイル(WXR)の最大アップロードサイズの変更

他サイトのWordPressの記事データを移行する方法として、メニュー→ツール→インポートから、WordPress eXtended RSS (WXR) ファイル(.xml)をアップロード手法があるが、デフォルト設定ではアップロードできるファイルの最大サイズを超えるWXRファイルを使用出来ない。アップロードファイルの最大サイズを変更するには、対象のWordPressサーバ上の/etc/php.iniファイルの以下のディレクティブを変更する。

下記の例は10Mのファイルまでアップロードを許容する設定。確認環境はCentOS 7.x系、PHP 7.2.5。

php.ini設定例

; Maximum allowed size for uploaded files.
; http://php.net/upload-max-filesize
upload_max_filesize = 10M

; Maximum size of POST data that PHP will accept.
; Its value may be 0 to disable the limit. It is ignored if POST data reading
; is disabled through enable_post_data_reading.
; http://php.net/post-max-size
post_max_size = 10M

その後、下記のコマンドで設定内容を反映する。

systemctl restart php-fpm

各ディレクティブの仕様

各ディレクティブの仕様は下記の公式サイトをご参照。

PHP: Description of core php.ini directives – Manual

下記の引用の通り、両ディレクティブの大小関係は「post_max_size > upload_max_filesize」となる。postデータはupload対象のファイル以外にもヘッダ等メタデータが付与されるので、自明ではある。

post_max_size integer
Sets max size of post data allowed. This setting also affects file upload. To upload large files, this value must be larger than upload_max_filesize. Generally speaking, memory_limit should be larger than post_max_size.

その為、厳密に言うと、上述の設定例でuploadできるファイルサイズは10MB未満となる。しかし、WordPress側のビューは両ディレクティブの値が同値の場合は下図の通り10MBで表示する。

wordpress_import_size

コメント

  1. Anna より:

    参考になりました。