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
- Joomla 5.3インストール時は、php, DB, Apache等の基本的要件しか確認しておりませんでした
- Joomla 5.xではありませんが、J4.xに関するドキュメントでphpに関する次の要件を確認しました
- Joomla! Documentation | J4.x Hosting Setup
...minimal PHP requirements for Joomla:
Joomla! Documentation | J4.x Hosting Setup
- memory_limit - Minimum: 256M
- upload_max_filesize - Minimum: 32M
- post_max_size - Minimum: 32M
- max_execution_time - Recommended: 30
- allow_url_fopen - true
The minimum values for the php.ini file are shown below:
Joomla! Documentation | J4.x Installing Joomla
- memory_limit: 256M
- upload_max_filesize: 30M
- post_max_size: 30M
- max_execution_time: 30
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でも当該警告に関する同様の質問が繰り返されており、多くの方から警告は無視して構わない旨のコメントがされています
- The Joomla! Forum | The PHP temporary folder is not set (他愛のないことで喧嘩になるのは他国でも同じの様で...)
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の確認
- phpinfo.phpを作成します
<?php phpinfo(); ?>
- FTPクライアントにてアップロードし、ファイルを/var/www/htmlへ移動します
- 所有者:所有グループをapache:apacheに変更します
- ブラウザにて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の編集
- コンソールより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
- php-fpmを再起動します
$ sudo systemctl restart php-fp
m
php infoの変更反映を確認
- ブラウザにてphpinfo.phpにアクセスして、php infoから変更箇所が反映されているか確認します
- upload_tmp_dir: /tmp
- upload_max_filesize: 32M
- post_max_size: 32M
- memory_limit: 256M
- Administration Interface > System > Information: Warningsを開き、警告が消去されたことを確認します
- 最後にphpinfo.phpを削除しておきます