无法获得php + sqlite的工作

我奋斗了整个上午,使PHP的SQLite数据库的工作。 这是我尝试执行的一段php代码:

#less /var/www/html/test.php <?php $db=new PDO("sqlite:/var/www/test.sql"); $sql = "insert into test (login,pass) values ('login','pass');"; $db->exec($sql); ?> 

以下是我如何做testing:

 # sqlite3 /var/www/test.sql sqlite> create table test (login varchar,pass varchar); #chown apache:apache /var/www/test.sql #chmod 644 /var/www/test.sql 

这里是让我疯狂的东西:当我从命令行执行:

 #php test.php 

一切顺利。 Sql正在执行,我可以看到一个新的行出现在数据库中。

当我从浏览器执行相同的脚本 – sql没有被执行。 我没有在数据库中得到新的一行。 在apache日志文件中没有错误。

请帮忙

更新:

好的,我已经得到了答案。 它看起来像sqlite试图创build一个新的“插入”查询文件。 strace岩石:

 open("/var/www/test.sql-journal", O_RDWR|O_CREAT|O_EXCL|O_LARGEFILE, 0644) = -1 EACCES (Permission denied) 

所以,我不得不将sqlite数据库移动到一个目录,Apache可以写入。

命令行PHP和PHP在Web服务器上执行通常使用不同的php.ini文件,因此值得检查任何差异。 您可能还安装了不同版本的PHP,请检查命令行和Web服务器是否具有相同的版本。 我见过Apache运行PHP5的服务器,但命令行PHP运行PHP4,除非您使用PHP5二进制文件的完整path。