【问题标题】:Apache does not have write permission on html folderApache 没有对 html 文件夹的写权限
【发布时间】:2015-12-21 12:36:18
【问题描述】:

我在 CentOS 7 中安装了apacheMySQLPHP。一切正常,除了apache 无法在 html 文件夹中写入文件。我在使用file_put_contents 时发现了这个问题。我试过了

  1. /var/wwwowner 更改为apache:apache,不起作用
  2. httpd.conf中添加Order allow,denyAllow from all<Directory "/var/www/html">,重启httpd服务,不起作用
  3. chmod -R 0777 /var/www/html,不行

我的服务器出了什么问题?请帮帮我!

UPDATE1:ls -al /var/www/html的结果

total 40
drwxrwxrwx.  5 apache apache 4096 Sep 23 10:19 .
drwxr-x---.  4 apache apache   31 Sep 18 01:50 ..
drwxrwxrwx. 15 apache apache 4096 Sep 23 08:43 folder1
drwxrwxrwx+ 10 apache apache 4096 Sep 23 10:19 folder2
-rwxrwxrwx.  1 apache apache 1574 Sep  5 08:55 favicon.ico
-rwxrwxrwx.  1 apache apache  603 Sep 22 05:05 .htaccess
-rwxrwxrwx.  1 apache apache 9841 Sep  8 08:34 index.php
drwxrwxrwx.  8 apache apache 4096 Sep 23 08:44 folder3

更新 2:apache error_log(我更改了所有 IP 地址)-已编辑,更改为新的 error_log,停止 httpd 后,备份 error_log,启动 httpd

[Thu Sep 24 07:06:47.540295 2015] [core:notice] [pid 14439] SELinux policy enabled; httpd running as context system_u:system_r:httpd_t:s0
[Thu Sep 24 07:06:47.541787 2015] [suexec:notice] [pid 14439] AH01232: suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
[Thu Sep 24 07:06:47.569389 2015] [so:warn] [pid 14439] AH01574: module rewrite_module is already loaded, skipping
[Thu Sep 24 07:06:47.572287 2015] [auth_digest:notice] [pid 14439] AH01757: generating secret for digest authentication ...
[Thu Sep 24 07:06:47.573315 2015] [lbmethod_heartbeat:notice] [pid 14439] AH02282: No slotmem from mod_heartmonitor
[Thu Sep 24 07:06:47.600913 2015] [mpm_prefork:notice] [pid 14439] AH00163: Apache/2.4.6 (CentOS) PHP/5.4.16 configured -- resuming normal operations
[Thu Sep 24 07:06:47.600943 2015] [core:notice] [pid 14439] AH00094: Command line: '/usr/sbin/httpd -D FOREGROUND'

【问题讨论】:

  • 如果您想要一个有效的答案,请提供ls -l /var/www/html、代码和错误消息。
  • chmod 0777drwxrwxrwx. 15 apache apache 4096 Sep 23 08:43 folder1drwxrwxrwx+ 10 apache apache 4096 Sep 23 10:19 folder2-rwxrwxrwx. 1 apache apache 1574 Sep 5 08:55 favicon.ico-rwxrwxrwx. 1 apache apache 9841 Sep 8 08:34 index.phpdrwxrwxrwx. 8 apache apache 4096 Sep 23 08:44 folder3之后
  • @blueqn 你能发布这段代码的输出吗? <?php system("whoami"); die(); ?>.
  • @blueqn 另外,您能否在您调用put_file_contents() 的地方发布PHP 行?谢谢..

标签: php apache chmod


【解决方案1】:

a.txt 文件的权限问题

警告:file_put_contents(a.txt):无法打开流:第 2 行 /var/www/html/index.php 中的权限被拒绝

【讨论】:

  • 我查过了,SELinux status: enabled
  • 只需在 /var/www/html 路径上输入以下命令并提供结果 ls -lZ
  • 感谢您的回复。这是结果
  • drwxrwxrwx. apache apache unconfined_u: object_r: httpd_sys_content_t:s0 folder1drwxrwxrwx+ apache apache unconfined_u: object_r: httpd_sys_content_t:s0 folder2-rwxrwxrwx. apache apache unconfined_u: object_r: httpd_sys_content_t:s0 favicon.ico-rwxrwxrwx. apache apache unconfined_u: object_r: httpd_sys_content_t:s0 index.phpdrwxrwxrwx. apache apache unconfined_u: object_r: httpd_sys_content_t:s0 folder3
  • 您在哪里找到了 a.txt 文件?它有权限吗?
【解决方案2】:

谢谢大家!我用本指南解决了我的问题:

http://blog.lysender.com/2015/07/centos-7-selinux-php-apache-cannot-writeaccess-file-no-matter-what/

希望对你有所帮助。

【讨论】:

【解决方案3】:

如果您在 Centos SELinux 上,要允许 apache 用户写入特定目录,请使用以下命令。确保将 /var/www/html/logs 更改为您需要写入的任何目录。

$ chcon -t httpd_sys_rw_content_t /var/www/html/logs/ -R

来源:https://www.svnlabs.com/blogs/centos-7-selinux-apache-php-writeaccess-permission/

【讨论】:

    猜你喜欢
    • 2013-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-28
    • 2014-08-01
    • 2015-12-09
    相关资源
    最近更新 更多