1
0
Fork 0

Update README.md

This commit is contained in:
Miguel Jacq 2025-10-14 14:39:24 +11:00
parent 89fe566573
commit a603353ad4
Signed by: mig5
GPG key ID: 59B3F0C24135C6A9

View file

@ -1,54 +1,9 @@
# PDO SQLCipher
A driver for implementing [PDO](http://php.net/manual/en/book.pdo.php) (PHP Data Objects) interface for [SQLCipher](http://sqlcipher.net) without replacing genuine PDO SQLite or the system version of [SQLite](http://www.sqlite.org/). 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 driver for implementing [PDO](http://php.net/manual/en/book.pdo.php) (PHP Data Objects) interface for [SQLCipher](http://sqlcipher.net).
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.
In this implementation (mig5's fork of abbat's original), the pdo_sqlite driver *is* replaced with this version (as opposed to defining a new pdo_sqlcipher driver in PHP).
## Assembling
This is so that applications that specifically define an SQLite PDO database connection, don't need modification to support SQLCipher (though they still would need modification to send the PRAGMA key if they want to use SQLCipher features).
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.
This is intended to be used in conjunction with https://github.com/mig5/php-sqlcipher which builds SQLCipher for various PHP versions on Debian and Ubuntu.