Php 反赢';当我将它移动到另一台服务器时,它无法工作
我设置了一个hitcounter,这样每当有人访问我的站点时,就会加载7个不同的边栏中的一个。有一个名为counter.php的文件,它写入名为hitcounter.txt的文本文件。所有对文件的引用似乎都是相对的,但当我将它们移动到新主机的新目录时,我得到了这个错误,而不是一个愉快的点击计数器: 警告:fopen(hitcounter.txt)[function.fopen]:无法打开流:在/usr/local/apache/sites/MY-SITE/counter.php在线5 Counter.php完整粘贴在下面,第5行是对fopen的第一个引用,Counter.php和hitcounter.txt都有775权限,与旧主机上的权限相同 我做错了什么?很明显,我错过了一些非常简单和尴尬的事情,所以在帮助我的时候,请随意给我任何蔑视或辱骂 counter.php:Php 反赢';当我将它移动到另一台服务器时,它无法工作,php,file-io,deployment,fopen,Php,File Io,Deployment,Fopen,我设置了一个hitcounter,这样每当有人访问我的站点时,就会加载7个不同的边栏中的一个。有一个名为counter.php的文件,它写入名为hitcounter.txt的文本文件。所有对文件的引用似乎都是相对的,但当我将它们移动到新主机的新目录时,我得到了这个错误,而不是一个愉快的点击计数器: 警告:fopen(hitcounter.txt)[function.fopen]:无法打开流:在/usr/local/apache/sites/MY-SITE/counter.php在线5 Count
首先,您不需要775权限。您需要对hitcounter.txt拥有666个权限。PHP文件可以是644 web服务器可能不是组的成员,具体取决于主机,因此您需要授予“Everyone”组写入权限 文件夹需要“执行”位,但单个文件不需要,因为操作系统不执行这些文件 所以你知道,775是:所有者,团体,所有人
- 所有者=读+写+执行
- 组=读+写+执行
- 每个人=读取+执行
- 所有者=读+写
- 组=读+写
- 每个人=读+写
- 所有者=读+写
- 组=读取
- 所有人=阅读
- 所有者=读+写+执行
- 组=读+写+执行
- 每个人=读取+执行
- 所有者=读+写
- 组=读+写
- 每个人=读+写
- 所有者=读+写
- 组=读取
- 所有人=阅读
包含路径
,以确保其中包含句点(当前目录)。不知道为什么不会,但你永远不知道你的主人是不是王者。您可以使用以下方法从PHP脚本打印出包含路径
:
除此之外,您可能需要不同的文件权限。这是一个有用的网站,介绍了有关的许多信息。请检查您的
包含路径,以确保其中包含句点(当前目录)。不知道为什么不会,但你永远不知道你的主人是不是王者。您可以使用以下方法从PHP脚本打印出包含路径
:
除此之外,您可能需要不同的文件权限。这是一个有用的网站,介绍了有关的许多信息。它可能与权限有关。设置为777,看看会发生什么。如果apache使用自己的权限运行,并且不属于您的权限范围,这可能是原因,但我有几点建议:
- 使用file\u put\u contents/file\u get\u contents进行简单的读/写操作李>
- 如果可能的话,请使用$random_number=rand(0,8)或mt_rand(0,8)来代替这些数不清的行,作为奖励,您可以摆脱所有的文件读/写操作
祝你好运
更新
没有什么能比得上一个好例子:
<?php
$random_number = mt_rand(0,8);
file_put_contents("hitcounter.txt", $random_number); /* dont know if you still need it */
?>
如果你真的想(顺便说一句,不是随机的!):
它可能与权限有关。设置为777,看看会发生什么。如果apache使用自己的权限运行,并且不属于您的权限范围,这可能是原因,但我有几点建议:
- 使用file\u put\u contents/file\u get\u contents进行简单的读/写操作李>
- 如果可能的话,请使用$random_number=rand(0,8)或mt_rand(0,8)来代替这些数不清的行,作为奖励,您可以摆脱所有的文件读/写操作
祝你好运
更新
没有什么能比得上一个好例子:
<?php
$random_number = mt_rand(0,8);
file_put_contents("hitcounter.txt", $random_number); /* dont know if you still need it */
?>
如果你真的想(顺便说一句,不是随机的!):
检查两个文件的所有者和组(特别是组)。检查两个文件的所有者和组(特别是组)。非常感谢。你们都很好地回答了我的问题,但克里斯是最快的!谢谢。你们都很好地回答了我的问题,但克里斯是最快的+1-file_put/file_get命令确实使文件处理容易得多+1-file_put/file_get命令确实使文件处理容易得多
<?php
$random_number = mt_rand(0,8);
file_put_contents("hitcounter.txt", $random_number); /* dont know if you still need it */
?>
<?php
$file = "hitcounter.txt";
$number = (int)file_get_contents($file);
$number = ++$number % 9;
file_put_contents($file, $number);
?>