tcpdfを使って、フォームで入力した情報からPDFを自動作成するプログラムを使っている
テスト環境と本番環境を用意しているのだが、テスト環境でプログラムを色々といじっていたところ、PDFにいつも表示されるはずの画像が表示されなくなっていたので焦った
PDF生成に関する部分については、プログラムを変更していなかったので何がわるいのかなかなか見当がつかず、対応に苦戦したのでメモしておく
サーバーでエラーログを確認
vi /var/log/httpd/error_log
気になるエラーを発見
[Tue Oct 05 13:16:21.824716 2021] [:error] [pid 20895] [client xxx.xxx.xxx.xxx:63980] PHP Warning: imagepng(/var/www/html/tcpdf/cache/__tcpdf_bb01b6e03c3d224577e4f5603224bffb_imgmask_alpha_57ef44e8bd9c48c45b652a870f7fc750): failed to open stream: Permission denied in /var/www/html/tcpdf/tcpdf.php on line 7302, referer: http://xxx.xxx.xxx.xxx/index.php
「failed to open stream: Permission denied」と書かれているので、/var/www/html/tcpdf/cacheのパーミッションが適切でないことが問題らしいな?
パーミッションを707に変更した
(画像をちゃんと表示できている本番環境のパーミッションに合わせた)
chmod 707 /var/www/html/tcpdf/cache
無事画像が表示されるようになった
コメント