php - 警告:fopen(write2File.txt):无法打开流:权限被拒绝
问题描述
几个小时以来一直在尝试修复此错误。
警告:fopen(write2File.txt):无法打开流:第 3 行的 /opt/lampp/htdocs/2i/fwrite.php 中的权限被拒绝无法打开文件。
我到处寻找解决方案,包括使用“$ chmod 777”或“sudo chmod -R 777”。
但是我对 PHP 还是很陌生,而且我已经读到这两种解决方案存在安全风险,我觉得这样做并不自在,因为我的 macbook 还是新的 + 我仍然缺乏 PHP 经验。
我正在寻找更安全的解决方案。谢谢你!
解决方案
您需要了解 Unix 世界中的权限和用户。
以安全方式解决此问题的方法将取决于所有内容的配置方式。
在你自己的电脑上,如果你只是做测试或学习,你可以将它设置为“666”而忘记它。(即:chmod 666 ...)。
777 是错误的,因为这会使文件可执行,而您不希望这样。另一方面,666 将导致 rw-rw-rw-,这意味着:任何人都可读和可写,但不可执行。
如果您将其上传到服务器,那么您可能会通过 FTP 来为您设置权限。
但是,如果您真的想了解正在发生的事情并安全地处理它,您应该找出您的 PHP 以哪个用户身份运行。它可能是 www-data 或其他用户。然后,此用户将需要对您的文件具有权限。因此,您可能会通过 chown 更改该文件的所有者和组,因此您和 PHP 都可以访问它,但其他用户不能。
推荐阅读
- c - 在 C 中解析文件/将其添加到数组中
- dataframe - 错误 java.lang.AssertionError:当我显示数据帧时断言失败(创建加入其他数据帧)
- python - 将所有 CSV 文件读取到 DataFrame - 列 dtype
- android - 针对不同的 Android 操作系统版本显示不同的 xpath
- python - 为什么我不能从文件中读取一行并打印出来?
- java - Jackson 在 Spring 中没有正确解组 xml
- javascript - XmlHttprequest : 如何不让服务器等待下一个请求
- android - 什么是 Android 应用程序持续集成的最佳服务
- reactjs - 如何在 reactjs 中显示从 firestore 获取的数据到 boostrap 表?我可以获取但无法以标准方式显示
- java - 使用 azure 运行 java 应用程序但访问不起作用