Назад | Перейти на главную страницу

Почему мои расширения php компилируются для PHP4, а не для PHP5

Пытаюсь скомпилировать кэш памяти для Dreamhost PS.

Библиотека создана, но не отображается в phpinfo. Журналы Apache говорят, что библиотека не загружена, потому что «неопределенный символ: OnUpdateInt in Unknown в строке 0»

Я читал, что OnUpdateInt определен в PHP4, а OnUpdateLong определен в PHP5. Поэтому проблема в том, что конфигурация компиляции считает, что она должна компилироваться с PHP4.

Версия PHP для SAPI - 5.2.10 (показана в phpinfo). CLI - 4.4.9 (показано php -v)

Мой вопрос: как сделать компиляцию библиотек совместимой с PHP5 на моем сервере, а не с php4.

Похоже, вы хотите обновить свой PATH, чтобы «выбрать» PHP 5 вместо PHP 4. В процессе компиляции используется любой PHP, который он найдет на вашем пути. Чтобы найти текущую установку:

which php

Информация PHP должна показывать путь к версии PHP 5. Чтобы проверить это, вы можете запустить php -v с полным путем к версии PHP 5 (например, если она в /usr/local/bin ты можешь использовать /usr/local/bin/php -v). Затем вы можете обновить свой путь:

# for bash
export PATH=/usr/local/bin:$PATH

затем php -v после этого должна появиться обновленная версия.

Если они оба установлены «бок о бок» (например, php и php5 двоичный), вам нужно будет использовать параметр конфигурации (при условии, что вы компилируете memcached из исходного кода). Я не знаком с тем, как Dreamhost имеет такую ​​настройку.