我已经ubuntu 20.04
安装了ec2-instance
withapache2
和php7.2
.
我需要使用 php 脚本将文件上传到一个uploads
文件夹,然后使用 php对这些文件执行一些基于 linux 的命令(unoconv
和)。文件夹结构/权限如下:ghostscript
exec
/var/www/html/<project-name>/uploads/<sub-folder>/<files>
每个都有以下文件权限
drwxr-xr-x 4 root root 4096 Jul 10 19:26 html
drwxrwxr-x 8 ubuntu www-data 4096 Jul 11 14:35 <project-name>
drwxr-sr-x 3 ubuntu www-data 4096 Jul 11 13:07 uploads
drwxr-sr-x 4 ubuntu www-data 4096 Jul 11 13:33 <sub-folder>
-rw-r--r-- 1 ubuntu www-data 413895 Jul 11 13:07 <file>
- 在上面提到的文件权限和所有权中,如果我尝试上传任何文件或
mkdir
,我会从 php/apache 收到权限被拒绝错误。如果我将所有权更改为www-data:www-data
. - 如果我将其更改为
www-data:www-data
,则unoconv
停止工作,由于某种原因,它仅在文件夹所有者为ubuntu
. - 如果我将它改回
ubuntu:www-data
,ghostscript 由于 开始失败invalidfileaccess
,我尝试添加-dNOSAFER
标签,但这无济于事。尝试使用pdftoppm
,它也有与ghostscript相同的问题。
我尝试创建一个新用户并将该用户添加到ubuntu
组www-data
中,但这不起作用。我添加ubuntu
到www-data
和组www-data
中ubuntu
,这也不起作用。
我觉得我现在搞砸了太多。上述文件夹的正确权限和所有权应该是什么,以允许 apache 上传文件和 ubuntu 对其执行操作?我愿意做实验。