pdo_mysql ถูกลบเมื่ออัปเดตเป็น 16.04


9

ฉันเพิ่งอัปเดตเป็น 16.04 LTS และมันอัพเดท php ของฉันเป็น 7.0 ตอนนี้มันเป็นวิธีการลบ pdo_mysql ฉันต้องการส่วนขยายนี้เพื่อพัฒนาเว็บไซต์วีโอไอพี ใน phpinfo ฉันเจอ

สนับสนุน pdo: เปิดใช้งานไดรเวอร์ pdo: ไม่มีค่า

ฉัน googled มากและพบวิธีแก้ปัญหาเหล่านี้:

  1. ติดตั้ง php-mysql (เป็นรุ่นใหม่ล่าสุดแล้ว)
  2. ติดตั้ง php7.0-mysql (มันเป็นเวอร์ชั่นใหม่ล่าสุดอยู่แล้ว)
  3. เปลี่ยนการติดตามใน php.ini (/etc/php/7.0/apache2/php.ini): ส่วนขยายที่เปิดใช้งาน pdo.so, pdo_mysql.so, mysqli.so และพยายามทำเช่นเดียวกันโดยให้เส้นทางที่แน่นอน (เริ่มต้น apache ใหม่หลังจากทำการเปลี่ยนแปลง)
  4. แม้แต่ลองติดตั้ง pdo_mysql ด้วย pecl

วิธีการข้างต้นไม่เป็นประโยชน์เลยฉันเลิกทำแบบนี้มาเกือบ 2 วันแล้ว ความช่วยเหลือจะได้รับการชื่นชมอย่างมาก

เอาต์พุตของ php -r 'phpinfo ();' | grep -i pdo:

/etc/php/7.0/cli/conf.d/10-pdo.ini,
PDO
PDO support => enabled
PDO drivers =>  

เอาต์พุตของ / usr / sbin / phpquery -v 7.0 -M

mysqlnd
sysvmsg
sockets
gd
mcrypt
phar
xsl
xmlreader
shmop
sysvsem
mysqli
xml
tokenizer
iconv
pdo
pdo_mysql
gettext
simplexml
xmlwriter
opcache
posix
sysvshm
ftp
dom
json
readline
calendar
fileinfo
ctype
wddx
exif

เอาต์พุตของ dpkg -l php * mysql

Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name           Version      Architecture Description
+++-==============-============-============-=================================
ii  php-mysql      1:7.0+35ubun all          MySQL module for PHP [default]
un  php-pdo-mysql  <none>       <none>       (no description available)
rc  php5-mysql     5.6.11+dfsg- amd64        MySQL module for php5
ii  php7.0-mysql   7.0.4-7ubunt amd64        MySQL module for PHP
un  php7.0-pdo-mys <none>       <none>       (no description available)

php -r 'phpinfo();' | grep -i pdoกรุณาโพสต์เอาท์พุท และคุณไม่ควรเปิดใช้งานส่วนขยายด้วยตนเอง แต่ใช้phpenmodแทน หรือจะโพสต์เอาต์พุตเต็มรูปแบบของ phpinfo () ที่ไหนสักแห่งจากเซิร์ฟเวอร์เสมือนที่คุณใช้งานวีโอไอพี ฉันสงสัยว่าคุณอาจจะทำบางสิ่งบางอย่างที่จะ php.ini เริ่มต้นของคุณ ...
oerdnj

ขออภัยที่ตอบช้า นี่คือผลลัพธ์: /etc/php/7.0/cli/conf.d/10-pdo.ini, PDO รองรับ PDO => เปิดใช้งานไดรเวอร์ PDO =>
Rakshith S Kumar

เพิ่มผลลัพธ์ให้กับคำถามเริ่มต้นเช่นกัน
Rakshith S Kumar

และผลลัพธ์ของ: /usr/sbin/phpquery -v 7.0 -Mและdpkg -l php*mysql?
oerdnj

เพิ่มทั้งเอาต์พุต
Rakshith S Kumar

คำตอบ:


8

ในขั้นตอนนี้ฉันจะแนะนำ "ปิดและเปิดอีกครั้ง" โดยทำ:

sudo apt-get purge php-common php5-common

ติดตามโดย

sudo rm -r /etc/php

จากนั้นติดตั้งโมดูล PHP 7.0 และ mysql ใหม่:

sudo apt-get install libapache2-mod-php php-mysql

คุณอาจลองเพียงแค่ล้างและติดตั้งโมดูล mysql ก่อนอื่นให้ลบแพ็คเกจ:

sudo apt-get purge php7.0-mysql

และทำการติดตั้งอีกครั้ง:

sudo apt-get install php-mysql

ในทั้งสองกรณีสิ่งสำคัญคือการใช้apt-get purgeแทนapt-get removeการลบไฟล์การกำหนดค่าที่มีอยู่และสถานะแพคเกจ

วิธีทำลายที่น้อยที่สุดคือพยายามเปิดใช้งานโมดูล mysql อีกครั้งโดยใช้phpenmodคำสั่ง:

sudo phpenmod mysqlnd pdo_mysql

เป็นการยากที่จะให้คำแนะนำที่ถูกต้องแก่คุณหากเราไม่ทราบว่าคุณสร้างความโกลาหลใดในระบบของคุณ


ฉันทำตามขั้นตอนการล้าง, ลบไดเรกทอรี, ติดตั้งใหม่และกำจัด php7.0-mysql และติดตั้ง php-mysql ตอนนี้ apache หยุดทำงานมันบอกว่าไม่สามารถจัดการกับคำขอได้ :(
Rakshith S Kumar

1
ขอโทษฉันไม่ดีฉันต้องติดตั้ง php7.0-xml และทุกอย่างเรียบร้อยดี ขอบคุณมาก.
Rakshith S Kumar
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.