HHVM - imagettftext(): нет такого файла или каталога

Я пытаюсь развернуть приложение, которое отлично работает на 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);

Заранее спасибо!


person Moeflon    schedule 13.06.2014    source источник


Ответы (1)


Я не знаю, поможет ли это вам, но я столкнулся с той же проблемой, и мне помогло сделать путь абсолютным.

Итак, вместо

$font = "./Arial.ttf";

использовать

 $font = "/var/www/your_website_dir/whatever_dir_font_is_in/Arial.ttf";
person Programista    schedule 19.06.2014
comment
Это тоже не сработало. Я решил проблему, просто используя php-cgi для создания моих изображений (изображения периодически генерируются в cronjob). - person Moeflon; 16.07.2014