fc-list :lang=zh
php -r "var_dump(is_readable('/var/www/fonts/NotoSansSC-Regular.otf'));"

图片加水印一直正常,迁到海外服务器后水印位置只剩几个方框,日志里绘图函数没有报错,输出图上的中文全变成了方块。先别急着动参数,把报错原文和时间点记下来,顺序反了容易白折腾。

原因不复杂,绘图库用的字体文件只在原服务器装过,新机器上没有对应字形,找不到字符就画方块。字体路径还是硬编码的。

「水印中文乱码」确认了原因之后,改动尽量只碰那一处,顺手改的东西后面最容易出问题。备份不是备了就行,恢复一次才算数,很多备份文件打开才发现是空的。

接口问题先分清是没发出去、发出去了没收到,还是收到了处理失败。

处理上按这个顺序:把字体文件放进主题目录,用绝对路径引用;绘图前检查文件存在且可读;中文水印统一用一款明确支持中文的字体;加水印后抽一张图人工确认,别只看函数返回真。

改完只确认一件事:新服务器生成的水印图中文正常显示,抽检十张没有方框。

作者 9823189