所以我真的很困惑这个问题。安装过程抱怨 settings.php 和 sites/default/files/ 的写入权限。不过,我已将这些文件暂时移至写入/读取 (chmod 777),并将所有者/组更改为“apache”,如下所示。
-bash-4.1$ ls -hal
total 28K
drwxrwxrwx. 3 richard richard 4.0K Aug 23 15:03 .
drwxr-xr-x. 4 richard richard 4.0K Aug 18 14:20 ..
-rwxrwxrwx. 1 apache apache 9.3K Mar 23 16:34 default.settings.php
drwxrwxrwx. 2 apache apache 4.0K Aug 23 15:03 files
-rwxrwxrwx. 1 apache apache 0 Aug 23 15:03 settings.php
但是,安装程序仍然抱怨写入权限问题。我按照 INSTALL.txt 中的步骤一和步骤二操作,但没有成功。
更新:
为了进一步探索情况,我创建了 sites/default/richard.php,代码如下:
<?php
error_reporting(E_ALL);
ini_set('display_errors', '1');
mkdir('files');
print("<hr> User is ");
passthru("whoami");
passthru("pwd");
?>
从命令行运行(在用户“richard”下),没有问题。文件夹已创建,一切顺利。从 Web 运行,我得到以下内容:
警告:mkdir():/var/www/html/sites/default/richard.php 第 9 行的权限被拒绝用户是 apache /var/www/html/sites/default
更新 2:
安全模式似乎已关闭...
-bash-4.1$ cat /etc/php.ini | grep safe | grep mode | grep -v \;
safe_mode = Off
safe_mode_gid = Off
safe_mode_include_dir =
safe_mode_exec_dir =
safe_mode_allowed_env_vars = PHP_
safe_mode_protected_env_vars = LD_LIBRARY_PATH
sql.safe_mode = Off
答案1
有几件事需要考虑
关闭 selinux 或者将其设置为宽容模式
检查读/写权限目录的selinux上下文
清除浏览器的缓存并重试。
重新启动 apache 并重试。
检查目录是否有任何磁盘配额并且超出限制。
答案2
SELinux 有点太高了。
我暂时使用设置为允许
sudo echo 0 >/selinux/enforce
设置后将恢复检查。