PHP sem_get() 不起作用

标签 php semaphore archlinux

我尝试在 php 上使用 semaphores 但无法使 sem_get() 函数正常工作。这是我的 PHP 代码:

<?php
    $key = 123567;
    $maxAcquire = 1;
    $permissions = 0666;
    $autoRelease = 1;

    //it gives the error on the line below
    $semaphore = sem_get($key, $maxAcquire, $permissions, $autoRelease);
    sem_acquire($semaphore); 
    echo "hello world!";
    sem_release($semaphore);
?>

当我尝试运行它时:

php semaphore.php

它打印此错误:

PHP Fatal error:  Uncaught Error: Call to undefined function sem_get()
in   /root/semaphore.php:8
Stack trace:
#0 {main}
thrown in /root/semaphore.php on line 8

我正在使用 PHP 7.0.3 (cli) 开发 Arch Linux。我想解决方案很简单,但我找不到解决方法。如果您能帮助我,我将不胜感激。谢谢。

最佳答案

对信号量的支持不是 php 的标准功能。

创建 php 二进制文件时,必须通过编译器 --enable-sysvsem 选项激活它。

参见手册中的说明:http://php.net/manual/en/sem.installation.php

关于PHP sem_get() 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35523382/

相关文章:

c - 没有 sem_getvalue 信号量无法工作?

c - 信号量队列

python - ImportError : libtk8. 6.so: 无法打开共享对象文件: 没有那个文件或目录

bash - 如何尽可能紧凑地确定最新的主要和完整内核版本字符串

php - 使用正则表达式删除字符串末尾除指定标签之外的所有标签

php - 在 Symfony 2 中获取所有请求参数

php - 从sqlite检索数据并尝试使用android中的服务中的json将其插入MySQL

c++ - 使用 boost named_semaphore 的代码错误

cron - 无法编辑 crontab

php - 如何根据等于多个值之一的字段从 MySQL 表中打印记录