Собственные модули и расширения (PECL и PEAR) PHP

Материал из 1GbWiki.

(Различия между версиями)
Перейти к: навигация, поиск
Версия 08:36, 27 февраля 2013 (править)
Renton (Обсуждение | вклад)
(Установка модулей из PECL)
← К предыдущему изменению
Версия 09:21, 27 февраля 2013 (править) (отменить)
Renton (Обсуждение | вклад)
(Установка модулей из PECL)
К следующему изменению →
Строка 43: Строка 43:
$ cd php-5.2.6/ext $ cd php-5.2.6/ext
'''6.''' В данный каталог нужно загрузить исходные тексты того модуля, который вы хотите установить, для примера возьмем imagick из [http://pecl.php.net/package/imagick PECL]: '''6.''' В данный каталог нужно загрузить исходные тексты того модуля, который вы хотите установить, для примера возьмем imagick из [http://pecl.php.net/package/imagick PECL]:
- $ wget http://pecl.php.net/get/imagick-2.2.1RC2.tgz+ $ wget <nowiki>http://pecl.php.net/get/imagick-2.2.1RC2.tgz</nowiki>
$ tar xvfz imagick-2.2.1RC2.tgz $ tar xvfz imagick-2.2.1RC2.tgz
Строка 51: Строка 51:
$ <nowiki>export PHP_PREFIX=/opt/php$(awk '/exec/ {system ($2" -v | grep -o \"5\\.[[:digit:]]\\+\"")}' ~/.fast-php/fast-php)_aux1/current</nowiki> $ <nowiki>export PHP_PREFIX=/opt/php$(awk '/exec/ {system ($2" -v | grep -o \"5\\.[[:digit:]]\\+\"")}' ~/.fast-php/fast-php)_aux1/current</nowiki>
-'''7.''' Подготовка исходных текстов:+'''8.''' Подготовка исходных текстов:
- $ phpize+ $ $PHP_PREFIX/bin/phpize
-* Конфигурирование и компиляция:+'''9.''' Конфигурирование и компиляция:
- $ ./configure && make+ $ ./configure --with-php-config=$PHP_PREFIX/bin/php-config && make
-* Установка модуля в домашний каталог в ~/php/5.2.6/ext+'''10.''' Установка модуля в домашний каталог в ~/php/
- $ mkdir -p ~/php/5.2.6/ext && install modules/imagick.so ~/php/5.2.6/ext+ $ <nowiki>mkdir -p ~/php/$(awk '/exec/ {system ($2" -v | grep -o \"5\\.[[:digit:]]\\+\"")}' ~/.fast-php/fast-php)/ext && install modules/imagick.so ~/php/*/ext</nowiki>
-Теперь, используя собственный [http://www.1gb.ru/php.ini php.ini], вы можете изменить параметр <code>extension_dir</code> и через директиву <code>extension=imagick.so</code> включить скомпилированный модуль.+'''11.''' Копируем себе php.ini :
 + $ <nowiki>cp -v /opt/hostpublic/etc/php$(awk '/exec/ {system ($2" -v | grep -o \"5\\.[[:digit:]]\\+\"")}' ~/.fast-php/fast-php)_aux1/php.ini ~/.php/</nowiki>
 + 
 +'''12.''' В ~/.php/php.ini в директиве <code>extension_dir</code> прописываем абсолютный путь, где лежит наш модуль. Например:
 + extension_dir = "/home/virtwww/'''имя_пользователя'''/php/'''версия_php'''/ext
 +и через директиву <code>extension</code> подключаем сам модуль:
 + extension=imagick.so
==Установка компонентов PEAR== ==Установка компонентов PEAR==

Версия 09:21, 27 февраля 2013



Данная статья предназначена для технических специалистов.

Вы должны знать основы программирования, уметь пользоваться консольными программами и официальной документацией от разработчиков.

В связи с тем, что на сервере могут обновиться версии программ, измениться конфигурация приложений, документация в статье может не соответствовать действительности, поэтому вы должны быть готовы разобраться с возможными проблемами самостоятельно или с помощью специалистов из платной поддержки http://1gbsup.ru/paidsu/, обычная поддержка хостинга не оказывает консультации по установке и отладке скриптов.



Содержание

Общие сведения

PECL - (PHP Extension Community Library) — это репозиторий модулей для PHP, написанных на C. В PECL находится ряд модулей к PHP, которые по каким-либо причинам (морально устарели, не прошли тестирование, имеются более функциональные аналоги) не входят в стандартную поставку PHP.

PEAR - (PHP Extension and Application Repository) — это библиотека классов PHP с открытым исходным кодом. Т.е. это обычный набор PHP-скриптов не требующий предварительной компиляции для их установки.


Примечание:

  1. На хостинге 1Gb.ru уже включено по-умолчанию подавляющее большинство модулей PHP (которые можно включить на виртуальном хостинге), посмотрите на вывод функции phpinfo(), возможно, требуемый вам модуль уже работает.
  2. Модуль DOM XML доступен только в PHP 4 (у нас этот модуль включен), в PHP 5 используйте DOM (также включен).
  3. Установка собственных модулей возможна только на серверах UNIX/Apache/FastCGI или UNIX/Apache/CGI.


Установка модулей из PECL

1. Зайдите на сервер используя доступ по SSH
2. Создайте каталог для исходных текстов PHP и перейдите в него

$ mkdir ~/src && cd src

3. Теперь нужно скачать исходные тексты www.php.net/releases, которые соответствуют версии PHP используемой на сайте. Определить версию можно с помощью такой команды:

$ awk '/exec/ {system ($2" -v | grep ^PHP")}' ~/.fast-php/fast-php

Далее идут примеры команд для версии PHP 5.2.6.

$ wget http://ru.php.net/get/php-5.2.6.tar.bz2/from/this/mirror

4. Распаковка архива:

$ tar xvfj php-5.2.6.tar.bz2

5. Переходим в каталог с исходными текстами модулей:

$ cd php-5.2.6/ext

6. В данный каталог нужно загрузить исходные тексты того модуля, который вы хотите установить, для примера возьмем imagick из PECL:

$ wget http://pecl.php.net/get/imagick-2.2.1RC2.tgz
$ tar xvfz imagick-2.2.1RC2.tgz
$ cd imagick-2.2.1RC2

7. Определим PHP_PREFIX с целью вызова правильных версий команд phpize, php-config :

$ export PHP_PREFIX=/opt/php$(awk '/exec/ {system ($2" -v | grep -o \"5\\.[[:digit:]]\\+\"")}' ~/.fast-php/fast-php)_aux1/current

8. Подготовка исходных текстов:

$ $PHP_PREFIX/bin/phpize

9. Конфигурирование и компиляция:

$ ./configure --with-php-config=$PHP_PREFIX/bin/php-config && make

10. Установка модуля в домашний каталог в ~/php/

$ mkdir -p ~/php/$(awk '/exec/ {system ($2" -v | grep -o \"5\\.[[:digit:]]\\+\"")}' ~/.fast-php/fast-php)/ext && install modules/imagick.so ~/php/*/ext

11. Копируем себе php.ini :

$ cp -v /opt/hostpublic/etc/php$(awk '/exec/ {system ($2" -v | grep -o \"5\\.[[:digit:]]\\+\"")}' ~/.fast-php/fast-php)_aux1/php.ini ~/.php/

12. В ~/.php/php.ini в директиве extension_dir прописываем абсолютный путь, где лежит наш модуль. Например:

extension_dir = "/home/virtwww/имя_пользователя/php/версия_php/ext

и через директиву extension подключаем сам модуль:

extension=imagick.so

Установка компонентов PEAR

Наиболее простой и правильный способ установки возможен с помощью скрипта http://pear.php.net/go-pear загрузите его на сайт (на забыв переименовать в go-pear.php), запустите через браузер и следуйте указаниям установщика.

Актуальный второй способ:

$ wget http://pear.php.net/go-pear.phar ; php -d detect_unicode=0 go-pear.phar

Во время установки обратите внимание на пути установки, сделайте их такими, чтобы Вам было удобно.

$ mv ~/.php/php.ini ~/.php/php.ini.old
$ cp /etc/php/php.ini ~/.php/php.ini

В ~/.php/php.ini исправьте include_path (надо раскомментировать директиву include_path и добавить в её значение правильный путь до PEAR , он должен выглядеть примерно так : /home/virtwww/%username%/http/pear/share/pear) и внесите поправки в соответствии с ~/.php/php.ini.old

После редактирования php.ini выполните

$ killall -q php >/dev/null 2>&1

Подробнее см. http://pear.php.net/manual/en/installation.php


Дополнительная информация

  • phpinfo() - типичная конфигурация сервера 1Gb.ru PHP4/Windows
  • phpinfo() - типичная конфигурация сервера 1Gb.ru PHP5/Windows
  • phpinfo() - типичная конфигурация сервера 1Gb.ru PHP5/UNIX
  • PECL - официальный сайт PECL
  • PEAR - официальный сайт PEAR
Личные инструменты