After a long plod, I finally got wordpress running on acsweb! This is exciting, since it means it is possible to comment on posts, link to them, google for them, etc. Setting up wordpress was made challenging at every turn by my crappy UCSD server, which is outdated or badly configured in a number of respects:

  • No MySQL, so I had to use the PDO plugin with a Sqlite database
  • PHP 5.1, which should be compatible with PDO, but is missing the preg_last_error() function
  • Error logging and printing is disabled, making discovering the previous error an hours-long debugging process

For anyone else trying to setup wordpress on a similar setup, here were the steps that worked for me:

  1. Run phpinfo() to make sure php is running properly and you can access the webserver. Make sure PDO support is enabled, which should result in a section called ‘pdo_sqlite’.
  2. Download and unpack wordpress
  3. Download PDO for WordPress. Copy all the contents of the zip file into wordpress/wp-content/.
  4. Set up wp-config.php, as described in the PDO instructions
  5. Apache needs permission to create the sqlite database file in your wordpress directory. For now, I just
    [bash]chmod -R a+w wordpress[/bash]
  6. If you are running PHP version 5.0-5.1 (PHP 4 is SOL due to PDO requirements), then edit the file wp-content/pdo/driver_sqlite/pdo_sqlite_driver_create.php. Look for the function addQuery($query) around line 207. Comment out the line with preg_last_error():
    [php]private function addQuery($query) {
    $this->_query[] = $query;
    //$this->_errors[] = preg_last_error(); // PHP >= 5.2;
    }
    [/php]
  7. Look at your wordpress install from a browser. It should guide you through the “easy” install process and set you up with an admin account. Make sure everything works right.
  8. Eventually you probably want to remove that global write permission we added to the wordpress directory, except for the database and the uploads folder.
    [bash]chmod -R go-w wordpress
    mkdir -p wordpress/wp-content/uploads
    chmod -R go+w wordpress/wp-content/uploads[/bash]

Note that these instructions were tested with WordPress 3.0.1 with PDO plugin 2.7.0. I submitted a patch to PDO for wordpress, so hopefully future versions will be compatible with PHP 5.1.

15 thoughts on “WordPress with Sqlite on PHP 5.1

    1. I’m not sure what you mean, Louis–this post was specific to wordpress. Naturally you can use databases for other things. Sqlite or MySQL are popular databases. You should google them to see if they are appropriate for your application.

    1. I agree, but I don’t have control of the server. Amazingly, they’re still using PHP 5.1 three years after this post.

    1. Sadly, the PDO project seems to have been abandoned. I would recommend against using it now. Migrating a database from sqlite to mysql is non-trivial, so it’s extremely difficult to upgrade wordpress now that PDO is not receiving updates.

  1. nice tutorial, but instead sqlite database that can be input only a little of what was not too challenging to wordpress?

Leave a Reply

Your email address will not be published. Required fields are marked *