PHP กับ pdo-mysql ใน Ubuntu 16.04


11

ฉันพยายามติดตั้ง php (7.2) ใน Ubuntu (16.04) ด้วยการเปิดใช้งาน PDO ฉันไม่ต้องการ php เป็นโมดูล apache เพราะฉันต้องการใช้เซิร์ฟเวอร์ในตัว PHPs (ในโหมด cli เช่นphp -S localhost:80)

ดังนั้นนี่คือสิ่งที่ฉันทำ:

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
มิลเลอร์แดน

คำตอบข้างต้นบอกว่าใน Ubuntu 16.04 คุณไม่จำเป็นต้องเปิดใช้งาน mod ลองเพียงแค่ติดตั้ง + เริ่มใหม่
Grzegorz

โอ้รอ - คุณทำมันใน CLI ไม่จำเป็นต้องรีสตาร์ท apache ในกรณีนี้
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
ฉันมีปัญหาเดียวกันกับ Debian และ PHP 7.2 (5.6, 7.0, 7.1 และ 7.3 ทำงานได้ดี) การล้างและติดตั้งใหม่แก้ไขให้ฉันด้วย
Pierre

แก้ไขปัญหาของฉันxamppใน Ubuntu 16.04 ขอบคุณ

บันทึกฉันจากการติดตั้ง PHP แปลก ๆ
Brian Peterson

Yay - ทำงานให้ฉันด้วย
Jason Morgan

ขอบคุณ! นี่เป็นการแก้ไขปัญหาของฉัน (Ubuntu 19.04 | Php 7.2)
PlayHardGoPro

-1

ฉันสร้างปัญหาเดียวกันสำหรับตัวเองในกล่องงานของฉันด้วยตนเองโดยไม่ใส่ข้อคิดเห็นหลาย ๆ

;extension=<module>

php.iniสายใน ซึ่งจริงๆแล้วฉันเดาapt-get installขั้นตอนที่สอง ฉันคิดว่า modern 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บรรทัดเหล่านี้อีกครั้งในphp.iniไฟล์ของ CLI

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