Настройка pthread в php 7.0 в Ubuntu 18.04 LTS - PullRequest
0 голосов
/ 20 сентября 2018

Я использую php 7.0 в Ubuntu 18.04 LTS.Я должен реализовать многопоточность в php с помощью pthread.Несколько методов, которые я пробовал, но каждый раз получал

configure: error: pthreads requires ZTS, please re-compile PHP with ZTS enabled
ERROR: `/tmp/pear/temp/pthreads/configure --with-php-config=/usr/bin/php-config' failed

Даже я пытался установить php с нуля, но безуспешно.

Я следовал следующим шагам сайта: https://www.rapidspike.com/blog/php7-pthreads/

Пожалуйста, помогите.

1 Ответ

0 голосов
/ 20 сентября 2018

Согласно вашему комментарию:

Вывод php -v следующий: PHP 7.0.31-1 + ubuntu18.04.1 + deb.sury.org + 1 (cli) (построено: 25 июля)2018 10:01:10) (NTS) Copyright (c) 1997-2017 PHP Group Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies с Zend OPcache v7.0.31-1 + ubuntu18.04.1 + deb.sury.org + 1, Copyright (c) 1999-2017, Zend Technologies с Xdebug v2.6.0, Copyright (c) 2002-2018, Дерик Ретанс

Вы пытаетесь установить peclпакет против неверной версии PHP, которая в вашем случае (NTS) вместо (ZTS).

Чтобы избавиться от этого, вам потребуется одно из следующих возможных действий: -

1-Установите пакет pecl для определенной версии PHP.

pecl -d php_suffix=X.X-zts install pthreads

2 - Обновите версию по умолчанию для вашей среды.

sudo update-alternatives --set php /usr/bin/phpX.X-zts

Примечание и предупреждение: это означает, что все ваших приложений терминала php будут работать под версией ZTS, что может вызвать некоторые неожиданные поведения.

Однако вы можете переключать свои версии PHP обратно после установки.


3 - Компилировать phtread из исходного кода и определить целевую версию PHP (сложную, но предпочтительную).

$ git clone https://github.com/krakjoe/pthreads.git
$ cd pthreads/
$ phpize
$ ./configure --with-php-config=/path/to/php-zts/bin/php-config
$ make
$ make install

Вы можетенеобходимо также обновить альтернативы для phpize

update-alternatives --set phpize /usr/bin/phpize-zts

Примечание: Все версии PHP, которые были упомянуты в этом ответе, могут отличаться от установки к настройке, так что выможет потребоваться проверить имя и путь к версии PHP, используя locate bin/php

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...