Requirements Problem: Installing D7 gives pdo errors

Events happening in the community are now at Drupal community events on www.drupal.org.
jsorgen's picture

I searched the documentation - without success. But it doesn't seem like an uncommon problem.

I jumped in and tried installing D7. New domain name, new hosting package. Uploaded and extracted D7. Contacted hostgator and couldn't solve this. Below is the error:

Error
PHP extensions Disabled
Drupal requires you to enable the PHP extensions in the following list (see the system requirements page for more information):

* pdo

Error
Database support Disabled
Your web server does not appear to support PDO (PHP Data Objects). Ask your hosting provider if they support the native PDO extension. See the system requirements page for more information.

What am I missing??

~

Comments

Oh, Hostgator

chellman's picture

This page says they support PDO, which is indeed required for Drupal 7's database layer. The fact that they say they support should provide you some leverage.

http://support.hostgator.com/articles/php-modules

I know sometimes it's possible to target different PHP versions in a shared hosting package. I'd create a little php file with phpinfo() in it, see if PDO is, in fact, enabled on your account. If it's not, get after Hostgator about it. They're not my favorite shared web host, (and you'll hear a lot of disparaging words around here about shared hosting and Drupal generally), but I'm pretty sure it will work.

Solved

jsorgen's picture

Starting over, I deleted all the files and the database. I extracted D7 and made the db again.

The only error at first was that register_globals was enabled. There were no pdo errors.

Original error was fixed with this line in the php.ini file (didn't exist yet) in public_html:
register_globals = Off

Tried the install again and register_globals was fixed, BUT the pdo errors (original post) showed up.

The solution was to add these four lines to the same php.ini:

extension=pdo.so
extension=pdo_sqlite.so
extension=sqlite.so
extension=pdo_mysql.so

~ J

thanks

yogeshprabhu's picture

This solved my problems with PDO
Thanks a lot

good to hear!

jsorgen's picture

That's exactly what I hoped would happen! Glad to hear others can find this useful.

INSTALL.txt missing PDO info

Chris Charlton's picture

I checked the INSTALL.txt file that comes with Drupal 7 and I think there's a fail here (on Drupal's part). The PHP notes in the INSTALL.txt file point to a link for more info on what PHP extensions should be installed but I think PDO being a requirement should be text provided in install txt file for others to not fall into the same config trap you just did.

Chris Charlton, Author & Drupal Community Leader, Enterprise Level Consultant

I teach you how to build Drupal Themes http://tinyurl.com/theme-drupal and provide add-on software at http://xtnd.us

Suggested change for the INSTALL.txt for D7

jsorgen's picture

When the errors show up, there's a link to the system requirements page which didn't help me, because it didn't show how to fix any settings related to the pdo requirements.

I took a stab at modifying the INSTALL.txt file for D7.

Under the heading, "The most common steps you may need to perform are:" I added "c. Missing php.ini file." and changed the next letter to d. like this:

< snip >
        chmod go-w sites/default/settings.php

   c. Missing php.ini file.

      It's possible that the setting for register_globals is enabled. If you get
      this error, it it likely the php.ini file is missing in the public_html
      directory on your site.

      To fix the register_globals error, create a php.ini file in the
      public_html directory with the following line in it:

        register_globals = Off

      It's possible that fixing this error will result in a subsequent error
      related to PHP extensions.

      To fix the pdo (PHP Data Objects) errors, add the following four lines to
      the php.ini file, to look like this:

        register_globals = Off
        extension=pdo.so
        extension=pdo_sqlite.so
        extension=sqlite.so
        extension=pdo_mysql.so

   d. Write permissions after install.
< snip >

Hope this helps. I don't know whether/how to escalate the suggested change.

~ J

Great work. To escalate this,

christefano's picture

Great work. To escalate this, go to http://drupal.org/project/issues/drupal and click the "create new issue" link. Be sure to select "7.x-dev" for the version and "Documentation" for the component.

Thank You!

jmh2008's picture

Thank for this. I searched for hours, and your solution worked. Others had a .dll extenstion and they didn't seem to work in the php.ini.

extension=pdo.so
extension=pdo_sqlite.so
extension=sqlite.so
extension=pdo_mysql.so

You legend!

drupy_moe's picture

Totally worked on Drupal 7. Thanks

What version of PHP

stevenator's picture

I believe this is a case of PHP 5.2 vs. 5.3...There should be some literature on D.O regarding problems with this but please tell us the server config if you can...Better yet if you can paste a link to the php_info or include a screenshot that would help us as well.

Created New Issue

jsorgen's picture

New Issue for 7 Core
http://drupal.org/node/1073232
(I released the assignment from myself, now that someone's only interested in telling me what's wrong with my little edit to install.txt.)

apt-get install

kenorb's picture

For sqlite, try:

sudo apt-get -qy install sqlite3 php5-sqlite