Я только начал заниматься PHP и фреймворком Zend 3 для своей новой работы. Я хотел потренироваться в рамках, так как это то, что они используют.
Я следовал руководству от здесь, в котором вы столкнулись с созданием модуля для фреймворка. В своем примере они используют SQLite для простых действий с базой данных, для которых настроена задача. Вот в чем моя проблема. Я реализовал код примера до момента, когда я должен сначала увидеть все альбомы, вставленные в базу данных. Вот когда я получаю сообщение об ошибке:
Файл:
.../vendor/zendframework/zend-db/src/Adapter/Driver/Pdo/Connection.php:282
Сообщение:
Connect Error: could not find driver
Честно - затем я погуглил и обнаружил, что в моем файле php.ini я должен раскомментировать строку extension=pdo_sqlite. Что я и сделал. Я также установил пакет php7.3-sqlite и все, что я могу найти, необходимо для его запуска.
Я не использую для этого apache или nginx, я просто использую собственный встроенный веб-сервер PHP для этого простого руководства.
Когда я запускаю свою команду: php -S me.localhost:1337 -t public public/index.php из каталога моей рабочей области, я получаю:
PHP Warning: PHP Startup: Unable to load dynamic library 'pdo_sqlite' (tried: /usr/lib/php/20180731/pdo_sqlite (/usr/lib/php/20180731/pdo_sqlite: cannot open shared object file: No such file or directory), /usr/lib/php/20180731/pdo_sqlite.so (/usr/lib/php/20180731/pdo_sqlite.so: undefined symbol: php_pdo_unregister_driver)) in Unknown on line 0
А также:
PHP Warning: PHP Startup: Unable to load dynamic library 'pdo_sqlite.so' (tried: /usr/lib/php/20180731/pdo_sqlite.so (/usr/lib/php/20180731/pdo_sqlite.so: undefined symbol: sqlite3_column_table_name), /usr/lib/php/20180731/pdo_sqlite.so.so (/usr/lib/php/20180731/pdo_sqlite.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
Я проверил свою файловую систему и путь к файлу: /usr/lib/php/20180731/pdo_sqlite.so существует.
ls -la /usr/lib/php/20180731/
total 6792
drwxr-xr-x 2 root root 4096 Mar 13 16:34 .
drwxr-xr-x 4 root root 4096 Mar 13 16:31 ..
-rw-r--r-- 1 root root 30824 Mar 7 21:31 calendar.so
-rw-r--r-- 1 root root 14440 Mar 7 21:31 ctype.so
-rw-r--r-- 1 root root 84072 Mar 7 21:31 exif.so
-rw-r--r-- 1 root root 5425264 Mar 7 21:31 fileinfo.so
-rw-r--r-- 1 root root 59496 Mar 7 21:31 ftp.so
-rw-r--r-- 1 root root 14440 Mar 7 21:31 gettext.so
-rw-r--r-- 1 root root 43112 Mar 7 21:31 iconv.so
-rw-r--r-- 1 root root 43112 Mar 7 21:31 json.so
-rw-r--r-- 1 root root 506352 Mar 7 21:31 opcache.so
-rw-r--r-- 1 root root 108648 Mar 7 21:31 pdo.so
-rw-r--r-- 1 root root 30824 Mar 7 21:31 pdo_sqlite.so
-rw-r--r-- 1 root root 268392 Mar 7 21:31 phar.so
-rw-r--r-- 1 root root 34920 Mar 7 21:31 posix.so
-rw-r--r-- 1 root root 30824 Mar 7 21:31 readline.so
-rw-r--r-- 1 root root 14440 Mar 7 21:31 shmop.so
-rw-r--r-- 1 root root 88168 Mar 7 21:31 sockets.so
-rw-r--r-- 1 root root 51304 Mar 7 21:31 sqlite3.so
-rw-r--r-- 1 root root 14440 Mar 7 21:31 sysvmsg.so
-rw-r--r-- 1 root root 10344 Mar 7 21:31 sysvsem.so
-rw-r--r-- 1 root root 14440 Mar 7 21:31 sysvshm.so
-rw-r--r-- 1 root root 18536 Mar 7 21:31 tokenizer.so
Как видите, в выводе ls -la указано, что файлы существуют. Я действительно не знаю, что делать отсюда. Я пробовал много вещей, даже очистил свою установку php и установил ТОЛЬКО php 7.3. Хоп ты можешь помочь.
Также убедитесь, что вы раскомментировали extension=pdo в файле php.ini. (И я думаю, что он должен появиться в файле перед строкой pdo_sqlite.)
@mario - да :) Я специально выбрал apt install php7.3-sqlite3 @Alex-howansky - я попробую это :) кажется хорошей идеей :)
@mario - я не понимаю, почему вы отметили это как дубликат? Я видел много вопросов, заданных по этому вопросу, да, но ни один из ответов, данных где-либо еще, не предложил решение, которое устранило бы мою проблему. Не могли бы вы снять отметку еще раз?
Нерешенная проблема — это не то же самое, что вопрос, которого раньше не задавали. Добавление большего количества вариантов этого вопроса только разбавляет результаты поиска. В любом случае, это не совсем проблема программирования. (Хотя ldd мог бы ответить на него.)
Справедливо - преклоняюсь перед вашей высшей мудростью :)






Ну а ты
apt-get install php-sqlite3?