2012-07-17 5 views
0

C++과 Swig로 커스텀 PHP 모듈을 만들었습니다. 명령 줄에서 작동하지만 내 웹 서버에서는 작동하지 않습니다.PHP 커스텀 C++ 모듈이 웹 서버가 아닌 명령 행에서 작동합니다.

php index.php 
php-cgi index.php 

두 가지 모두 정상적으로 작동합니다.

나는 lighttpd와 PHP를 사용하고 있습니다. 특별한 방법으로 구성하지 않았습니다. 방금 설치 한 sudo-get을 사용하여 설치했습니다.

Fatal error: Call to undefined function minikey_to_wif() in /var/www/index.php on line 6 

function_exists ("minikey_to_wif")를 호출 너무 False를 반환 : 나는 웹 페이지를 만들 경우

불행하게도 나는이 얻을.

은 phpinfo()는 내 모듈이라고 minikey을 보여, 나는 (/etc/php5/cgi/php.ini) 편집 한 파일과 동일한 구성 경로 표시하지 않습니다

extension=/path/to/php-ext/minikey/minikey.so 

나 또한 노력을 다른 PHP 확장이 설치된 것처럼 보이지만 (/ usr/lib/php5/20090626 + lfs /), 그 중 하나는 작동하지 않습니다.

저는 멈추고 lighttpd를 무수히 시작했습니다. 매번 ps aux를 실행할 때 | grep php, 결과가 없습니다. 나는 또한 효과가 없도록 몇 번 재부팅했습니다. 나는 무슨 일이 일어나는지 전혀 모른다.

+0

간단한 힌트 일지 모르지만 웹 서버를 다시 시작 했습니까? 그리고 명령 행에서 test.php를 테스트하고 브라우저에서 index.php를 테스트하고 있습니까? – rsplak

+0

예 여러 번 다시 시작하고 컴퓨터를 여러 번 재부팅했습니다. – genjix

답변

2

확인 결과를 찾았습니다.

확장 프로그램은 비표준 위치에 설치된 라이브러리를 사용합니다. 일반적으로 ~/.bashrc에 LD_LIBRARY_PATH를 설정합니다. 그러나 웹 서버가 확장을 실행하면 해당 환경 변수가 없습니다.

/home/genjix/usr/lib를 사용하여 /etc/ld.so.conf.d/genjix.conf에 파일을 만들고 ldconfig를 루트로 실행하는 것이 수정되었습니다.

0

lighty를 사용하여 phpinfo()를 실행 해보십시오. 올바른 php.ini를 가리키는 지 확인하십시오.

이 당신이 "bin-path" => "/path/to/php-cgi -c /path/to/php.ini"와 lighttpd.conf가 내부에서 -c 스위치를 사용하여 PHP를 실행할 수있는 문제라고 생각하는 경우 :

예를 들어,

fastcgi.server = (
    ".php" => (
      (
        "bin-path" => "/path/to/php-cgi -c /path/to/php.ini", 
        "socket" => "/tmp/php.socket", 
        "max-procs" => 4, 
        "idle-timeout" => 30, 
        "bin-environment" => (
          "PHP_FCGI_CHILDREN" => "4", 
          "PHP_FCGI_MAX_REQUESTS" => "1000" 
        ) 
      ) 
    ) 
) 
관련 문제