事象
Animation GIF画像をCKEditorに登録しようとしたときにエラーがでた。
別記事の通り、sites/default/files の権限設定は済んでいたので、
Animation GIF固有の問題なのかと思い悪戦苦闘。
この時点で、2つのエラーが出ていた。
#1: 指定されたファイル「/var/www/html/path/to/web」を「public://inline-images/polycam.gif」へ移動できませんでした。
#2: Symfony\Component\HttpKernel\Exception\HttpException: Temporary file could not be moved to file location in Drupal\ckeditor5\Controller\CKEditor5ImageController->upload() (line 188 of /var/www/html/path/to/web/core/modules/ckeditor5/src/Controller/CKEditor5ImageController.php).
どっちも意味がわからず、そのままChatGPTに投げる。
結論、どれもハズレで、単にアップしているファイルが2MB以上だったことが原因...
解決方法
#1 php.info()の内容を確認
現在の設定内容を確認しに行く。
upload_max_filesize, upload_tmp_dir あたりの中身を確認。
あと不要かもだけども、Loaded Configuration File を確認(php.iniの場所)。
#2 php.ini の修正
Loaded Configuration File の中身を修正。以下の通り。
- upload_max_filesize
- 2MB (初期値)→ 10MBあたりに変更
- upload_tmp_dir
- ここは、php.iniに設定していたのに、なぜかNo valueになっていた
- sudo systemctl restart php-fpm.service をサーバ側で実行後に反映された
- httpdはrestartしたけど、php-fpmもrestart必要だったのかも
あと、ChatGPT的な設定おすすめは以下の通りらしい。
; Maximum allowed size for uploaded files.
upload_max_filesize = 20M
; Maximum size of POST data that PHP will accept.
post_max_size = 25M
; Maximum execution time of each script, in seconds.
max_execution_time = 300
; Maximum amount of memory a script may consume.
memory_limit = 128M
うーん、実案件でも20MBまで設定したことないなと思い、今回は10MBくらいに設定
#3 httpd再起動
- sudo systemctl restart php-fpm.service
- sudo systemctl restart httpd
- drush cr
解決。
- コメントを投稿するにはログインしてください