Sqlite issue in Plesk ( Sitebuilder)

Sqlite installed and updated.

  1. Download source package. You can get it from here: http://pecl.php.net/package/SQLite

# wget http://pecl.php.net/get/SQLite-1.0.3.tgz
or
# pear download sqlite

If publication host has x86_64 architecture it is suggested to use source files from here http://cvs.php.net/viewvc.cgi/pecl/sqlite/?pathrev=PHP_5_2 and make sure that SQLite library has version 2.8.17 or upper.

  1. Unpack SQLite-1.0.3.tgz to SQLite-1.0.3 directory:

# tar -xzf SQLite-1.0.3.tgz

  1. Move into SQLite-1.0.3 directory

# cd SQLite-1.0.3

  1. You need to have UTF-8 encoding support for sqlite.so extension, so following modification should be done:

edit SQLite-1.0.3/libsqlite/src/main.c file and change this section

#ifdef SQLITE_UTF8
const char sqlite_encoding[] = “UTF-8”;
#else
const char sqlite_encoding[] = “iso8859”;
#endif

to

//#ifdef SQLITE_UTF8
const char sqlite_encoding[] = “UTF-8”;
//#else
//const char sqlite_encoding[] = “iso8859”;
//#endif

comment all strings excluding one with UTF-8 encoding.

  1. Find phpize binary file and run it. Location for this file can be different. Standard path is /usr/bin/phpize. Make sure that you are still in SQLite-1.0.3 directory and run the following command:

# /usr/bin/phpize (path to phpize can be different)

If there is no such file, try to find it with following commands:

# whereis phpize
# locate phpize|grep bin

  1. Find location for php-config file. It should be the same as for phpize file and run following commands:

    # ./configure –with-sqlite –with-php-config=/usr/bin/php-config (path to php-config can be different)

  2. Run ‘make’ command:

# make

If you meet something like that:

“error: `BYREF_NONE’ undeclared”

you will need edit sqlite.c comment out the following line:

/* static unsigned char arg3_force_ref[] = {3, BYREF_NONE, BYREF_NONE, BYREF_FORCE }; */

And then change these lines

function_entry sqlite_functions[] = {
PHP_FE(sqlite_open, arg3_force_ref)
PHP_FE(sqlite_popen, arg3_force_ref)


to

function_entry sqlite_functions[] = {
PHP_FE(sqlite_open, third_arg_force_ref)
PHP_FE(sqlite_popen, third_arg_force_ref)

  1. # make
  2. # make install
  3. # cp modules/sqlite.so /usr/lib/php/modules (path to modules folder can be different). Actually, ‘make install’ should copy the extension to appropriate place so this operation might be not required.
  4. You should create a file in /etc/php.d/ named sqlite.ini or add sqlite.so extension directly into php.ini file. Inside write this :

    ; Enable sqlite extension module
    extension=sqlite.so
  5. Restart apache service with

# /sbin/service/httpd restart
or
# /etc/init.d/httpd restart

Advertisements
1 comment
  1. Hello,

    Under point 1, it is mentioned: If publication host has x86_64 architecture it is suggested to use source files from here http://cvs.php.net/viewvc.cgi/pecl/sqlite/?pathrev=PHP_5_2 and make sure that SQLite library has version 2.8.17 or upper.

    It seems like i need to download every single file on that location. I have used hours to explore the net to find some single command to download them all, and this is possible but requires a username/password on cvs.php.net. Is there any any way to do this efficiently?

    Best regards,
    Ole Kristian Ek Hornnes

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: