Summary

  • Joomla!のシステムに警告表示があり、解決のためphp.iniの設定を変更しました

Details of the warning

  •  Administration Interface > Sytem > Information: Warningsに3件の警告表示を確認しました
    •  インストール直後から表示されたのか、あるタイミングで表示されていたのかどうかも判りません
    • タイトルを抜粋します
      • The PHP temporary folder is not set.
      • Small PHP maximum POST size.
      • Maximum PHP file upload size is too small.
  • いずれも、php.iniの設定に関する警告です

Joomla! Requirements

...minimal PHP requirements for Joomla:

  • memory_limit - Minimum: 256M
  • upload_max_filesize - Minimum: 32M
  • post_max_size - Minimum: 32M
  • max_execution_time - Recommended: 30
  • allow_url_fopen - true
Joomla! Documentation | J4.x Hosting Setup

The minimum values for the php.ini file are shown below:

  • memory_limit: 256M
  • upload_max_filesize: 30M
  • post_max_size: 30M
  • max_execution_time: 30
Joomla! Documentation | J4.x Installing Joomla

php.ini Setting Value

  •  上記情報に若干の違いがありますが、とりあえず今回の警告をクリアするために最小の推奨値を設定することとしました
    • upload_tmp_dir: no value -> /tmp
    •  upload_max_filesize: 2M -> 32M
    •  post_max_size: 8M -> 32M
    •  memory_limit: 128M -> 256M
  • なお、upload_tmp_dirは元よりコメントアウトされており、未設定の場合はデフォルト値の/tmpが適用されます
    • 警告非表示のためにあえて設定してみました
    • Joomla Forumでも当該警告に関する同様の質問が繰り返されており、多くの方から警告は無視して構わない旨のコメントがされています

Ref. upload_tmp_dir

upload_tmp_dir string
ファイルアップロード時にファイル保存に用いるテンポラリディレクトリ。 PHPの実行ユーザーが書きこみ可能である必要が あります。指定されない場合、PHPはシステムのデフォルト設定を 使用します。

ここで指定したディレクトリに書き込むことができない場合、 PHP はかわりにシステムのデフォルトテンポラリディレクトリを使用します。 open_basedir が on の場合は、システムのデフォルトテンポラリディレクトリへのアップロードを許可しておかなければなりません。

PHP | コア php.ini ディレクティブに関する説明

Ref. /etc

$ sudo ls -l / | grep tmp
drwxrwxrwt.  12 root root       4096 Jul 12 17:08 tmp
  • /tmpのパーミッションはスティッキービットが設定されたdrwxrwxrwt(1777)となっています
    • すべてのユーザーが作成・書き込みできますが、削除できるのは所有者のみです

Procedure

php infoの確認

  1. phpinfo.phpを作成します
    <?php
      phpinfo();
    ?>
  2. FTPクライアントにてアップロードし、ファイルを/var/www/htmlへ移動します
  3. 所有者:所有グループをapache:apacheに変更します
  4. ブラウザにてphpinfo.phpにアクセスして、php infoから変更前の(デフォルトの)ルートphp.iniのパス、アップロード一時ファイル、その他の上記情報を確認します
    • Loaded Configuration File:   /etc/php.ini
    • upload_tmp_dir: no value
    • upload_max_filesize: 2M
    • post_max_size: 8M
    • memory_limit: 128M

php.iniの編集

  1. コンソールよりnanoエディタにてphp.iniの当該箇所を編集します
    $ sudo nano /etc/php.ini
    435 memory_limit = 256M
    703 post_max_size = 32M
    851 upload_tmp_dir = "/tmp"
    855 upload_max_filesize = 32M
  2. php-fpmを再起動します
    $ sudo systemctl restart php-fpm

php infoの変更反映を確認

  1. ブラウザにてphpinfo.phpにアクセスして、php infoから変更箇所が反映されているか確認します
    • upload_tmp_dir: /tmp
    • upload_max_filesize: 32M
    • post_max_size: 32M
    • memory_limit: 256M
  2.  Administration Interface > System > Information: Warningsを開き、警告が消去されたことを確認します
  3. 最後にphpinfo.phpを削除しておきます