php - 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 插件)时,这并没有提取并给我一个关于写入权限的错误。
我究竟做错了什么?
解决方案
PHP 文件将由 Apache 解析。通常 Apache 将在用户 www-data 下运行,无论如何找出 Apache 在哪个用户下运行,并为运行 apache 的用户授予适当的权限。如果您是一个运行服务器的人,我建议您以 root 用户身份登录 SFTP,这将授予您修改服务器上所需内容的权限,但请记住在登录之前更改您以 root 用户身份创建的任何文件的所有者和组出去。
推荐阅读
- python - 使用 aws ssm 执行带有参数的 python 脚本
- python - Python 可执行文件可以创建文件吗?
- java - 如何在 Java 中使用 ConsoleIO 制作评分程序(***No Scanner***)
- react-native - react-native-multiselect-view - 将容器渲染为“按下”
- php - 从 Google Sheet API 获取单元格格式
- android - Gradle Task 依赖多个参数
- c++ - Multiple definition error while linking: multiple definition of `typeinfo name
- ubuntu - ubuntu server 20.04.2 terminal how to scroll up?
- pandas - Pandas groupby 聚合将多个函数应用于多个列
- pandas - 将 2 列数据框转换为具有多列的单行