2013-02-15 58 views
0

我尝试执行下面的代码行:PHP权限

$dbh = dba_open("./data/products", "c", "gdbm") or die("Couldn't open database"); 

不幸的是,我得到的模具。

我认为这里的权限有问题。我已经将脚本目录的权限设置为“0777”,并将目录的所有者设置为“www-data”(我正在使用apache2)。我不知道还有什么信息可以解决这个问题。

编辑:我试图创建数据库。它在执行该行之前不存在。

EDIT2:我也试过绝对路径:

$currentDir = getcwd(); 
$dbh = dba_open("$currentDir/data/products", "c", "gdbm") or die("Couldn't open database"); 

EDIT3:错误日志。

[Fri Feb 15 18:20:37 2013] [notice] Apache/2.2.22 (Ubuntu) PHP/5.4.6-1ubuntu1.1 configured -- resuming normal operations 
[Fri Feb 15 18:20:41 2013] [error] [client 127.0.0.1] PHP Warning: dba_open(./data/products,c): No such handler: gdbm in /var/www/phpTraining/listing12.1.php on line 14 
+1

对DB文件本身的权限呢?有权访问目录并不意味着您有权访问该文件。 – 2013-02-15 15:24:36

+1

如果使用完整路径而不是相对路径,会发生什么情况? – 2013-02-15 15:24:45

+0

如果文件已经存在,请尝试将模式设置为'w'。 – BenM 2013-02-15 15:25:10

回答

0

您应该检查error_logs以获取更多线索。