画像がアップできなかった件 #2

事象

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に投げる。

ChatGPTの回答

結論、どれもハズレで、単にアップしているファイルが2MB以上だったことが原因...

 

解決方法

#1 php.info()の内容を確認

現在の設定内容を確認しに行く。

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

 

解決。

 

タグ