2014-06-13 3 views
1

PHP-FPM에서 HHVM으로 잘 작동하는 응용 프로그램을 배포하려고합니다. 거의 모든 것이 하나의 것 : GD 라이브러리를 제외하고 작동합니다. GD는 일반적으로 작동하지만 imagettftext()imagefttext()은 작동하지 않는 것 같습니다. 그들은이 혼란 오류를 반환 :HHVM - imagettftext() : "해당 파일이나 디렉토리가 없습니다."

이미 HHVM을 다시 컴파일
[ErrorException]   
    No such file or directory 

에서, 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); 

미리 감사드립니다.

답변

0

도움이 될지 모르겠지만 동일한 문제에 직면했으며 경로를 절대적으로 도움이되었습니다.

그래서 대신

$font = "./Arial.ttf"; 

사용

$font = "/var/www/your_website_dir/whatever_dir_font_is_in/Arial.ttf"; 
+0

이 중 하나가 작동하지 않았다. 나는 이미지를 생성하기 위해 php-cgi를 사용하여이 문제를 해결했다. (이미지는 cronjob에서 주기적으로 생성된다.) – Moeflon