【问题标题】:PHP - Opening a File or Die on Raspberry PiPHP - 在 Raspberry Pi 上打开文件或死掉
【发布时间】:2015-10-24 01:54:01
【问题描述】:

首先,这可能被认为是重复的,但是我在其他帖子上搜索了很多,但似乎没有一个适合我。

我在我的 Raspberry Pi 和 PHP 5.4.45 上运行 Apache 2

这是我的代码:

<?php
$fh = fopen('AvailableTickets.txt', 'w') or die('Failed to open file');
fwrite($fh, 'Test');
fclose($fh);
?>

当我运行此代码时,我得到Failed to open file。此AvailableTickets.txt 文件与此test.php 文件存在于同一目录中。我尝试在文件名前添加./,以及../www/

不过,当我在浏览器中访问此文件时,文本文件并没有改变。

【问题讨论】:

  • 文本文件的权限是否正确,apache 或 www-data 用户能够查看和写入?
  • 添加 echo getcwd(); 以查看当前目录是什么。然后echo file_exists(..) 看看是否真的存在,最后试试echo is_readable(..) 看看是不是权限问题。
  • 哦,写作!试试echo is_writable();
  • 删除or die部分,并将这些添加到顶部error_reporting(E_ALL);ini_set('display_errors','1');
  • @GShocked 这意味着文件所有者可以读写,文件组可以读取,其他所有人都可以读取。文件所有者是谁?

标签: php apache raspberry-pi fopen fwrite


【解决方案1】:

您需要授予 PHP 对该文件的写入权限

chown www-data:www-data /var/www/AvailableTickets.txt
chmod 644 /var/www/AvailableTickets.txt

【讨论】:

  • @ThinkingMedia 这很聪明 :)
  • @ThinkingMedia 644 不起作用,但我想出了如何使用它并且 646 起作用(将公共设置为读/写)
  • 这是一种方法。我认为还有另一种方法可以使用 apache 配置或 .htaccess 文件授予权限,但我不记得该怎么做。
【解决方案2】:

我遇到了类似的问题。在函数中有 fopen。不会在同一目录中生成文件。做了所有的 pi:pi 和 777,仍然没有文件。

当我想到优化器时,我正准备把整个事情扔掉。所以移动了 fopen(fptr, "filename");并将 fprintf 标头从函数中放入主 init 例程中,并且它起作用了!

显然优化器认为不需要它!

优化器会因为微薄的收益而导致无穷无尽的神秘问题。 您不需要优化器,您需要更快的处理器!

约翰

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-01
    • 1970-01-01
    • 2022-10-16
    • 1970-01-01
    • 2021-05-17
    • 1970-01-01
    相关资源
    最近更新 更多