什么是“确保文件夹的所有者是Apache用户(主要是www-data)”?

问题描述 投票:0回答:3

我在云服务器上安装了PHP脚本应用程序。其中一个功能是“PDF预览”,目前无法正常工作。

我联系了PHP脚本所有者,他让我确认:1。dompdf / lib / font /文件夹具有写权限(777)2。文件夹的所有者是Apache用户(主要是www-data)

对于第一个,我尝试直接在FileZilla界面中更改目录权限。但刷新后它总是变回775 ......

对于第二个,我不知道它意味着什么......我联系了我的云服务器服务的技术支持。他说这是与App相关的问题,而不是服务器。

无论如何可以给我一些方向吗?我应该使用SSH吗?或其他什么?

真的很感谢你的帮助......

艾琳

php apache
3个回答
0
投票

如果您有SSH访问权限,则更容易。

1)SSH和CD进入你的web目录(可能是public_html)

2)运行命令chmod -R 777 dompdf/lib/font/然而许可755很可能...

3)运行ls -l。它可能看起来像这样:

-rw-r - r-- 1 erin erin 395 Aug 21 2013 index.php

第一个'erin'是用户,第二个'erin'是组。可能有其他文件具有正确的组(例如www或apache)。尝试匹配public_html目录中的其他文件:

要更改所有者:chown apache dompdf/lib/font/

改变组:chgrp apache dompdf/lib/font/

如果您在共享主机上,则可能无法执行此操作。我猜它更可能是一个路径或配置问题,而不是权限问题,但请试一试。


0
投票

据我所知,你无法通过FTP更改文件/目录的所有者。你可以通过SSH。更改文件权限的命令:chmod 777 filename.php要更改目录的权限:

chmod -R 777 dirname/

要更改文件的所有者:

chown www-data filename.php

要更改目录的所有者:

chown -R www-data dirname/

要更改文件组:

chgrp www-data filename.php

要更改目录组:

chgrp -R www-data dirname/

使用上述命令更改文件权限和所有权时,请确保您位于文件的目录中。否则你将不得不更新路径。

如果要更新目录,请确保位于要更新的​​目录之上。

希望这可以帮助。

P. S.要查看文件或目录的当前权限/所有者/组,请使用ls -la命令。


0
投票

不要将数据库用户用作UNIX用户。使用www-data。

sudo chown -R www-data:www-data /var/www

数据库用户和Apache用户之间存在差异。 Apache用户是唯一可以实际读取文件的用户。数据库用户仅用于提供/获取数据库读/写权限。

此外,保留webapp安装的默认权限。除了拥有用户/组外,不要更改它们。如果您受webapp的指示,请更改权限。

如果您更关心安全性,则可以运行以下命令:

sudo chown -R $USER:www-data /var/www

sudo chmod -R 640 /var/www

这使得您的用户拥有实际文件,因此只有您(和root)可以修改它们。引用www-data的原因是Apache仍然可以读取文件,但实际上并没有写入它们。

640允许您(文件所有者)进行读写,同时允许www-data组读取文件。它还阻止其他任何人阅读文件内容。

(以上只是一种可能的(未经测试的)方法。有更好的方法可用here。)

© www.soinside.com 2019 - 2024. All rights reserved.