Why can't DBD::SQLite insert into a database through my Perl CGI script?

apache, dbi, perl, sqlite

Solution

It looks like the directory needs write permission, the reason is:

SQLite needs to be able to create a journal file in the same directory as the DB, before any modifications can take place. The journal is used to support transaction rollback.

From: seem to need write permission on db's parent directory

Problem

I am running a SQLite database within a Perl CGI script which is being accessed by DBD::SQLite. This is being run as a straight CGI on Apache. The DBI connection works fine and selects are able to be run. However, when I attempt to do an insert I get a die with the following error: ``` DBD::SQLite::st execute failed: unable to open database file(1) at dbdimp.c line 402 at index.cgi line 66 ``` I have tried changing the database file permission to 666 to try to fix this however I am still receiving the error. Any advice?

Original source