Поиск…


Компиляция в Linux

Чтобы скомпилировать расширение PHP в типичной среде Linux, есть несколько предварительных условий:

  • Основные навыки Unix (возможность работы «make» и компилятор C)
  • Компилятор ANSI C
  • Исходный код для расширения PHP, которое вы хотите скомпилировать

Как правило, существует два способа скомпилировать расширение PHP. Вы можете статически компилировать расширение в двоичный файл PHP или скомпилировать его как общий модуль, загруженный вашим двоичным файлом PHP при запуске. Общие модули более вероятны, поскольку они позволяют добавлять или удалять расширения без восстановления всего двоичного кода PHP. В этом примере основное внимание уделяется общему варианту.

Если вы установили PHP через менеджер пакетов ( apt-get install , yum install и т. Д.), Вам нужно будет установить пакет -dev для PHP, который будет содержать необходимые файлы заголовков PHP и скрипт phpize для рабочей среды сборки , Пакет может называться как php5-dev или php7-dev , но обязательно используйте диспетчер пакетов для поиска соответствующего имени, используя репозитории вашего дистрибутива. Они могут отличаться.

Если вы создали PHP из исходного кода, файлы заголовков, скорее всего, уже существуют в вашей системе ( обычно в /usr/include или /usr/local/include ).

Шаги для компиляции

После того, как вы проверите, чтобы убедиться, что у вас есть все предпосылки, необходимые для компиляции, вы можете перейти на pecl.php.net , выбрать расширение, которое хотите компилировать, и загрузить tar-мяч.

  1. Распакуйте tar-мяч (например, tar xfvz yaml-2.0.0RC8.tgz )
  2. Введите каталог, в который был распакован архив, и запустите phpize
  3. Теперь вы должны увидеть вновь созданный скрипт .configure если все .configure хорошо, запустите этот ./configure
  4. Теперь вам нужно запустить make , который будет компилировать расширение
  5. Наконец, make install скопирует скомпилированный двоичный файл расширения в ваш каталог расширений

Шаг make install обычно предоставляет путь установки для вас, где было скопировано расширение. Обычно это в /usr/lib/ , например, это может быть что-то вроде /usr/lib/php5/20131226/yaml.so . Но это зависит от вашей конфигурации PHP (т.е. --with-prefix ) и конкретной версии API. Номер API включен в путь для хранения расширений, созданных для разных версий API в разных местах.

Загрузка расширения в PHP

Чтобы загрузить расширение в PHP, найдите загруженный файл php.ini для соответствующего SAPI и добавьте extension=yaml.so строки extension=yaml.so затем перезапустите PHP. Измените yaml.so на имя фактического расширения, которое вы установили, конечно.

Для расширения Zend вам необходимо предоставить полный путь к общему объекту. Однако для обычных расширений PHP этот путь получен из директивы extension_dir в загруженной конфигурации или из среды $PATH во время начальной настройки.



Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow