Как включить расширение php с помощью `phpize`?

Я пробовал эти шаги с разными расширениями, но не знаю, почему это не работает. Разве после этого я не увижу изменения в выводе phpinfo()?

Шаги:

  1. Распакуйте исходный код php и измените каталог на ext/ext_name
  2. phpize
  3. configure
  4. make
  5. вручную переместите файл «ext_name.so» из каталога «../.lib» в «extension_dir», указанный в файле «php.ini». (или сделать make install )
  6. перезапустить веб-службу

Чего-то не хватает? Мне нужно включить определенное расширение в php, и нет возможности перекомпилировать всю версию php.


person Reem    schedule 01.06.2011    source источник


Ответы (1)


Если .so правильно скомпилирован и т. д., и он находится в вашем каталоге расширений, вам также необходимо добавить следующую строку:

extension=NAME.so

Это приведет к принудительной загрузке. В этот момент, если действительно есть что отображать, это будет отображаться в phpinfo().

person Rudi Visser    schedule 01.06.2011
comment
Я сделал это, но единственный результат, который я получил, это предупреждение PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php/modules/xsl.so' - /usr/lib/php/modules/xsl.so: undefined symbol: dom_node_class_entry in Unknown on line 0 :( - person Reem; 01.06.2011
comment
Это означает, что модуль, который вы только что скомпилировали, зависит от модуля PHP DOM, вам также необходимо включить его (до того, как вы включите xsl.so). Вы создаете модуль для правильной версии PHP? - person Rudi Visser; 01.06.2011
comment
Что вы подразумеваете под правильной версией PHP? Я загрузил исходный код php с той же версией, что и уже установленная. Я попробовал те же шаги с DOM, но снова не увидел изменений в phpinfo(), поэтому я не могу сказать, включен ли DOM или нет :( - person Reem; 02.06.2011
comment
Спасибо за вашу помощь, я повторил процесс после того, как удалил все предыдущие сгенерированные файлы.. ПЕРВЫЙ: выполните шаги для расширения dom, включая добавление extension=dom.so в файл php.ini, ВТОРОЙ: выполните шаги для расширения xsl и добавьте extension=xsl.so после предыдущая строка.. перезапустите httpd.. phpinfo() говорит, что xsl включен.. Еще раз спасибо :) - person Reem; 02.06.2011
comment
Без проблем. Извините, кстати, я не видел ваш первый ответ 15 часов назад! - person Rudi Visser; 02.06.2011