PHP 경고 : PHP 시작 : 동적 라이브러리를로드 할 수 없습니다.


94

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에 해당 파일 또는 디렉토리가 없습니다.

그게 무슨 뜻입니까?

답변:


55

이는 해당 확장을로드하려는 php 구성 파일 (php.ini 또는 그 근처에있는 다른 파일) 중 하나에 extension=...또는 zend_extension=...줄 이 있음을 의미 합니다.ixed.5.2.lin

불행히도 해당 파일 또는 경로가 존재하지 않거나 권한이 올바르지 않습니다.

  1. .iniPHP에 의해로드 된 파일 에서 검색을 시도하십시오 (어떤 파일이 있는지 phpinfo()표시 할 수 있음). 그중 하나가 해당 확장자를로드해야합니다.
  2. 파일 경로를 수정하거나 해당 행을 주석 처리하십시오.

6
그래서 나도이 오류가 발생하지만 내 사이트는 여전히 작동합니다-가장 이상한 부분입니다. 이 유형의 오류의 경우 PHP가 처음부터 충돌한다고 가정합니다. 대신 내 페이지가 표시되지만 내 로거가이 오류를 기록하고 있습니다. 이상해?
BT

1
php.ini (내 경우에는 /etc/php.ini)에서 extension = php_pdo_mysql.dll 줄을 주석 처리 하고 Apache를 다시 시작하여 문제를 해결하고 경고를 제거했습니다. (Mac, Maverick)
ola

경로를 수정하십시오. 우리가 말하는 경로는 무엇입니까?
prats1411

3. 또는 누락 된 예상 확장 설치
Andrew

ini 파일의 @ prats1411 : extension = [경로 여기]
Andrew

37

Linux를 사용하는 경우 셸에 다음을 입력하여로드 된 모든 구성 파일을 찾을 수 있습니다.

php -r "print phpinfo();" | grep ".ini"

업데이트 : 의견에서 언급했듯이 이것은 훨씬 더 정확할 수 있습니다.

php -i | grep ini

5
php -i | grep ini잘 작동해야합니다 (명령 인수가있을 때 phpinfo를 인쇄 할 필요가 없습니다)
YorickH

1
비슷한 오류가 있었지만 phpinfo()문제가있는 ini 파일을 나열하지 않았습니다. YorickH가php -i | grep ini 제안한대로 나를 위해 일했습니다. 이것은 CLI에 대해로드 된 라이브러리를 나열하고 경고를 일으킨 ini 파일이 제 경우에는 CLI 디렉토리에있었습니다.
DaneeL 2015

7
무엇에 대한 php --ini모든 INI 파일을 나열하려면
OzzyCzech

17

오류를 없애고 싶고 확장자가 필요하지 않은 경우 반드시 php.ini. 그러나 실제로 문제를 해결하려면 여기에 몇 가지 추가 정보가 있습니다.

정확한 모듈에 따라 다양한 원인이 있지만 일반적인 지침도 있습니다.

  1. 열기 phpinfo()와 대한보기 extension_dir세 이하 Core섹션을 참조하십시오. 여기에 모듈이 있어야합니다.

예를 들어, /usr/lib/php/modulesUnix / Linux의 경우.

  1. 파일이 실제로 존재하는 경우 권한이 적절한 지 확인하십시오.
  2. 파일이 없으면 아래 리소스를 사용하여 설치하십시오.

* nix (PEAR)에
설치 Windows에 확장 설치


나는이 배 모듈을 통해 설치하려고 해요하지만 난 실행할 때 perl install <module>내가 가지고Can't open perl script "install": File or Directory not found
Fabiotk

문제를 파악하고 경로와 권한을 확인하는 것은 어렵습니다.
EternalHour

용기에 docker-php-ext-install <package>
넣으면

13

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"

2
이것은 윈도우 10에 나를 위해 그것을 고정
저스틴 Eldracher

1
이 창에 나를 위해 7 고마워 그것을 고정
Paramjeet

6

php -r "echo php_ini_loaded_file();"

CLI에 현재 ini로드 된 파일이 표시되고 확장자를 검색합니다. 경로가 올바르지 않습니다.


4

Linux에서 .dll로드

php.ini 파일을 통해 php-extension 을 설치하는 동안이 경고 메시지가 나타납니다 .

Linux에서 .dll 확장자를 로드 할 수 없다는 것을 알기 전까지 는

하지만 당신은해야 할 의견을 가져올 것을 확장 ;extension= ... .dll하고 올바르게 설치 를 통해sudo apt-get install php-...

참고 : ...활성화하려는 확장 이름입니다.


정확히 나를 위해 단순히 실종 된 모듈 설치 - 나는 phpPgAdmin를 설치하고 내가 명시 적으로 설치하는 데 필요한 것은이었다 sudo apt install php-pgsql과 PHP 버전 별 sudo apt install php7.1-pgsql(당신의 PHP 버전으로 변경 7.1)
jave.web

3

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루트가 아닌 사용자로 수행하면 더 이상 "동적 라이브러리를로드 할 수 없습니다"문제가 발생하지 않습니다.


이것은 Ubuntu 16.10을 사용하는 나에게 정확한 솔루션이었습니다. 당신이 리눅스를 사용하는 경우 "확장".SO하는 확장자를 변경 확인 (표준 설정은 내게 된 .dll주고 있었다)
mroesler

나는 리눅스 민트 18을 사용하고 있으며 이것은 여전히 ​​유효합니다
Dika

2

Composer를 설치하려고 할 때 Windows 용 XAMPP에서 동일한 문제가 발생했습니다. 내가 php -v했었고 PHP 던지는 오류 :

동적 라이브러리 '/xampp/php/ext/php_bz2.dll'을로드 할 수 없습니다.

XAMPP를 설정해야한다는 것을 깨달을 때까지 시간이 좀 걸렸습니다. 그래서 나는 실행 setup_xampp.bat하고 PHP는 매력처럼 작동합니다.


2

Composer를 설치하려고 할 때 Windows10 용 XAMPP에서 동일한 문제가 발생했습니다.

동적 라이브러리 '/xampp/php/ext/php_bz2.dll'을로드 할 수 없습니다.

그런 다음이 단계를 따르십시오.

  1. texteditor (예 : 메모장 ++)에서 current_xampp_tained_drive : \ xampp (default_xampp_folder) \ php \ php.ini를 엽니 다.
  2. 이제 찾기-current_xampp_tained_drive : \ xampp가 존재합니까?
  3. 그렇지 않은 경우 "extension_dir"을 찾아 드라이브 이름 (c, d 또는 원하는 드라이브)을 얻으십시오.

extension_dir = "F : \ xampp731 \ php \ ext"(여기서 finded_drive_name_from_the_file은 F)

  1. 다시 finded_drive_name_from_the_file : \ xampp를 current_xampp_tained_drive : \ xampp로 바꾸고 저장합니다.
  2. 이제 다시 작곡가 설치 진행을 시작하면 문제가 해결 될 것입니다.

1

내 서버에서 다른 버전의 PHP를 나란히 실행했을 때 여러 모듈 에서이 오류가 발생했습니다. 이 문제를 해결하기 위해 특정 PHP 버전에서 찾을 수없는 패키지를 설치해야했습니다. 예를 들어 내가 본 경우 :-

PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/20160303/xml.so'

특히 PHP 버전 용 라이브러리를 설치합니다.

sudo apt-get install php7.1-xml

그런 다음 Apache를 다시 시작하십시오. 나를 위해 고쳤습니다. 다음과 같이 버전을 확인할 수 있습니다.

php -v

1

Windows 10 XAMPP지금은 설치된 LAMPP (XAMPP)우분투. Windows XAMPPMAC (iOS)에 비해 구성 할 것이 훨씬 적었지만 이제는 Linux Ubuntu를 사용하면 Linux에서 더 많은 작업이 수행되므로 몇 가지가 더 있습니다 (좋은 점).

혼란스럽고 활성화되었습니다 mysqli.dll(그리고 mysql.dll : "#"지우기/etc/php/7.2/cli/php.ini

PHP Warning: PHP Startup: Unable to load dynamic library관련 메시지 를 받기 시작했습니다 dll. mysql(and i).dll같은 파일에서 주석을 달았 지만에서 ""를 주석 처리 할 때까지 메시지가 사라지지 않았습니다 /opt/lampp/etc/php.ini.

XAMPP 같은 외모 읽기 php.ini에서 파일을 /etc/php/7.2/cli과에서 수정을 만드는 php.ini/opt/lampp/etc. (; extension = php_pdo_mysql.dll 후 ";"가 Apache를 다시 시작하고 더 이상 메시지가 없습니다.


1

제 경우에는 스레드로부터 안전한 버전의 dll을 다운로드했기 때문에이 오류가 발생 -ts-했지만 (으로 고정됨 ) php의 PHP 설치는 스레드로부터 안전하지 않습니다 (로 고정됨 -nts-). 내 php 설치 버전과 정확히 일치하는 올바른 버전의 dll을 다운로드하면 문제가 해결되었습니다.


1
서버 스레드 안전 구성을 확인하려면 phpinfo () 및 thread-safety활성화 / 비활성화를 참조하십시오 . 반대로 ts에 대해 구성했을 때 다운로드 된 nts에서 동일한 오류가 발생했습니다.
Andy

0

비슷한 오류가 발생했습니다. 내가 저지른 실수는 내 URL에서 "페이지"대신 "페이지"로 "컨트롤러"이름을 사용하는 것입니다.


0

Windows에서는 "시스템 환경 변수"의 잘못된 경로 일 수 있습니다. php.exe 디렉토리에 대한 "경로"가 좋은 것이어야합니다.



0

내가 한 것은;

1-먼저 phpinfo () 함수를 통해 사용중인 PHP 버전을 찾습니다.

<?php   
    phpinfo();
?>

2-여기에서 구성 (php.ini) 파일의 위치를 ​​찾을 수 있습니다.

메소드 phpinfo () 결과

3-해당 파일 열기

4-아래 이미지와 유사한 줄을 주석 처리합니다.

다른 값일 수 있지만 확장과 관련되어야합니다. 저는 전문가는 아니지만이 과정을 통해 비슷한 문제를 해결할 수있었습니다.

여기에 이미지 설명 입력


0

'C : /PHP/5.2.13/ext \ php_mcrypt1.dll'

php.ini (추가 1)에 오타가 있다고 말하고 싶습니다. 예상 한 것과 다른 php.ini를로드하고있을 수 있습니다 (확인하려면 php.ini의 출력 참조).

그 외에는 php_mcrypt.dll 및 PHP를 확인하십시오.

동일한 VC 런타임 라이브러리 (일반적으로 VC6의 경우 msvcrt.dll 또는 VC9의 경우 msvcrt90.dll)에 연결되었습니다. 예를 들어 종속성 워커를 사용하십시오. 둘 다 디버그 빌드이거나 둘 다 릴리스 빌드입니다. 둘 다 ZTS가 활성화되었거나 ZTS가 비활성화되었습니다. 추가 라이브러리 (DLL), 사용할 수 있는지 확인하십시오 (예 : 확장 프로그램과 동일한 디렉토리에 있음) 위의 처음 세 가지 조건 중 하나라도 충족되지 않으면 PHP가 의미 오류를 제공해야하지만 확실하지 않기 때문에 어쨌든 작성했습니다. PHP 5.2의 경우.


-1

비슷한 문제가 있었고 벨로우즈는 모든 경고 / 오류 중 일부입니다.

Warning: PHP Startup: Unable to load dynamic library 'curl' (tried: C:\php\ext\curl 
(The specified module could not be found.), C:\php\ext\php_curl.dll (The specified 
module 
could not be found.)) in Unknown on line 0

Warning: PHP Startup: Unable to load dynamic library 'fileinfo' (tried: 
C:\php\ext\fileinfo (The specified module could not be found.), 
C:\php\ext\php_fileinfo.dll (The specified module could not be found.)) in Unknown on 
line 0

경고를 통해 확인하면 php 확장을 찾고 있음을 알 수 C:\php\ext\있으므로 php를 C:\디렉토리에 다운로드 하여 문제를 해결했습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.