우분투 16.04에서 pdo-mysql을 사용하는 PHP


11

PDO가 활성화 된 우분투 (16.04)에 PHP (7.2)를 설치하려고했습니다. PHP 내장 서버 (cli 모드와 같은 php -S localhost:80) 를 사용하고 싶기 때문에 아파치 모듈로 php가 필요하지 않습니다 .

그래서, 여기 내가하는 일이 있습니다 :

sudo apt-get install php

sudo apt-get install php-mysql

sudo cp /usr/lib/php/7.2/php.ini-production.cli /etc/php/7.2/cli/php.ini

이제 php.ini에서 주석 처리가 제거되었습니다.

extension=pdo_mysql

그리고 여전히 내가 실행할 때 php -v오류가 발생합니다.

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

php -m 산출:

[PHP Modules]
Core
date
filter
hash
libxml
openssl
pcntl
pcre
Reflection
session
sodium
SPL
standard
zlib
[Zend Modules]


sudo phpenmod pdo_mysql제공/usr/sbin/phpenmod: 31: .: Can't open /usr/lib/php/php-helper
Dan Miller

위의 답변에 따르면 우분투 16.04에서는 모드를 활성화 할 필요가 없으며 설치 + 다시 시작하십시오.
Grzegorz

아, 잠깐만-CLI에서 수행하면이 경우 아파치 재시작이 필요하지 않습니다.
Grzegorz

예, apache2는 비활성입니다
Dan Miller

답변:


32

이 방법으로 문제를 해결했습니다.

sudo apt-get --purge remove php-common

sudo apt-get install php-common php-mysql php-cli

이제 오류가 없으며 php -m모든 것이 있음을 보여줍니다.

[PHP Modules]
calendar
Core
ctype
date
exif
fileinfo
filter
ftp
gettext
hash
iconv
json
libxml
mysqli
mysqlnd
openssl
pcntl
pcre
PDO
pdo_mysql
Phar
posix
readline
Reflection
session
shmop
sockets
sodium
SPL
standard
sysvmsg
sysvsem
sysvshm
tokenizer
Zend OPcache
zlib

[Zend Modules]
Zend OPcache

여전히 처음에 문제를 일으킨 원인을 모른다


1
나는 데비안과 PHP 7.2 (5.6, 7.0, 7.1 및 7.3 작업하는 미세) 퍼지와 같은 문제를 가지고 있었고, 새롭게 설치하는 것은 너무 나를 위해 그것을 해결
피에르

xampp우분투 16.04에서 내 문제를 해결했습니다 . 감사합니다
AN

이상한 PHP 설치에서 나를 구원
브라이언 피터슨

Yay-저도 함께 일했습니다
Jason Morgan

감사합니다! 이것은 내 문제를 해결했습니다. (Ubuntu 19.04 | Php 7.2)
PlayHardGoPro

-1

수동으로 주석을 제거하여 작업 상자에서 동일한 문제를 만들었습니다.

;extension=<module>

의 줄 php.ini. apt-get install프로세스를 두 번째로 추측 한 것이 었습니다 . 현대 php7 +는 다음 conf.d과 같은 특정 파일을 사용하여 이러한 확장을 처리한다고 생각 합니다.

  • /etc/php/7.3/cli/conf.d/10-pdo.ini
  • /etc/php/7.3/cli/conf.d/20-pdo_mysql.ini

그 대답 ;extension은 cli의 php.ini파일 에서이 줄을 다시 주석 처리했습니다 .

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