A fin de poder conectarse a una base de datos SQLite desde PHP, es necesario contar con la extensión "pdo_sqlite". Este artículo demuestra cómo instalar y configurar esta extensión en un servidor OpenBSD con httpd y PHP-FPM.
Anteriormente demostré cómo montar un servidor Web con httpd y PHP-FPM en OpenBSD. Dicho artículo demuestra cómo instalar PHP-FPM y cómo configurar un sitio Web en httpd. Ahora veamos cómo instalar y configurar la extensión "pdo_sqlite" para acceder a bases de datos SQLite desde PHP.
Se supone que se parte con PHP y SQLite3 instalado de la siguiente manera:
obsd# pkg_add php sqlite3
La versión estable de OpenBSD actual (6.6) provee las versiones de PHP 7.1, 7.2 y 7.3:
obsd# pkg_add php quirks-3.182 signed on 2019-10-12T12:14:24Z Ambiguous: choose package for php a 0: <None> 1: php-7.1.32 2: php-7.2.23 3: php-7.3.10
Es recomendable instalar la última versión de PHP disponible, si la aplicación Web a instalar lo soporta. Por ende seleccionar la opción 3 (PHP 7.3.10).
Luego habilitar e inciar FPM:
obsd# rcctl start php73_fpm obsd# rcctl enable php73_fpm
Para habilitar httpd, editar el archivo /etc/rc.conf.local
y agregar la siguiente línea:
httpd_flags=
Luego se deberá configurar httpd como explica el artículo Cómo montar un servidor Web con PHP en OpenBSD. Recordar que httpd corre "chrooteado" dentro de /var/www
para mejorar la seguridad del sistema.
Instalar y configurar pdo_sqlite
Para disponer de la extensión de PHP "pdo_sqlite", es necesario instalar el paquete "php-pdo_sqlite":
obsd# pkg_add php-pdo_sqlite
Elegir la versión de PHP correspondiente a la instalada anteriormente.
Luego es necesario habilitar la extensión editando el archivo de configuración de PHP. En este caso /etc/php-7.3.ini
.
Buscar la siguiente línea:
;extension=pdo_sqlite
Simplemente eliminar el comentario para habilitar la extensión:
extension=pdo_sqlite
Guardar los cambios y reiniciar PHP-FPM:
obsd# /etc/rc.d/php73_fpm restart
Es posible comprobar que la extensión se encuentra habilitada ejecutando:
obsd# php-7.3 -i | grep "PDO" PDO PDO support => enabled PDO drivers => sqlite PDO Driver for SQLite 3.x => enabled