PHP 스크립트를 실행하고이 오류가 발생합니다.
PHP 경고 : PHP 시작 : 동적 라이브러리 ‘/usr/local/lib/php/extensions/no-debug-non-zts-20090626/ixed.5.2.lin’-/ usr / local / lib / php / extensions를로드 할 수 없습니다. /no-debug-non-zts-20090626/ixed.5.2.lin : 공유 객체 파일을 열 수 없음 : 0 행의 Unknown에 해당 파일 또는 디렉토리가 없습니다.
그게 무슨 뜻입니까?
답변
이는 해당 확장을로드하려는 php 구성 파일 (php.ini 또는 그 근처에있는 다른 파일) 중 하나에 extension=...
또는 zend_extension=...
줄 이 있음을 의미 합니다.ixed.5.2.lin
불행히도 해당 파일 또는 경로가 존재하지 않거나 권한이 올바르지 않습니다.
.ini
PHP에 의해로드 된 파일 에서 검색을 시도하십시오 (어떤 파일이 있는지phpinfo()
표시 할 수 있음). 그중 하나가 해당 확장자를로드해야합니다.- 파일 경로를 수정하거나 해당 행을 주석 처리하십시오.
답변
Linux를 사용하는 경우 셸에 다음을 입력하여로드 된 모든 구성 파일을 찾을 수 있습니다.
php -r "print phpinfo();" | grep ".ini"
업데이트 : 의견에서 언급했듯이 이것은 훨씬 더 정확할 수 있습니다.
php -i | grep ini
답변
오류를 없애고 싶고 확장자가 필요하지 않은 경우 반드시 php.ini
. 그러나 실제로 문제를 해결하려면 여기에 몇 가지 추가 정보가 있습니다.
정확한 모듈에 따라 다양한 원인이 있지만 일반적인 지침도 있습니다.
- 열기
phpinfo()
와 대한보기extension_dir
세 이하Core
섹션을 참조하십시오. 여기에 모듈이 있어야합니다.
예를 들어,
/usr/lib/php/modules
Unix / Linux의 경우.
- 파일이 실제로 존재하는 경우 권한이 적절한 지 확인하십시오.
- 파일이 없으면 아래 리소스를 사용하여 설치하십시오.
답변
XAMPP를 사용하는 phpStom
TL; DR 파일이 존재하는지 확인하는 것 외에 php.ini 파일의 일부 레코드에 드라이브 문자를 추가해야 할 수 있습니다.
갑자기 xampp 및 xdebug로 PHP를 디버깅하기 위해 phpStorm 7을 사용하는 데 문제가 발생하기 시작했습니다. intellij interperter를 xampps php로 설정하려고 할 때 질문에있는 것과 같은 경고를 많이 받았습니다. 예를 들면 다음과 같습니다.
동적 라이브러리 ‘/xampp/php/ext/php_bz2.dll’을로드 할 수 없습니다.
어떤 이유로 php.ini 파일의 extension_dir 및 browscap 레코드에 드라이브 문자를 추가해야했습니다.
extension_dir = "\xampp\php\ext"
browscap = "\xampp\php\extras\browscap.ini"
에
extension_dir = "e:\xampp\php\ext"
browscap = "e:\xampp\php\extras\browscap.ini"
답변
php -r "echo php_ini_loaded_file();"
CLI에 현재 ini로드 된 파일이 표시되고 확장자를 검색합니다. 경로가 올바르지 않습니다.
답변
Linux에서 .dll로드
php.ini 파일을 통해 php-extension 을 설치하는 동안이 경고 메시지가 나타납니다 .
Linux에서 .dll 확장자를 로드 할 수 없다는 것을 알기 전까지 는
하지만 당신은해야 할 의견을 가져올 것을 확장 ;extension= ... .dll
하고 올바르게 설치 를 통해sudo apt-get install php-...
참고 : ...
활성화하려는 확장 이름입니다.
답변
PHP 라이브러리에 “기타”디렉토리 열기 권한이없는 경우에도이 오류가 발생할 수 있습니다. 내 특별한 경우에는 php -l
텍스트 편집기에서 스크립트를 구문 검사하는 데 사용할 때 이것을 발견했습니다 . 즉, 내 계정이 “volomike”라고했기 때문에 해당 계정에는 php
명령이 의존 하는 라이브러리를 실행할 권한이 없었 습니다.
예를 들어 Ubuntu 14.04에서는 경로에 PHP5가 자동으로 설치되었습니다 /usr/lib/php5/20121212+lfs
. 그러나 일부 공유 객체를 빌드 할 때 C ++에서 작업했기 때문에 디렉토리 권한을 엉망으로 만들고 루트가 아닌 계정에 .NET Framework를 볼 수있는 디렉토리 실행 (디렉토리 열기) 권한이 없도록 작업을 망쳤습니다 /usr/lib/php5/20121212+lfs
. 따라서 다음 명령을 입력하여 문제를 해결했습니다.
sudo chmod o+x /usr/lib/php5/20121212+lfs
.
이제 php -l example.php
루트가 아닌 사용자로 수행하면 더 이상 “동적 라이브러리를로드 할 수 없습니다”문제가 발생하지 않습니다.