php - 如何确保只有一个 PHP 脚本实例通过 Apache 运行?

标签 php apache

我有一个 index.php 脚本,用作 Google Code 网站上的提交后 URL。此脚本克隆一个目录并构建一个可能需要一些工作的项目。我想避免让此脚本并行运行多次。

如果另一个脚本已经在 session 中,我是否可以使用一种机制来避免执行该脚本?

最佳答案

您可以使用 flock使用 LOCK_EX 获得文件的独占锁。

例如:

<?php
$fp = fopen('/tmp/php-commit.lock', 'r+');
if (!flock($fp, LOCK_EX | LOCK_NB)) {
    exit;
}

// ... do stuff

fclose($fp);
?>

对于 5.3.2 之后的 PHP 版本,您需要使用以下命令手动释放锁 羊群($fp, LOCK_UN);

关于php - 如何确保只有一个 PHP 脚本实例通过 Apache 运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7018844/

相关文章:

php - 在 WordPress 上使用 add_menu_page 函数添加自定义页面

php 代码未执行。已经检查过配置文件

windows - 在apache服务器中自动部署subversion文件

php - 简单的 XML 加载文件不起作用

php - 批量sql更新一个字段有多个值?

javascript - Ajax 不通过 POST 向 PHP 发送变量

java - Apache CXF : get XML request causing Fault

performance - Apache 后面的 node.js 是否比 node.js HTTP 服务器慢得多?

Apache:如何在错误页面上使用替代品?

php - HTTP Post 方法不适用于 AngularJS + PHP + MySQL