PHP 写入权限被拒绝

发布于 2025-01-11 00:12:49 字数 819 浏览 0 评论 0原文

我正在 CentOS 7 上运行服务器。 用户apache |组 apache 对 /var/www/html 具有 775 权限 当我执行想要在 root dir (/var/www/html/) 中创建新文件的 PHP 文件时,出现以下错误 警告:file_put_contents(file.bin):无法打开流:/var/www/html/file.php 中的权限被拒绝

PHP 代码:

<?php
ini_set('display_errors', 'on');
$file = 'file.bin';
$content = "Content";
file_put_contents($file, $content);
?>

我将用更多数据更新问题,但因为我new 我不知道太多关于调试服务器错误的事情。

我尝试过的:

  • 为了执行脚本(php..),我看到用户是 apache,所以我在 /var/www/html/ 上授予了“apache”所有权

  • tried 777 on ./html< 上授予了“apache”所有权/code> (并在它不起作用到 755 后反转操作)

  • 还尝试了 cd /var/www/html chmod -R 775 .(来自评论)

I'm running a server on CentOS 7.
User apache | Group apache has 775 permissions on /var/www/html
When I execute a PHP file that wants to create a new file in root dir (/var/www/html/) I get the following error
Warning: file_put_contents(file.bin): failed to open stream: Permission denied in /var/www/html/file.php

PHP code:

<?php
ini_set('display_errors', 'on');
$file = 'file.bin';
$content = "Content";
file_put_contents($file, $content);
?>

I will update the question with more data but since I'm new I don't know too many things about debugging server errors.

What I tried:

  • For executing scripts (php..) I saw the user to be apache so I gave 'apache' ownership on /var/www/html/

  • tried 777 on ./html (and reversed action after it didn't work to 755)

  • Also tried cd /var/www/html chmod -R 775 . (from comments)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

画尸师 2025-01-18 00:12:49

问题很可能出在 selinux 上。
如果您使用命令(从根目录)关闭selinux:

setenforce 0

并且一切都会正常,您需要使用命令(从根目录)打开selinux:

setenforce 1

并运行命令:

chcon -R -t httpd_sys_rw_content_t /your/path

一切都必须有效。如果此方法没有帮助,我建议您阅读此问题中的答案 。有一个更灵活的 selinux 设置的答案(使用 sudo semanage fcontext)。

With a high degree of probability, the issue is with selinux.
if you turning off selinux with the command (from root) :

setenforce 0

and everything will work, you need to turning on selinux with the command (from root):

setenforce 1

and run the command:

chcon -R -t httpd_sys_rw_content_t /your/path

Everything must work. If this method does not help, I advise you to read answers in this question. There is an answer with a more flexible selinux settings (with using sudo semanage fcontext).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文