Окончательное обновление.
Задача решена.
Способ решения проблемы заключается в том, что вы повторно устанавливаете Apache и PHP из источника, следуя инструкциям по следующей ссылке.
http://dan.drydog.com/apache2php.html
Затем выполните расширение, построив расширение непосредственно в PHP, следуя инструкциям по ссылке ниже.
Единственное, что двоичные файлы все только в конкретном пути, который, я думаю, является легкой проблемой для решения.
Спасибо всем, это мой первый пост в Stackoverflow, и я провел целый день, чтобы сделать свое первое расширение php. Хотя немного жестко, но мне это нравится! : D
Оригинальный вопрос
Я пытаюсь построить расширение php после инструкции по следующей ссылке:
http://docstore.mik.ua/orelly/webprog/php/ch14_03.htm
Я строю расширение «rot13» в php, используя следующие шаги
./buildconf ./configure --enable-rot13 make sudo make install
Затем я проверил расширение с помощью командной строки php. Результат точно такой же, как в приведенной выше статье.
Полагаю, что после того, как я построю расширение на php, мне не нужно заботиться о файле php.ini. Затем я пытаюсь протестировать расширение в браузере, я выясню, что страница phpinfo () ничего не говорит о новом расширении, в то время как команда php -m показывает, что мое расширение загружено. Я проверил журнал apache2, ошибки нет.
Я почти за один день дошел до игры и не понял. Некоторые потоки аналогичны в stackoverflow, но не имеют реальных рабочих решений.
Моя система – Ubuntu 11.10 и php 5.3.10 и apache2.2.20.
Если у вас есть подсказки, пожалуйста, помогите. Благодаря!
Обновить:
Я поместил расширение = rot13.so в файл php.ini по пути /etc/php5/apache2/php.ini, но теперь, когда я перезапускаю сервер apache2, я получил следующую ошибку.
PHP Warning: PHP Startup: rot13: Unable to initialize module Module compiled with build ID=API20090626,TS,debug PHP compiled with build ID=API20090626,NTS
Эти параметры должны совпадать в Unknown в строке 0
Кто-нибудь знает, что вызвало эту ошибку?
BTW, когда я компилирую расширение, я использовал ./configure –enable-rot13 –with-php-config = / usr / local / bin / php-config, чтобы убедиться, что он использует файл конфигурации php.
Обновление снова:
Я узнаю, что phpinfo () с веб-страницы имеет другую версию php -i, которую я получаю из командной строки … Как это странно? Я попытаюсь разобраться в этом конфликте.
В Ubuntu есть 2 файла php.ini, один для CLI и один для apache.
По умолчанию они находятся в /etc/php5/cli/php.ini
и /etc/php5/apache2/php.ini
.
В вашем случае вам нужно включить расширение в файле apache2 php.ini.