php-fpm 에서 command line 실행과 다르게 동작합니다.
안녕하세요.
현재 arm 기반의 디바이스에 archlinux + NginX + php-fpm + php 를 설치해서
개인용도의 서버를 돌리고 있습니다.
위의 패키지들이 모두 정상적으로 설치되었고, php 파일도 정상적으로 접근되는 것을 확인하였습니다.
( 그누보드, 워드프레스를 실제로 올려서 사용해 보았습니다. ^^ )
그런데 어제 owncloud 를 설치하려고 하는데, mbstring package가 설치되어 있지 않다고 에러를 발생하더라구요.
제 php version 은 5.3.10 이고 compile configure 에 mbstring이 포함되어 있는 상태입니다.
$ php -m
$ php-fpm -m
을 실행해도 모두 mbstring module 이 목록에 포함되어 있습니다.
좀 더 확인해 보니 owncloud 에서 mbstring 모듈의 설치 유무는 아래와 같이 하고 있습니다.
<?php
if (function_exists('mb_detect_encoding')) {
// mbstring ok
} else {
// no mbstring
}
?>
그래서 test.php 를 만들어서 커맨드 라인에서 실행해보니 정상적으로 true가 반환됩니다.
<?php
echo "result:", function_exists('mb_detect_encoding'), "\n";
?>
$ php test.php
result: 1
그런데 동일한 스크립트를 http 를 통해서 접근하면
result:
와 같이 function_exists 에서 false 를 return 합니다.
뭔가 커맨드라인과 php-fpm을 실행하는 환경이 다른 것 같은데요.
혹시 증상과 관련해서 아시는 것이 있으시다면 답변 부탁드립니다.
phpinfo 를 통해서 확인해 보아도 두 환경 모두 동일한 php.ini 를 사용하고 있고,
php-cli는 disable 되어 있는 상태입니다.
혹시 의심가는 곳이 있으면 답변 부탁드립니다. ^^
감사합니다.
댓글 달기