使目录权限被拒绝,但权限设置正确

问题描述:

我想创建一个简单的PHP脚本,在/ var/www/html中创建一个目录。代码是:使目录权限被拒绝,但权限设置正确

$dir = '/var/www/html/testdir'; 

if (!file_exists($dir)) { 
    $oldmask = umask(0); // helpful when used in linux server 
mkdir($dir, 0777, true) || chmod($dir, 0777); 
    mkdir ($dir, 0744); 
} 

问题是,执行此操作时出现权限错误。但对于HTML目录的权限是:

drwxrwxrwx. 7 apache apache 4096 Jun 18 11:46 html 

以下是错误:

Warning: mkdir(): Permission denied in /var/www/html/createdir.php on line 6 

此外,<?php echo exec('whoami'); ?>告诉我PHP运行作为Apache的。

好的,我发现了这个问题。 Linux阻止了Apache创建目录。

修复:

chcon -R -t httpd_sys_content_t /path/to/www 
chcon -R -t httpd_sys_content_rw_t /path/to/www/dir/for/rw