Skip to content

Latest commit

 

History

History
54 lines (36 loc) · 2.08 KB

README.en.md

File metadata and controls

54 lines (36 loc) · 2.08 KB

PDO SQLCipher

A driver for implementing PDO (PHP Data Objects) interface for SQLCipher without replacing genuine PDO SQLite or the system version of SQLite. It's based on PDO SQLite source code and created by simply replacing names and inserting SQLCipher code (instead of dynamic linking with SQLite libraries).

A detachment of this kind allows granting access to encrypted databases only to applications that obviously need it, without fear of data loss or slowing down other applications.

Assembling

To assemble this extension, run build.sh script. After successful assembly, all the necessary files will be placed in the directory named release:

  • sqlcipher - console client (equivalent of sqlite3 client)
  • pdo_sqlcipher.so - php extension (equivalent of pdo_sqlite.so extension)

If assembling is performed under Debain, the following dev packages may be required (in addition to standard):

  • libicu-dev
  • libreadline-dev
  • libssl-dev
  • php5-dev
  • tcl-dev

If assembling is performed under RHEL, the following dev packages may be required (in addition to standard):

  • libicu-devel
  • readline-devel
  • openssl-devel
  • php-devel
  • tcl-devel

If assembling is performed under FreeBSD, lang/tcl-wrapper port installation may be required (to support tclsh).

Assembling script was tested under Debian Wheezy (PHP 5.4.4-14) and FreeBSD 9.1 (PHP 5.4.13)

Installation

Install this extension by copying files from the release directory:

  • sqlcipher to the /usr/local/bin/ directory
  • pdo_sqlcipher.so to the directory of php modules (depends on specific distro):
    • Debian: /usr/lib/php5/20100525/
    • RHEL: /usr/lib64/php/modules/
    • FreeBSD: /usr/local/lib/php/20100525/

And enable the php extension:

extension=pdo_sqlcipher.so
  • Debian: /etc/php5/conf.d/pdo_sqlcipher.ini
  • RHEL: /etc/php.d/pdo_sqlcipher.ini
  • FreeBSD: /usr/local/etc/php/extensions.ini

You can find an example of extension usage in example.php file within the repository.