我正在尝试将查询写入文件以进行调试。 该文件位于database/execute.php中。 我想写的文件是database/queries.php。

我正在尝试使用file_put_contents('queries.txt', $query)

但我得到了

file_put_contents(queries.txt) [function.file-put-contents]:

failed to open stream: Permission

denied

我有queries.txt文件chmod'd到777,问题是什么?

您是否查看了php.ini文件中是否存在可能拒绝文件访问的内容?

还要确保目录chmod'd正确

也尝试使用绝对文件名。 可能只是你对当前文件夹的解释与PHP不同

你能仔细检查那个chmod状态吗?

@Crayon Violent是正确的......运行为nobody或apache的PHP脚本对该文件所在的目录没有读取权限 - 即使它是777。

针对此类问题的故障排除清单:stackoverflow.com/questions/36577020/

@VicSeedoubleyew,谢谢你。 你为我节省了很多时间。(Y)

@joker,欢迎你。 感谢您的评论,知道我的工作很有帮助,感觉很棒!

尝试调整目录权限。

从终端运行chmod 777 database(从包含数据库文件夹的目录)

如果正确chmodd,apache和nobody将无法访问此目录。

另一件事是echo"getcwd()"。这将显示当前目录,如果这不是'/something.../database/',那么您需要将'query.txt'更改为服务器的完整路径。

777不是安全隐患吗?

我强烈怀疑目标目录不仅必须可由服务器帐户写入,而且目标目录的每个父目录都必须允许服务器帐户导航到它;我认为这将是权限的+ x。

我在一个新的LAMP堆栈上试验了Erhannis的理论,理论是正确的。

@Erhannis应该+x去哪儿?添加了+x的完整命令是什么?

@MajidFouladpour我认为chmod +x /parent/directory,对于目标的每个父目录。 chmod +x /parent/directory,chmod +x /parent等

现在有针对此类问题的故障排除检查表:stackoverflow.com/questions/36577020/

在找到创建该文件的用户后,将该chmod更改为700并将该目录chown给相关用户。

另一种选择

是你可以使Apache (www-data),文件夹的所有者

sudo chown -R www-data:www-data /var/www

这应该使file_put_contents立即工作。但为了更安全,您最好还设置如下所示的权限

find /var/www -type d -print0 | xargs -0 chmod 0755 # folderfind /var/www -type f -print0 | xargs -0 chmod 0644 # files

将/var/www更改为php文件的根文件夹

意识到现在已经很老了,但是没有必要手动将查询写入这样的文件。 MySQL内置了日志记录支持,您只需要在开发环境中启用它。

查看"常规查询日志"的文档:

http://dev.mysql.com/doc/refman/5.1/en/query-log.html

从此链接stackoverflow-image保存收集信息不适用于chmod 777和用户azerafati和Loek Bergman

如果您要查看/ etc / apache / envvars文件,您将看到如下内容:

export APACHE_RUN_USER=www-data

export APACHE_RUN_GROUP=www-data

Apache在用户名'www-data'下运行

'0755'表示文件所有者可以读/写/执行但组和其他用户无法写入。所以在你的终端,cd到包含'images'文件夹的文件夹。然后输入:

find images -type d -exec chmod 0755 {} \;

find images -type f -exec chmod 0755 {} \;

sudo chown -R www-data:www-data images

在更改所有者之前,您必须先更改持久性。

提示时输入密码。这将使图像文件夹的'www-data'所有者。

您的上传现在应该有效。

我知道这是一个非常古老的问题,但我想通过一些深入的解释添加好的解决方案。您将不得不在Ubuntu类似系统上执行两个语句,然后它就像一个魅力。

Linux中的权限可以用三位数表示。第一个数字定义文件所有者的权限。第二个数字是特定用户组的权限。第三个数字定义了非所有者或组成员的所有用户的权限。

Web服务器应该使用作为组成员的id执行。 Web服务器永远不应该使用与文件和目录所有者相同的ID运行。在Ubuntu中运行id为www-data的apache。该id应该是为其指定权限的组的成员。

要为要在其中更改文件内容的目录提供适当的权限,请执行以下语句:

find %DIR% -type d -exec chmod 770 {} \;

在OP的问题中,这意味着应该相应地更改目录%ROOT%/ database的权限。因此,重要的是不要让该目录中的文件永远不会被更改或删除。因此,最佳做法是为必须更改其内容的文件创建单独的目录。

读取目录的权限(4)意味着能够在目录中收集其元数据的所有文件和目录。写权限(2)授予更改目录内容的权限。暗示添加和删除文件,更改权限等。执行权限(1)表示您有权进入该目录。如果没有后者,就无法深入到目录中。当应该更改文件的内容时,Web服务器需要读取,写入和执行权限。因此需要组7。

第二个声明是关于OP的问题:

find %DOCUMENT_ROOT%/database -type f -exec chmod 760 {} \;

能够读取和写入文档是必需的,但不需要执行该文件。 7给予文件的所有者,6给组。 Web服务器无需具有执行文件的权限即可更改其内容。这些写权限应仅授予该目录中的文件。

不应向所有其他用户授予任何权限。

对于不需要更改其文件的目录,组的权限为5就足够了。

有关权限的文档和一些示例:

https://wiki.debian.org/Permissions

https://www.linux.com/learn/tutorials/309527-understanding-linux-file-permissions

http://www.linux.org/threads/file-permissions-chmod.4094/

伙计们我有这个问题已经有一个月的时间做了所有事情,但无法修复它,但现在我知道了解决方案。

我使用共享的linux主机,当我的管理员将php更改为5.3时,我的"file_put_contents"代码出现了很多错误。试着测试我的计划:

在您的主机中创建一个像mytest.php这样的文件,并将此代码放入并保存:

打开URL"www.your-domain.com/mytest.php"一次,然后查看您的电子邮件。您应该收到主机发来的电子邮件,其中包含您在mytest.php中输入的信息,请检查发件人姓名。如果它来自Nobody你有"权限被拒绝"的问题,因为没有定义的东西,如果发件人的名字就像我的id:iietj8qy@hostname5.netly.net你没有概率。

我的管理员更改了服务器并再次安装了主机,我认为问题解决了,告诉主管部门我告诉你的内容,也许他们找到了答案。

希望它能帮到你!

我完全迷路了!!你想说什么?如果你说apache用户无法获得服务器上的主机名(共享或其他),那么现在是时候重新考虑你选择的托管服务了。

如果你从git从本地服务器转移到服务器,你需要清除缓存,因为它上传的视图文件和/或其他缓存文件。

php artisan cache:clear

有时,如果你的应用程序在git pull之前工作,它可能只是诀窍

这可以通过以下步骤解决:

1. $ php artisan cache:clear

2. $ sudo chmod -R 777 storage

3. $ composer dump-autoload

希望能帮助到你

有同样的问题; 我的问题是selinux被设定为强制执行。

即使在chmod到777并确保所有父文件夹都具有apache用户的执行权限之后,我仍然收到"未能打开流:Permission denied"错误。 原来我的问题是selinux被设置为强制执行(我在centos7上),这是一个devbox,所以我把它关掉了。

对于任何使用Ubuntu并在本地加载页面时收到此错误但未在Web托管服务上收到此错误的人,

我刚刚通过打开nautilus(sudo nautilus)并右键单击您要打开的文件来修复此问题,单击属性>设置>并将读写写入"其他人"

有2种方法可以解决这个问题

1.使用chmod 777 path-to-your-directory。

如果它不起作用那么

2.只需提供文件query.txt的完整路径。

这是非常不安全和非常糟糕的做法。在开发自定义应用程序时也很难检测和纠正,并且很容易被忽视。请实际找出正确的权限。

这里的解决方案。

从URL复制img。

此网址:http://url/img.jpg

$image_Url=file_get_contents('http://url/img.jpg');

创建所需的路径使用.jpg完成名称

$file_destino_path="imagenes/my_image.jpg";

file_put_contents($file_destino_path, $image_Url)

这如何解决手头的问题?

此外,如php.net中的file_put_contents man page所述,请注意命名问题。

file_put_contents($dir."/file.txt","hello");

可能不起作用(即使它在语法上是正确的),但是

file_put_contents("$dir/file.txt","hello");

作品。我在不同的php安装服务器上体验过这个。

这是不正确的。假设$dir是一个字符串,$dir."/file.txt"在所有情况下在功能上等同于"$dir/file.txt"。此外,正如Kivanc声称的那样,php.net上没有记录这种行为。

php file_put_contents 根目录权限,关于php:file_put_contents权限被拒绝相关推荐

  1. linux 760权限,Linux 文件rwx权限问题 chmod 777 XXX 任何人拥有最高权限

    在Unix和Linux的各种操作系统下,每个文件(文件夹也被看作是文件)都按读.写.运行设定权限. ls -l:得到 -rw-r--r-- 1 apple users 2254 2006-05-20 ...

  2. linux 权限777_Linux编程之权限系统与工具使用(二)

    阿里P7移动互联网架构师进阶视频(每日更新中)免费学习请点击:https://space.bilibili.com/474380680 本篇文章将继续通过权限系统与工具使用来阐述Linux编程: 一. ...

  3. chmod 777命令_Linux用户权限管理及用户权限管理命令操作

    Ubuntu 是一个多用户系统,我们可以给不同的使用者创建不同的用户账号,每个用户使用各自的账号登陆,使用用户账号的目的一是方便系统管理员管理,控制不同用户对系统的访问权限,另一方面是为用户提供安全性 ...

  4. kali修改文件权限不够_Linux用户权限管理及用户权限管理命令操作

    Ubuntu 是一个多用户系统,我们可以给不同的使用者创建不同的用户账号,每个用户使用各自的账号登陆,使用用户账号的目的一是方便系统管理员管理,控制不同用户对系统的访问权限,另一方面是为用户提供安全性 ...

  5. samba服务器权限配置文件,samba服务器权限配置文件

    samba服务器权限配置文件 内容精选 换一换 本文将以CCE集群为例,介绍如何通过kubectl或CloudShell连接CCE集群.kubectl访问CCE集群是通过集群上生成的配置文件(kube ...

  6. 【Linux】权限管理 _目录权限 _umask _粘滞位[学习总结 _复习专用]

    1.Linux权限的概念 Linux下有两种用户:root.普通用户. root:可以在Linux系统下做任何事情,不受权限的限制 普通用户:在Linux下做有限的事情 root用户的命令提示符是&q ...

  7. android6.0麦克风权限,android 6.0权限检测以及6.0以下,麦克风、相机权限判断

    android 6.0以上权限 android 6.0以上权限,我是通过PermissionsDispatcher进行申请,操作的,具体使用方法,见PermissionsDispatcher,Andr ...

  8. tp5权限管理代码_权限系统控制到按钮级别开源推荐 Spring BootShiroVue

    往期精彩推荐: 高逼格开源聊天系统 推荐 Spring+Netty+Websocket实现 java人关注这个github开源项目,你会嫌弃手上的笔试面试题资料 2020年一线大厂java笔试面试题分 ...

  9. linux文件的权限模式,Linux文件权限和访问模式

    为了更加安全的存储文件,Linux为不同的文件赋予了不同的权限,每个文件都拥有下面三种权限: 所有者权限:文件所有者能够进行的操作 组权限:文件所属用户组能够进行的操作 外部权限(其他权限):其他用户 ...

最新文章

  1. 核苷酸pi值计算方法
  2. 计算机英语unit,计算机专业英语Unit 7
  3. 将 iPhone 定位设置在法国,手机速度就能迅速提升?
  4. altium designer PCB板厚度设置
  5. php创建压缩文件 保存路径,通过php生成zip压缩文件,支持文件和压缩包路径查找...
  6. 在eclipse中安装与配置maven环境
  7. (转)Cairngorm初学者入门教程 第三节--从使用Model Locator开始学起Cairngorm
  8. linux TCP/IP L2层数据包接收流程,eth_rxnetif_receive_skb处理流程
  9. 小米卢伟冰回应“低价误国”言论:华为是中国企业“低价”战略的榜样
  10. java程序设计_Java程序设计--final(笔记)
  11. python 守护进程(daemon)on : 会打扮的装饰器
  12. Qt QLabel无法显示符号
  13. linux zip命令安装,linux安装zip命令
  14. 有没有安卓4.0的java模拟器_手机java模拟器apk下载
  15. 写一个最简单的mysql编程_要学简单的数据库编程!
  16. c语言aps审核,APS考官最讨厌的几类人
  17. 【U盘主控芯片的优缺点】
  18. 编译-POCO C++支持iOS平台的静态库
  19. 【BugkuCTF】Web--never give up
  20. 数据分析 --- day10python基础

热门文章

  1. Android studio创建第一个项目并运行
  2. Oracle的全文检索
  3. 多个jar合并成一个jar
  4. android 3d翻页动画,使用XML在Android中创建3D翻页动画
  5. 场景拆解六步设计法,手把手教你细化场景
  6. python-cheatsheet,一款很全的Python小抄库
  7. 运筹说 第66期|贝尔曼也有“演讲恐惧症”?
  8. “科林明伦杯”哈尔滨理工大学第十届程序设计竞赛——C.面积【签到题】
  9. BDS/Galileo融合精密单点定位性能评估
  10. vue项目中常用的优秀插件库