PHP 脚本/目录的权限是什么?

新手上路,请多包涵

我正在尝试帮助一位朋友将网站从一个网络酒店转移到另一个。老地方已经关门了,我只有一个扁平的 tar 文件,里面有什么。

该网站包含 HTML 文档,并且可以下载一个小的 Java 应用程序(将加载到手机上)以将数据发送到该网站。

移动 Java 应用程序向 URL=<HOST>/php/register.php 发送了一个字符串。此 php 脚本包含另一个 php 脚本 ( ../inc/db_login.php ),它使用 $link=mysql_connect() 连接到 SQL DB。另一个文件 register.php 插入了 SQL 以将新发送的数据放入数据库中。

我的问题基本上是,我应该把这 2 个 PHP 文件放在新网站的什么地方,目录和文件应该有什么权限?

旧的 Web 服务器显然有一个 /php/inc 目录。这些都不存在于新的网络服务器上。我应该创建它们吗?他们应该有什么权限?我猜想将密码放在单独的 PHP 文件中的原因是安全性。 /php/inc 目录可能有不同的权限。

新服务器有目录:

  • /httpdos
  • /httpsdos
  • /cgi-bin
  • /conf (还有一些可能不相关)

我的问题

  1. 文件扩展名( .php )是否对服务器意味着什么:因为 PHP 脚本“包含”在 HTML 代码中(在 <?...?> 之间,服务器是否需要查看文件后缀还是无关紧要?(我知道服务器对 <?...?> 有反应,当然)

  2. 公共文件(在我的例子中是 register.php )应该放在 httpdocs/ 目录中,还是服务器(我认为是 apache)对某些东西做出反应并将其提取到另一个目录中?

  3. PHP脚本是否应该有权限 R-X (读取和执行)、 --X (执行)或 R-- (读取)?从操作系统的角度来看,我猜 apache 只是在读取这些文件,这意味着它们应该是 R-- ,但这意味着如果 PHP 服务“停止”,客户端将在他的浏览器中获取所有 PHP 代码( ?)。我更喜欢它是 --X 但由于它既不是二进制文件也没有 #! ,我想它一定是 --R

  4. 如果公共 PHP 脚本可以放在另一个目录中(例如 /php 而不是 /httpdocs )应该 /php (和脚本)有什么权限?我猜服务器必须知道这个 /php 目录(或者有通常的默认值吗?)

  5. 包含的 PHP 脚本( ../inc/db_login.php ,包含 SQL 密码)不应位于 /httpdocs 我猜。这意味着我的 register.php 包含一个不在 /httpdocs 子树下的文件。这行得通吗?服务器需要知道吗?

我了解您可能需要了解服务器配置。只需在您的答案中假设默认值(如果是,您可以告诉它在哪里更改)。

原文由 christophe milard 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 426
1 个回答

设置文件权限为 0644,文件夹权限为 0755。

我为此编写了一个库。

使用示例:

 <?php

use MathiasReker\FilePerm;

require __DIR__ . '/vendor/autoload.php';

(new FilePerm([__DIR__])) // <-- root directory
    ->setDefaultModeFile(0644) // <-- file permission
    ->setDefaultModeFolder(0755) // <-- folder permission
    ->scan()
    ->fix();

完整文档: https ://github.com/MathiasReker/php-file-permissions

原文由 user19694845 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题