【发布时间】:2016-04-15 22:13:28
【问题描述】:
我在 Windows/Wamp 环境中创建了一个具有缓存脚本的应用程序。该脚本的缓存功能只能同时运行一次。
为了实现这一点,我使用了一个“锁定文件”来检查它是否存在。
在 Windows 上,此脚本继续正常工作。但是现在移到 Ubuntu 环境下是不行的。
<?php
date_default_timezone_set('Europe/Amsterdam');
ini_set('max_execution_time', 300);
ignore_user_abort(true);
$path = 'locked.txt';
if ($lock = fopen($path,'x+')) {
fwrite($lock,time());
fclose($lock);
sleep(10);
unlink($path);
}
?>
错误:fopen(locked.txt): failed to open stream: Permission denied
【问题讨论】:
-
@fopen正在抑制可能的错误,否则这些错误会表明问题所在。 -
@apokryfos 删除了抑制
@。但是没有错误。我还用一段更简单的代码编辑了我的帖子。 -
复制粘贴您的代码。在我的 14.04 ubuntu 上运行良好。确保您对目录具有执行权限,否则无法删除。
-
我确实有错误,抱歉。我犯了一个错误。错误如下'fopen(locked.txt): failed to open stream: Permission denied'。
-
您的网络服务器无权以读写模式打开
locked.txt文件。
标签: php linux ubuntu cron fopen