Linux не может использовать функцию PHP sem_get () на моем хосте

Я хочу использовать семафоры в моем коде PHP. я обновленный версия PHP моего сервера, и она работает нормально через командную строку. Когда я пытаюсь получить к нему доступ через браузер это дает мне ошибку:

Fatal error: Call to undefined function sem_get() in .../semaphore.php on line 8

Вот код:

<?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);
?>

Даже если он работает через командную строку, почему он не работает в браузере? Это о сервер Apache? Есть ли у вас какие-либо предложения о мьютекс на PHP кроме семафоры? Я хочу, чтобы текст в базе данных редактировался одним пользователем за раз. Спасибо.

1

Решение

примечание по установке отмечает:

Поддержка этих функций не включена по умолчанию. Чтобы включить поддержку семафора System V, скомпилируйте PHP с параметром —enable-sysvsem. Чтобы включить поддержку разделяемой памяти System V, скомпилируйте PHP с параметром —enable-sysvshm. Чтобы включить поддержку сообщений System V, скомпилируйте PHP с параметром —enable-sysvmsg.

Вы скомпилировали PHP с --enable-sysvsem включить функцию.

Наконец, вы можете проверить статус поддержки семафора, используя phpinfo() функция.


ОБНОВИТЬ Кроме того, OP обнаружил, что Apache использует версию, отличную от версии PHP, используемой в консоли. Поэтому вывод из браузера и консоли различен.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]