【问题标题】:What is "make sure the owner of the folder is the Apache user (mostly it is www-data)"?什么是“确保文件夹的所有者是 Apache 用户(主要是 www-data)”?
【发布时间】:2017-12-22 13:21:20
【问题描述】:

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

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

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

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

无论如何,请给我一些指导吗?我应该使用 SSH 吗?还是别的什么?

非常感谢您的帮助...

艾琳

【问题讨论】:

  • 775 文件权限可能是最好的,我会将权限保留在 775。更改为 777 不会解决问题。更改所有权可能会解决它。

标签: php apache


【解决方案1】:

如果你有 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 2013 年 8 月 21 日 index.php

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

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

更改群组:chgrp apache dompdf/lib/font/

如果您使用的是共享主机,您可能无权执行此操作。我猜这更有可能是路径或配置问题而不是权限问题,但请试一试。

【讨论】:

  • 嗨,乔丹,我输入了 ls -l,然后我得到了: drwxrwxrwx 2 abcdef www-data 4096 Aug 20 14:15 fonts 然后,我输入了“chgrp Apache dompdf/lib/fonts” 我得到了这个: " chgrp: invalid group: `Apache' " 有什么想法吗?非常感谢!
  • www-data 很好,drwxrwxrwx 是 777,所以你应该很好,你现在看到什么错误?
  • 我明白了。所以已经是777了...但是在我的APP中,当我点击“PDF预览”时,我仍然看到乱码... 脚本所有者说,我需要确保文件夹的所有者是Apache用户而不是www -data...是这个原因吗?
  • 您提到尝试匹配 public_html 中的其他文件。当我在 public_html 处执行“ls -l”时,所有目录都具有相同的 www-data 组。我应该将所有内容都更改为apache吗?或者我只能更改 dompdf/lib/font 目录吗?谢谢!
  • 不,我会将它们全部保留为 www-data 并且不使用 apache。有不同类型的虚拟主机,有些使用 apache,有些使用 www-data。如果它们设置为 www-data 那就对了。
【解决方案2】:

据我所知,您无法通过 FTP 更改文件/目录的所有者。您可以通过 SSH。 更改文件权限的命令: chmod 777 文件名.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命令。

【讨论】:

  • 谢谢。这也很有帮助:)
【解决方案3】:

不要将数据库用户用作 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。)

【讨论】:

    猜你喜欢
    • 2014-02-23
    • 2016-12-16
    • 2015-09-29
    • 1970-01-01
    • 1970-01-01
    • 2020-03-21
    • 2010-09-05
    • 2020-06-25
    • 1970-01-01
    相关资源
    最近更新 更多