0

所以,我有这个简单的小 php 脚本。它可以正常运行和编译,并且在我编写它的机器上按照我想要的方式工作。我在运行 Debian 6.0.6、32 位的个人家庭网络服务器上运行它。它是带有 php 的 apache。而且我知道 php 正在服务器上运行。

    <?php
    $hitsfile = "hits.txt";                                                 #name of file
    $filehandle = fopen($hitsfile, 'r') or die ("Couldn't read file.");     #Opens file, 'hitsfile' to be read.
    $hits = fread($filehandle, 5);                                          #reads file to the introduced variable, 'hits'
    fclose($filehandle);                                                    #closes file
    $hits++;                                                                #increments the variable that it read.
    $filehandle = fopen($hitsfile, 'w') or die ("Couldn't write to file."); #opens file to be read. 
    fwrite($filehandle, $hits);                                             #writes the hits variable to file.
    fclose($filehandle);                                                    #closes file.
    echo $hits;                                                             #outputs the hits variable.
    ?>

当我通过网络浏览器从服务器访问文件时,我得到“无法写入文件”。错误。那么,它会正确打开文件并读取它。当它打开它进行写入时,它会失败。我假设这是权限或其他方面的某种问题。我对如何解决这个问题有点茫然。有任何想法吗?协助将不胜感激!我已经google了几天了,我无法解决这个问题。我是一个 php 'noob',我对运行基于 linux 的网络服务器非常陌生,但是,嘿,你必须以某种方式学习。:*l

4

1 回答 1

1

试图检查文件的权限?Linux 文件系统有一个非常严格的权限系统。在终端上写:

ls -la /path/to/my/file.txt

这将为您提供对左列的权限。请阅读这篇文章以确保,并检查 Apache 是否具有文件的“写入”权限。如果没有,请使用chmod命令授予 Apache 对该文件的访问权限(或chown命令,将此文件的所有者更改为 apache,如果此文件的所有者具有写入权限)。

于 2013-01-06T01:02:32.243 回答