我有这个简单的PHP代码,我连接了一个SQLITE数据库......
<?php
ini_set('display_errors', 1);
echo 'Current script owner: ' . get_current_user();
# Set access to data base...
$db = new SQLite3('/var/www/html/OpenProntoSoccorso/Test/OpenProntoSoccorso.sqlite');
echo ".... Connessione db OK! ...";
?>
当我尝试从浏览器执行时出现此错误...
Fatal error: Uncaught exception 'Exception' with message 'Unable to open database: unable to open database file' in /var/www/html/OpenProntoSoccorso/Test/testSpatialite.php:6 Stack trace: #0 /var/www/html/OpenProntoSoccorso/Test/testSpatialite.php(6): SQLite3->__construct('/var/www/html/O...') #1 {main} thrown in /var/www/html/OpenProntoSoccorso/Test/testSpatialite.php on line 6
但是当我尝试执行表单命令行时,一切正常
root@osboxes:/var/www/html/OpenProntoSoccorso/Test# ls -l
total 336536
-rwxr-x--- 1 root root 330037248 Aug 17 14:20 OpenProntoSoccorso.sqlite
-rw-rw-r-- 1 osboxes osboxes 133 Aug 17 13:51 testSpatialite.php
root@osboxes:/var/www/html/OpenProntoSoccorso/Test# php testSpatialite.php
.... Connessione db OK! ...root@osboxes:/var/www/html/OpenProntoSoccorso/Test#
我试图更改所有者和/或群组,但没有任何变化......
建议?
提前谢谢!
答案 0 :(得分:1)
您的权限有误。现在只有root可以访问该数据库。您的PHP不会(也不应该)在您的Web服务器上以root身份运行。但是当您从命令行运行它时,您将以root身份登录,因此当您执行PHP代码时,它具有root权限。
要修复它,您需要更改文件权限。为此,您可以使用chown
。要知道您必须将所有权转移到哪个用户,您可以使用此快速且脏的代码段
<div class="col-sm-12 col-md-12 applayout-titlebar-tabsarea" role="navigation">
<ul id="view:_id1:_id2:appLayout_tb" class="nav nav-tabs applayout-titlebar-tabs" role="tablist">
<li class="menu-item active">
<a role="tab" href="/LAP/MYDB.nsf/xpAdminAcc1.xsp" class="bg-info active">Label Acc1</a>
</li>
<li class="menu-item">
<a role="tab">Label Acc2</a>
</li>
<li class="menu-item">
<a role="tab" href="/LAP/MYDB.nsf/xpAdminAcc2.xsp" class="bg-info">Label Acc2</a>
</li>
<!-- -->