views:

2133

answers:

2

I am using a shared hosting through CIPL.in. They use cpanel. I am trying to deploy a ZEND app on my website. However it keeps giving the error.

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}

Also when I try to print out the phpinfo I get:

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.*

This can be seen at http://cubeee.co.in/worm/tester.php

However when I get back to my hosting providers, they tell me that they have modified the php.ini to enable the PDO support and they will check again. What is it that I need to do or ask my hosts to do?

+1  A: 

The configure command in your PHP output shows:

'--disable-pdo'

so I think it's safe to assume that they haven't enabled it.

karim79
They could have built the extension afterwards and now load it with extension=php_pdo.... But that would also show up in the output of phpinfo() - but it doesn't, no pdo support.
VolkerK
This is why shared hosting is a nightmare!
David Caunt
Yup - you've got mysql, mysqli, but no PDO. If you want to see if PDO is installed, just grep for PDO in the page, and see if its mentioned in a real module.
Justin
A: 

Does this application want Pdo_Mysql? If so you may be able to use the Mysqli adapter instead - it depends on the software but it's possible.

In the area where you set your database connection details, there's probably an option called 'adapter'. Try setting its value to 'mysqli'

David Caunt
We are already using MySqli
Arkid
You don't need Pdo then. Have I misunderstood?
David Caunt