>  Q&A  >  본문

php pdo_pgsql 파일이 존재하지만 인식되지 않습니다

Ubuntu(20.4?)에서 DigitalOcean Droplet 실행

내 사용자 A에게는 루트 권한이 있습니다. 또한 postgres 데이터베이스의 userA에도 연결되어 있습니다.

사용 중인 소프트웨어 설정으로 인해 postgresdb에 대한 특정 사용자 이름이 필요합니다. 온라인에 너무 많은 데이터가 노출되는 것을 방지하기 위해 userB라고 부르겠습니다. 이것은 Linux 및 Postgres 사용자입니다.

기본적으로 (uname,dbname,pdo,options)를 입력으로 사용하는 PHP 명령을 실행하고 있지만 pdo 파일을 찾을 수 없기 때문에 현재 실패하고 있습니다.

몇 가지 게시물을 찾아봤습니다. 누군가가 모든 php.ini 파일에서 모든 pgsql 및 pdo_pgsql 행의 주석 처리를 제거할 것을 제안했습니다. 저는 프로덕션, 개발 또는 파일의 범용 버전을 위해 이를 수행했습니다.

userA와 userB로 명령을 실행하면 이 오류가 발생합니다.

으아아아

그러나 pdo_pgsql.so는 실제로 해당 위치에 존재합니다. (pdo_pgsql이라는 이름의 파일을 찾고 있는데 pdo_pgsql.so를 찾고 있습니까?)

php 웹사이트에 하나를 실행하라는 메시지가 표시됩니다

으아아아

명령을 실행하지만 실제로 어떤 폴더에 구성이 있는지는 나와 있지 않습니다. CLI에서 설치할 수 있는 패키지가 아닙니다. (https://www.php.net/manual/en/ref.pdo-pgsql.php)

다른 페이지에서는 먼저 autoconf를 설치해야 한다고 나와 있지만(https://unix.stackexchange.com/questions/158960/can-not-run-configure-command-no-such-file-or-directory) 그런 것은 없습니다. 이것을 만드는 방법. /사용 가능한 명령을 구성합니다.

또한 PDO 파일의 위치를 ​​표시하려면 Apache의 conf 파일을 업데이트해야 한다는 기사를 찾았지만 아직 서버를 실행하지 않고 로컬 pgsql 데이터베이스를 채우는 PHP 파일을 실행합니다. (pgsql 확장이 로드되지 않음)

달려

으아아아

주어진

으아아아

API의 고객 서비스에 따르면 반환되어야 하지만

으아아아

내 생각에는 선택한 데이터베이스 소프트웨어에 따라 다양한 드라이버의 여러 예가 제공되는 것 같습니다.

무엇을 해야할지 잘 모르겠습니다.

업데이트:

php에서 사용하는 php.ini 파일을 편집해서 시도해보았습니다

으아아아

사용해봤습니다

으아아아

pdo_pgsql 및 pdo_pgsql.so 파일 경로를 찾으세요. 나는 php.ini 파일에 4가지 다른 편집을 시도했습니다. 2 기본 pgsql 확장의 주석 처리를 한 번에 하나씩 제거합니다. 2는 찾기를 통해 내 시스템에서 찾은 pdo_pgsql 파일에 대한 다른 파일 경로입니다.

으아아아

아래 사용자 요구 사항에 따라 출력

PHP Warning:  PHP Startup: Unable to load dynamic library 'pdo_pgsql' (tried: /usr/lib/php/20190902/pdo_pgsql (/usr/lib/php/20190902/pdo_pgsql: cannot open shared object file: No such file or directory), /usr/lib/php/20190902/pdo_pgsql.so (/usr/lib/php/20190902/pdo_pgsql.so: undefined symbol: pdo_parse_params)) in Unknown on line 0

P粉191610580P粉191610580179일 전340

모든 응답(1)나는 대답할 것이다

  • P粉463824410

    P粉4638244102024-03-22 09:12:49

    DEV enc에서 작동하지 않는 것이 있으면 PROD에서 시도하지 마세요. DEV env를 갖는 목적에 어긋나는 일입니다..

    In php.ini에는 pgsql을 활성화하는 방법에 대한 예가 이미 있습니다.

    으아아아

    아님 module=

    어떤 버전의 PHP를 사용하고 있는지 모르겠지만, 잘못된 라이브러리 버전이 있는 것 같으니 적절한 버전이 설치되어 있는지 확인하세요. php7.X-pgsql.

    질문에 다음 출력을 추가할 수 있습니다.

    으아아아

    회신하다
    0
  • 취소회신하다