连接到/ var / www之外的SQLite数据库

时间:2015-04-25 15:57:46

标签: php sqlite ubuntu

当前代码:

$dir = 'sqlite:/usr/local/teamspeak3/ts3server.sqlitedb';
$dbh  = new PDO($dir) or die("cannot open the database");
$query =  "SELECT * FROM clients";
foreach ($dbh->query($query) as $row)
{
    echo $row[0];
}

我正在尝试打开此数据库并回显信息。问题是该网站位于/ var / www,它不会让我访问上面的任何文件夹。我无法访问/ usr甚至/ var / backups等文件夹。

有人知道我怎么能访问这个文件吗?我无法移动该文件,因为TeamSpeak会不断更新该文件。

2 个答案:

答案 0 :(得分:0)

PHP是否阻止从沙盒环境外部进行访问?

请管理员将实际数据库中的符号链接放入您可以访问的文件夹中以解决安全限制。

这是为了防止受损(或只是普通错误)页面提供对客户端访问他们无法看到的数据库的访问。

答案 1 :(得分:0)

我的回答非常普遍。

  1. 访问错误日志。
  2. 找到您在网络服务器上运行的脚本的 php.ini
  3. 在此文件中查找指令open_basedir
  4. 添加/usr/local/teamspeak3/路径。
  5. 检查网络服务器是否具有 /usr/local/teamspeak3/ts3server.sqlitedb
  6. 的读取权限
  7. 重新启动网络服务器。
  8. 如果它不起作用,请检查错误日志。