WordPress でアップロードできるファイルサイズを変更する

現状、Wordpress のアップロードのファイルサイズは 2MB が上限。 サイズが大きいとアクセスしてきて頂いている人に迷惑(時間がかかる、パケットを消費する、など)かかるので出来るかぎり小さくはしているのですがどうしても 2MB を超えたものをアップロードしたいため今回変更します。  

自分の環境だと PHP が複数バージョン入っていて毎回、違うphp.ini 修正して反映しないなーをなんでだ??を繰り返しているので未来の自分に向けのメモと同じように困っている人向けに。

php.ini ファイルの設定変更

どの php.ini ファイルを変種するべきか特定する

基本的には php.ini ファイルで設定を変更するのですが、複数の php をインストールしている環境の場合、php.iniファイルが複数存在しどの php.ini ファイルを変更すればよいのかわからなくなる時があります。 自分がそうでした。 ということでまずは wordpress が(実際には webサーバのapache だったりが)どのphp.ini を利用しているか確認します。

よくある方法は以下の “phpinfo()” を呼び出すスクリプトをWebサイトに配置して実行することです。 私は今はこの方法を利用しています。

sample.php
<?php
 phpinfo();
?>

ただし、一時的な利用にとどめるなら良いのですが、削除を忘れると余計な情報をインターネットに公開することになるのでお勧めはできません。  また、WebサーバやPHP、Linuxのファイルシステム(ファイル所有者やパーミッション)をある程度理解していないと動かすまでに試行錯誤する可能性もあります。

じゃあどうするとよいかを少し考えてみたのですが、まずは WordPress を動かしている Webサーバ(Apacheなど)でどのPHPバージョンを利用しているかを特定し、バージョンが分かればphp.iniファイルのパスも大体特定できるので、その方法を簡単に紹介します。

WordPressを動かしている WebサーバでのPHPバージョンの確認は WordPress の管理画面のサイトヘルスから可能です。

ツール > サイトヘルス > 情報にアクセスします。

サーバーを展開すると PHP バージョンとして 8.4.26 を利用していることがわかります。

また、PHP SAPI が apache2handlerであることからApacheのモジュールとしてPHPが動作していることがわかります。 他にはfpm-fcgiなど場合もあますが私はfpm使っていないので今回はその場合の話はありません。

Webサーバが読み込んでいる PHP バージョンが8.4 とわかったので、これで大体の場合は”/etc/php/8.4/apache2/php.ini”が編集するべきphp.iniファイルとわかります。 /etc/php 配下にバージョンごとのフォルダがあるのでバージョンに応じて読み替えてください。

大体といっているのはそもそも php をどのようにインストールしているかにより/etc/php 配下ではない場合があるためです。 私も昔はPKG使わず基本はソースコードから Make していたのですがその時は/usr/localは以下にインストールしていました。 つまり人によってインストール先を変えていることがあるということです。

じゃあ、どうするかというと bash などshellからphpコマンドを実行して調べる方法もありますが、Webサーバがどの権限でどのphpを実行しているかなど、それを細々と解説するにはかなりの文章量となるので割愛です。  

確実にかつシンプルに確認するなら冒頭の phpinfo()をwebサーバ配置して確認が簡単という話になります。

アップロード上限値を変更する

特定したphp.iniファイルでパラメータの値を変更します。

php.ini
アップロードサイズを5Mへ
upload_max_filesize = 5M

POSTのMaxを10Mへ (アップロードサイズより大きくする必要がある)
post_max_size = 10M

Webサーバ(apache)を再起動します。 phpの設定変更のために必要です。

HTML
$ sudo systemctl restart apache2

動作確認

まずは、wordpress のサイトヘルス画面でアップロード上限値が 5MB に変わったことを確認します。

アップロード上限が5M、POST上限が10Mに変わったことを確認できました。 OKです。 (実は、1回目の確認のときはアップロードの上限は設定し忘れていたことに気づき、再設定しています・・)

もともとの目的でもある実際に2MB以上のファイルをアップロードできるか確認します。

2.49MBのファイルをアップロードできました。 OKですね。 画面上のメッセージ”最大アップロードサイズ”も5MBになっています。

以上