我正在尝试将一个在PHP-FPM上运行良好的应用程序部署到HHVM。几乎所有东西都有效,除了一件事:GD图书馆。 GD一般有效,但imagettftext()
和imagefttext()
似乎没有效果。
他们回复了这个令人困惑的错误:
[ErrorException]
No such file or directory
我已经重新编译了HHVM,以包含FreeType路径和gd_info()
{"GD Version":"bundled (2.0.34 compatible)","FreeType Support":true,"FreeType Linkage":"with freetype","T1Lib_Support":false,"GIF Read Support":true,"GIF Create Support":true,"JPEG Support":true,"PNG Support":true,"WBMP Support":true,"XPM Support":false,"XBM Support":true,"JIS-mapped Japanese Font Support":false}
我尝试了这个(https://stackoverflow.com/a/15001557/1792799)解决方案,但无济于事。
我很确定这个错误与代码无关,因为它在' normal'上工作得非常好。 PHP。但无论如何,这是它出错的部分。 字体路径存在并且可由服务器读取,字体文件存在,并且同一服务器上的相同代码再次与PHP-FPM一起运行。
// Font path
putenv('GDFONTPATH=' . $basepath . '/' . 'font');
// Choose font
$mc = "mc";
// Set font-sizes
$fonts = 12;
$mfont = 12 - 2.2;
$snx = 15;
$sny = 21;
$mx = $snx;
$my = $sny + 16;
$sipx = $snx;
$sipy = $my + 15;
$motd = $server->getCache('motd');
$motd = (strlen($motd) > 43) ? substr($motd, 0, 40).'...' : $motd;
// Server name
imagettftext($image, $fonts, 0, $snx + 1, $sny + 1, $white_shadow, $mc, $server->name);
imagettftext($image, $fonts, 0, $snx, $sny, $white, $mc, $server->name);
提前致谢!
答案 0 :(得分:0)
我不知道它是否会对你有所帮助,但我面临着同样的问题,对我来说,这条道路绝对有帮助。
所以而不是
$font = "./Arial.ttf";
使用
$font = "/var/www/your_website_dir/whatever_dir_font_is_in/Arial.ttf";