fopen(dbinfo.php):无法打开流:权限被拒绝 Ubuntu 12.04 LTS

Posted

技术标签:

【中文标题】fopen(dbinfo.php):无法打开流:权限被拒绝 Ubuntu 12.04 LTS【英文标题】:fopen(dbinfo.php): failed to open stream: Permission denied Ubuntu 12.04 LTS 【发布时间】:2013-03-21 04:52:49 【问题描述】:

我正在尝试在 UBuntu 上运行一个 php 项目。它有一个创建 mysql 数据库的安装脚本。 当我尝试运行脚本时,出现以下错误:

Warning: fopen(dbinfo.php): failed to open stream: Permission denied in /opt/lampp/htdocs/project/install.php on line 12

Warning: fwrite() expects parameter 1 to be resource, boolean given in /opt/lampp/htdocs/project/install.php on line 19

Warning: fclose() expects parameter 1 to be resource, boolean given in /opt/lampp/htdocs/project/install.php on line 20

Warning: include(dbinfo.php): failed to open stream: No such file or directory in /opt/lampp/htdocs/project/install.php on line 21

Warning: include(): Failed opening 'dbinfo.php' for inclusion (include_path='.:/opt/lampp/lib/php') in /opt/lampp/htdocs/project/install.php on line 21

Notice: Undefined variable: host in /opt/lampp/htdocs/project/install.php on line 23

Notice: Undefined variable: user in /opt/lampp/htdocs/project/install.php on line 23

Notice: Undefined variable: password in /opt/lampp/htdocs/project/install.php on line 23

Notice: Undefined variable: database in /opt/lampp/htdocs/project/install.php on line 25

Notice: Undefined variable: database in /opt/lampp/htdocs/project/install.php on line 26
Error connecting to database.

我知道这些错误是由于权限被拒绝造成的。但我不知道如何解决这个问题。脚本似乎没有编辑或创建数据库的权限。我是 Ubuntu 新手,无法理解问题。抱歉英语不好。

【问题讨论】:

【参考方案1】:

我假设您的用户可能拥有/opt/lampp 的权限,因此您可以编辑文件。但是,如果不是这种情况,您可以授予对您的用户和 apache 组的访问权限。接下来显示首先是用户,然后是组:

sudo chown -R youruser:www-data /opt/lampp

通过这种方式,您将所有权设置为用户,然后是组。之后,您必须授予三个组的访问权限:用户、组和其他:

sudo chmod -R xxx /opt/lampp

注意:最右边是指文件所有者的权限,然后是组和其他用户。

现在,xxx 是什么意思?

否 - 权限 - rwx

7 - 满 - 111

6 - 读写 - 110

5 - 读取并执行 - 101

4 - 只读 - 100

3 - 写入和执行 - 011

2 - 只写 - 010

1 - 仅执行 - 001

0 - 无 - 000

或者你可以使用:

chmod [reference][operator][mode] fileOrFolder

其中引用为:u(ser)、g(roup)、o(thers) 和 a(ll)。

运算符为:+(将指定模式添加到指定引用)、-(删除)和 =(指定模式必须与指定引用的模式完全相同)

最后的模式是:r(ead), w(rite), x(execute), [X(special execute), s and t (that are not so common)]。

希望这就是你要找的。​​p>

【讨论】:

非常感谢,自从昨晚终于奏效以来,我一直在努力解决这个问题!

以上是关于fopen(dbinfo.php):无法打开流:权限被拒绝 Ubuntu 12.04 LTS的主要内容,如果未能解决你的问题,请参考以下文章

fopen:无法打开流:Mac上的PHP中的权限被拒绝[重复]

php/iis:打开流失败:权限被拒绝

php fopen函数报错failed to open stream 未能打开流

用fopen打开的文件

C语音读写文件

fopen(),fclose() 打开/关闭文件