Próbowałem zainstalować php (7.2) w Ubuntu (16.04) z włączoną funkcją PDO. Nie potrzebuję php jako modułu apache, ponieważ chcę używać wbudowanego serwera PHP (w trybie cli, jak php -S localhost:80
).
Oto co robię:
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
Teraz w komentarzu do php.ini:
extension=pdo_mysql
Nadal po uruchomieniu pojawia php -v
się błąd:
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
wynik:
[PHP Modules]
Core
date
filter
hash
libxml
openssl
pcntl
pcre
Reflection
session
sodium
SPL
standard
zlib
[Zend Modules]
sudo phpenmod pdo_mysql
daje mi/usr/sbin/phpenmod: 31: .: Can't open /usr/lib/php/php-helper
Odpowiedzi:
Rozwiązałem problem w ten sposób:
sudo apt-get --purge remove php-common
sudo apt-get install php-common php-mysql php-cli
Teraz nie ma błędu i
php -m
pokazuje, że ma wszystko:Nadal nie wiem, co spowodowało problem
źródło
xampp
problem w Ubuntu 16.04. DziękiTen sam problem stworzyłem na swoim polu pracy, ręcznie odznaczając kilka
linie w
php.ini
. Który tak naprawdę zgadywałam całyapt-get install
proces. Myślę, że nowoczesny php7 + obsługuje te rozszerzenia przy użyciuconf.d
określonych plików, takich jak:/etc/php/7.3/cli/conf.d/10-pdo.ini
/etc/php/7.3/cli/conf.d/20-pdo_mysql.ini
Odpowiedzią dla mnie było ponowne skomentowanie tych
;extension
wierszy wphp.ini
pliku cli .źródło