首页 > 解决方案 > Centos 上 Apache 的权限问题

问题描述

我用 Centos、apache、MySQL 和 PHP 7.4 设置了一台 LAMP 机器。

我通过 ssh 的用户是mformisano,我可以通过 SFTP 登录mformisano并浏览文件夹。它是一个内网机器,所以我们对限制没有那么严格,但是,如果我在浏览器中输入地址,我可以执行 PHP 文件,但是这些文件无法提取文件,创建文件等到文件var/www/html夹中。

实际上 www 文件夹是:

drwxr-s---.  4 apache apache   31 29 ott 22.34 www

里面:

drwxr-xr-x. 21 root   root   4096 29 ott 22.34 ..
drwxr-x---.  2 apache apache    6 19 ott 15.54 cgi-bin
drwxrwxr-x+  3 apache apache 4096  2 nov 10.49 HTML

如果我允许mformisano,我可以通过 FTP 浏览,执行 PHP。如果我允许apache:apache我无法浏览,则执行 PHP。如果我允许mformisano:apache我可以浏览,则执行 PHP。如果我允许mformisano:mformisano我可以浏览,则不会执行 PHP。

我确实需要浏览和执行 PHP,所以mformisano:apache应该是正确的方法,但是当我执行 kickstart.php(一个提取 .jpa 存档的 WordPress 插件)时,这并没有提取并给我一个关于写入权限的错误。

我究竟做错了什么?

标签: phplinuxapachepermissions

解决方案


PHP 文件将由 Apache 解析。通常 Apache 将在用户 www-data 下运行,无论如何找出 Apache 在哪个用户下运行,并为运行 apache 的用户授予适当的权限。如果您是一个运行服务器的人,我建议您以 root 用户身份登录 SFTP,这将授予您修改服务器上所需内容的权限,但请记住在登录之前更改您以 root 用户身份创建的任何文件的所有者和组出去。


推荐阅读