1

我正在尝试将在 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)解决方案,但无济于事。

我很确定这个错误与代码无关,因为它在“普通”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);

提前致谢!

4

1 回答 1

0

我不知道它是否会帮助你,但我也面临同样的问题,对我来说,让路径绝对有帮助。

所以而不是

$font = "./Arial.ttf";

利用

 $font = "/var/www/your_website_dir/whatever_dir_font_is_in/Arial.ttf";
于 2014-06-19T13:34:01.180 回答