Подтвердить что ты не робот

Php не удается загрузить xcache.so после перекомпиляции

Я перекомпилировал PHP 5.4.39 на своем raspbian, чтобы включить поддержку pthreads.
Все работает хорошо, даже pthreads, но каждый раз, когда я запускаю php script из командной строки (и я предполагаю, что это то же самое, если apache использует php), он говорит, что не удается загрузить xcache.so:

Не удалось загрузить /usr/lib/php 5/20100525+lfs/xcache.so:/usr/lib/php5/20100525+lfs/xcache.so: undefined symbol: compiler_globals

Я перекомпилировал php, используя эту информацию: https://www.digitalocean.com/community/info/enable-zts-support-on-ubuntu-14-04

Хотя php работает нормально, я хотел бы знать, что это означает, и я хотел бы решить его, если это возможно.

4b9b3361

Ответ 1

У вас, скорее всего, есть расширения PHP, которые были созданы против старой сборки самого PHP. Правильное решение - удалить неправильно связанные расширения PHP и восстановить их.

Я предлагаю вам начать с расширения XCache (пакет php5-xcache на Ubuntu). Удалите его и перестройте его, выполнив действия, указанные в упомянутом руководстве (просто замените php5 на php5-xcache).

Скорее всего, некоторые другие расширения также будут иметь проблемы. Удалите и перестройте их.

Если вы только последовали за учебником с помощью php5, можно с уверенностью сказать, что вам нужно будет удалить и перестроить все расширения. Все пакеты, начинающиеся с php5-.

PS: Не все расширения PHP поддерживают безопасность потоков. Если вы не можете создать какое-то расширение, но не нуждаетесь в нем, просто удалите его.

PPS: XCache - это кеш операций. Убедитесь, что вы не включили несколько кеш-кодов операций одновременно. Например, не включайте вместе XCache и OPcache (или APC), но выберите один из них.

Ответ 2

В php.ini найдите zend_extension, выполните sudo updatedb в другом терминале, а затем найдите xcache.so и укажите путь, который вы должны положить в php.ini. Если это не решит проблему, вы можете использовать несовместимый модуль xcache. т.е. с помощью поточного безопасного xcache с безопасным php-потоком или наоборот.