Вопрос по php, apache – Как проверить, включена ли поддержка PDO в моей установке Apache?

4

Я использую общий хостинг через CIPL.in. Они используют cpanel. Я пытаюсь развернуть приложение ZEND на своем веб-сайте. Однако это продолжает давать ошибку.

An error occurred
Application error
Exception information:

Message: The PDO extension is required for this adapter but the extension is not loaded
Stack trace:

#0 /home/cubeeeco/worminc/library/Zend/Db/Adapter/Abstract.php(770): Zend_Db_Adapter_Pdo_Abstract->_connect()
#1 /home/cubeeeco/worminc/library/Zend/Db/Adapter/Abstract.php(840): Zend_Db_Adapter_Abstract->quote('windchimes', NULL)
#2 /home/cubeeeco/worminc/library/Zend/Auth/Adapter/DbTable.php(354): Zend_Db_Adapter_Abstract->quoteInto('`password` = MD...', 'windchimes')
#3 /home/cubeeeco/worminc/library/Zend/Auth/Adapter/DbTable.php(285): Zend_Auth_Adapter_DbTable->_authenticateCreateSelect()
#4 /home/cubeeeco/worminc/library/Zend/Auth.php(117): Zend_Auth_Adapter_DbTable->authenticate()
#5 /home/cubeeeco/worminc/application/controllers/LoginController.php(117): Zend_Auth->authenticate(Object(Zend_Auth_Adapter_DbTable))
#6 /home/cubeeeco/worminc/library/Zend/Controller/Action.php(503): LoginController->processAction()
#7 /home/cubeeeco/worminc/library/Zend/Controller/Dispatcher/Standard.php(285): Zend_Controller_Action->dispatch('processAction')
#8 /home/cubeeeco/worminc/library/Zend/Controller/Front.php(934): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http))
#9 /home/cubeeeco/public_html/worm/index.php(47): Zend_Controller_Front->dispatch()
#10 {main}

Также, когда я пытаюсь распечатать phpinfo, я получаю:

System  Linux bear.dnsracks.com 2.6.18-92.1.13.el5PAE #1 SMP Wed Sep 24 20:07:49 EDT 2008 i686
Build Date  Jun 8 2009 13:50:29
Configure Command   './configure' '--disable-pdo' '--enable-bcmath' '--enable-calendar' '--enable-ftp' '--enable-gd-native-ttf' '--enable-libxml' '--enable-magic-quotes' '--enable-mbstring' '--enable-sockets' '--prefix=/usr' '--with-curl=/opt/curlssl/' '--with-freetype-dir=/usr' '--with-gd' '--with-gettext' '--with-imap=/opt/php_with_imap_client/' '--with-imap-ssl=/usr' '--with-jpeg-dir=/usr' '--with-kerberos' '--with-libxml-dir=/opt/xml2/' '--with-mcrypt=/opt/libmcrypt/' '--with-mysql=/usr' '--with-mysql-sock=/var/lib/mysql/mysql.sock' '--with-mysqli=/usr/bin/mysql_config' '--with-openssl=/usr' '--with-openssl-dir=/usr' '--with-png-dir=/usr' '--with-ttf' '--with-xpm-dir=/usr' '--with-zlib' '--with-zlib-dir=/usr'
Server API  CGI
Virtual Directory Support   disabled
Configuration File (php.ini) Path   /usr/lib
Loaded Configuration File   /usr/local/lib/php.ini
Scan this dir for additional .ini files     (none)
additional .ini files parsed    (none)
PHP API     20041225
PHP Extension   20060613
Zend Extension  220060519
Debug Build     no
Thread Safety   disabled
Zend Memory Manager     enabled
IPv6 Support    enabled
Registered PHP Streams  php, file, data, http, ftp, compress.zlib, https, ftps
Registered Stream Socket Transports     tcp, udp, unix, udg, ssl, sslv3, sslv2, tls
Registered Stream Filters   string.rot13, string.toupper, string.tolower, string.strip_tags, convert.*, consumed, convert.iconv.*, zlib.*

Это можно увидеть наhttp://cubeee.co.in/worm/tester.php

Однако, когда я возвращаюсь к своим хостинг-провайдерам, они говорят мне, что они изменили php.ini, чтобы включить поддержку PDO, и они будут проверять снова. Что мне нужно сделать или попросить моих хозяев сделать?

Ваш Ответ

3   ответа
0

вы можете вместо этого использовать адаптер Mysqli - это зависит от программного обеспечения, но это возможно.

В области, где вы устанавливаете детали подключения к вашей базе данных, вероятно, есть опция, называемая «адаптер». Попробуйте установить его значение «mysqli»

Мы уже используем MySqli Arc
Тебе тогда не нужен Pdo. Я неправильно понял?
22
if (!defined('PDO::ATTR_DRIVER_NAME')) {
echo 'PDO unavailable';
}
elseif (defined('PDO::ATTR_DRIVER_NAME')) {
echo 'PDO available';
}

это подтвердило мое подозрение, спасибо!
Этот ответ гораздо полезнее, чем принятый ответ. мойphpinfo() показал--disable-pdo но это говорит мне, что PDO доступен.
5

'--disable-pdo'

поэтому я думаю, можно с уверенностью предположить, что они не включили его.

Вот почему виртуальный хостинг - это кошмар!
Да, у вас есть MySQL, MySQL, но нет PDO. Если вы хотите увидеть, установлен ли PDO, просто найдите на странице grep для PDO и посмотрите, упоминается ли его в реальном модуле.
После этого они могли бы построить расширение и теперь загрузить его с расширением = php_pdo .... Но это также будет показано в выводе phpinfo () - но он не поддерживает pdo.

Похожие вопросы