使 /var/www/html 目录可写(Centos 7)

使 /var/www/html 目录可写(Centos 7)

以下问题是与我在 Stack Overflow 上的问题相关

当我在特定目录上生成图像时出现以下错误:

imagejpeg(/var/www/html/assets/files/captcha/1465029891.5357.jpg): failed to open stream: Permission denied

我想使目录可写,并且我一直使用下面这个命令使目录可写,但它根本没有影响。

chown -R apache:apache /var/www/html/assets/files/captcha
chmod 755 /var/www/html/assets/files/captcha

下面是我运行时的情况ps -aux|grep -i httpd

root     30846  0.0  0.1 423604 17476 ?        Ss   15:43   0:00 /usr/sbin/httpd -DFOREGROUND
apache   30848  0.0  0.1 424024 12892 ?        S    15:43   0:00 /usr/sbin/httpd -DFOREGROUND
apache   30849  0.0  0.0 423736 10032 ?        S    15:43   0:00 /usr/sbin/httpd -DFOREGROUND
apache   30850  0.0  0.0 423912 11680 ?        S    15:43   0:00 /usr/sbin/httpd -DFOREGROUND
apache   30851  0.0  0.0 423736  9280 ?        S    15:43   0:00 /usr/sbin/httpd -DFOREGROUND
apache   30852  0.0  0.0 423736  9276 ?        S    15:43   0:00 /usr/sbin/httpd -DFOREGROUND
apache   30854  0.0  0.0 423736  9268 ?        S    15:44   0:00 /usr/sbin/httpd -DFOREGROUND
apache   30855  0.0  0.0 423736  9032 ?        S    15:44   0:00 /usr/sbin/httpd -DFOREGROUND
apache   30856  0.0  0.0 423736  9032 ?        S    15:44   0:00 /usr/sbin/httpd -DFOREGROUND
root     30860  0.0  0.0 112648   988 pts/1    S+   15:51   0:00 grep --color=auto -i httpd

我检查了服务器,发现它由 Apache 运行,我更改了用户、组并更改了权限,但仍然出现上述错误。我错过了哪一部分?

答案1

我找到了有关我的问题的线索,因为我使用的是 CentOS 7,有一些安全调用 SE Linux(安全增强 Linux),它是 Centos 的隐藏防火墙。

我正在遵循这篇文章,我的验证码现在工作正常,因为他们可以写入特定目录。

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

- - 更新 - -

sudo chown apache:apache -R /data/www/html/sites/mysite cd /data/www/html/sites/mysite

查找 . -type f -exec chmod 0644 {} \;

查找 . -type d -exec chmod 0755 {} \;

sudo chcon -t httpd_sys_content_t /data/www/html/sites/mysite -R

须藤 chcon -t httpd_sys_rw_content_t /data/www/html/sites/mysite/logs -R 须藤 chcon -t httpd_sys_rw_content_t /data/www/html/sites/mysite/uploads -R

相关内容