对虚拟机的Web应用程序目录的写入权限

对虚拟机的Web应用程序目录的写入权限

我在 GCP 上使用 Centos 7/PHP 创建了一个计算引擎实例。当我通过网页将图像文件上传到我的网络服务器时,系统提示无法创建该文件或目录。但是,我之前已将目录访问权限设置为“777”。我还能做什么?

答案1

您可以尝试使用gcloud compute scp(安装并设置后云端 SDK(如果您没有)将给定的文件直接上传到您的 VM 实例中的服务器文档根目录,例如:

$ gcloud compute scp image_file.png instance-name:/var/www/html/

否则,请随意提供其他详细信息,例如您正在使用的 Web 应用程序或界面以及您可能收到的任何错误消息:尝试查找/var/log/nginx/error.lognginx 或/var/log/httpd/error_logApache。

答案2

首先,如果你真的有一个文件夹,陌生人可以上传任意内容,比如 777,那么你需要立即修复它。没有什么可以阻止某人上传一个实际上是 PHP 脚本(甚至是 shell 脚本、编译后的二进制文件或其他任何东西)的“图片”,因为一切都可以执行) 上传功能启动并运行后。

在没有看到您的配置的情况下,我猜想当前配置的上传目录尚不存在。我认为,域中的无限权限只有在该域实际存在的情况下才有用。一些发行版不会立即创建上传目录,因此这并不奇怪,而 PHP 的文件上传机制将执行此操作 - 即上传文件 - 而不必担心是否必须先创建目标文件夹。(如果随机的陌生人可以简单地选择何时何地将他们模糊有益的文件传送到您的网络,那实际上就不好了。)如果这不是问题,我们将需要您的服务器配置文件和相关的 PHP 脚本。

顺便说一句,我会认真研究目录权限。这是这个网站上的一个经典问题,如果你将在未来几十年里与计算机共处一室,那么花点时间看看这篇文章是值得的

相关内容