2012-12-12 5 views
0

Cygwin에서 PHP 5.4.9를 성공적으로 컴파일했지만 현재 MongoDB 확장을 동적으로로드 할 수 없습니다.Cygwin에서 동적 PHP 확장을로드 할 수 없습니다.

$ php -v 
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/local/lib/php/extensions/no-debug-non-zts-20100525/mongo.dll' - No such file or directory in Unknown on line 0 

그러나, 그것은 확실히있다 :

$ ls -l /usr/local/lib/php/extensions/no-debug-non-zts-20100525/mongo.dll 
-rwxr-xr-x 1 Linker None 204288 Dec 12 02:12 /usr/local/lib/php/extensions/no-debug-non-zts-20100525/mongo.dll 

DLL 파일이 공식 MongoDB를 GitHub의의의 repo에서 다운로드 된 즉, PHP CLI 출력입니다. 실제로 php_mongo-1.3.1-5.4-vc9-nts.dll로 이름이 변경되었습니다. 궁금한 순간 : x86_64 버전 (내 OS 버전)으로 대체하려고 할 때 - DLL에 잘못된 exec 형식이 있다고 표시됩니다.

답변

2

확장 프로그램을 다운로드 한 경우 Visual Studio를 사용하여 컴파일 된 PHP를 사용하여 기본 Windows DLL로 실행되도록 제작되었습니다. cyhwin-gcc를 사용하여 컴파일 된 PHP는이를 사용할 수 없습니다.

cygwin .so로 확장 프로그램을 컴파일하거나 Visual Studio를 사용하여 컴파일 된 PHP를 사용하십시오 (나중에 권장 함)

+0

고마워요! 실제로, 처음에는 확장을 컴파일하려고했으나'.a' 파일이 생성되었는데, 이것은 적합하지 않습니다. 대신 컴파일러가'.so'를 생성하도록하는 방법을 알고 있습니까? 방법이 없다면 VC에서 PHP를 다시 컴파일하려고 할 것입니다. – ualinker

+0

해결 방법을 찾았습니다.이 설명서를 사용하여 정적으로 확장을 컴파일했습니다. http://php.net/manual/en/install.pecl.static.php – ualinker

관련 문제