Собственные модули и расширения (PECL и PEAR) PHP
Материал из 1GbWiki.
Версия 22:41, 16 мая 2011 (править) Dmih (Обсуждение | вклад) ← К предыдущему изменению |
Текущая версия (07:33, 31 марта 2016) (править) (отменить) Zaputr (Обсуждение | вклад) |
||
(10 промежуточных версий не показаны.) | |||
Строка 1: | Строка 1: | ||
+ | <br /> | ||
+ | <br /> | ||
+ | <table cellspacing="0"> | ||
+ | <tr style="background: #F7D9D9"> | ||
+ | <td width="850px" style="vertical-align:top; border-top: 1px solid #D63838; border-left: 1px solid #D63838; border-bottom: 1px solid #D63838; border-right: 1px solid #D63838; padding: 1em;"> | ||
+ | <span style="font-size: 16px; font-weight: bold;">Данная статья предназначена для технических специалистов.</span> | ||
+ | <p>Вы должны знать основы программирования, уметь пользоваться консольными программами и официальной документацией от разработчиков.</p> | ||
+ | |||
+ | В связи с тем, что на сервере могут обновиться версии программ, измениться конфигурация приложений, документация в статье может не соответствовать действительности, поэтому вы должны быть готовы разобраться с возможными проблемами <b>самостоятельно</b> или с помощью специалистов из платной поддержки http://1gbsup.ru/paidsu/, обычная поддержка хостинга <b>не оказывает</b> консультации по установке и отладке скриптов. | ||
+ | </td> | ||
+ | </tr> | ||
+ | </table> | ||
+ | <br /> | ||
+ | <br /> | ||
== Общие сведения == | == Общие сведения == | ||
'''PECL''' - (PHP Extension Community Library) — это репозиторий модулей для PHP, написанных на C. В PECL находится ряд модулей к PHP, которые по каким-либо причинам (морально устарели, не прошли тестирование, имеются более функциональные аналоги) не входят в стандартную поставку PHP. | '''PECL''' - (PHP Extension Community Library) — это репозиторий модулей для PHP, написанных на C. В PECL находится ряд модулей к PHP, которые по каким-либо причинам (морально устарели, не прошли тестирование, имеются более функциональные аналоги) не входят в стандартную поставку PHP. | ||
Строка 14: | Строка 28: | ||
==Установка модулей из PECL== | ==Установка модулей из PECL== | ||
- | + | '''1.''' Зайдите на сервер используя доступ по [http://www.1gb.ru/136 SSH]<br /> | |
- | + | '''2.''' Создайте каталог для исходных текстов PHP и перейдите в него | |
- | $ mkdir src && cd src | + | $ mkdir ~/src && cd src |
- | + | '''3.''' Теперь нужно скачать исходные тексты [http://www.php.net/releases/ www.php.net/releases], которые соответствуют версии PHP используемой на сайте. Определить версию можно с помощью такой команды: | |
- | $ | + | $ awk '/exec/ {system ($2" -v | grep ^PHP")}' ~/.fast-php/fast-php |
- | + | ||
- | + | Далее идут примеры команд для версии PHP 5.2.6. | |
- | + | ||
- | + | $ wget <nowiki>http://ru.php.net/get/php-5.2.6.tar.bz2/from/this/mirror</nowiki> | |
- | + | '''4.''' Распаковка архива: | |
- | + | ||
- | + | ||
- | $ wget http://ru.php.net/get/php-5.2.6.tar.bz2/from/this/mirror | + | |
- | + | ||
$ tar xvfj php-5.2.6.tar.bz2 | $ tar xvfj php-5.2.6.tar.bz2 | ||
- | или | ||
- | $ tar xvfj php-5.2.6.tar.gz | ||
- | если это GZip архив. | ||
- | + | '''5.''' Переходим в каталог с исходными текстами модулей: | |
$ cd php-5.2.6/ext | $ cd php-5.2.6/ext | ||
- | + | '''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 | ||
+ | |||
$ cd imagick-2.2.1RC2 | $ cd imagick-2.2.1RC2 | ||
- | + | '''7.''' Определим PHP_PREFIX с целью вызова правильных версий команд phpize, php-config : | |
- | + | $ <nowiki>export PHP_PREFIX=/opt/php$(awk '/exec/ {system ($2" -v | grep -m 1 -o \"5\\.[[:digit:]]\\+\"")}' ~/.fast-php/fast-php)_aux1/current</nowiki> | |
- | + | ||
- | $ | + | |
- | + | ||
- | + | ||
- | + | '''8.''' Подготовка исходных текстов: | |
+ | $ $PHP_PREFIX/bin/phpize | ||
+ | '''9.''' Конфигурирование и компиляция: | ||
+ | $ ./configure --with-php-config=$PHP_PREFIX/bin/php-config && make | ||
+ | '''10.''' Установка модуля в домашний каталог в ~/php/ | ||
+ | $ <nowiki>mkdir -p ~/php/$(awk '/exec/ {system ($2" -v | grep -m 1 -o \"5\\.[[:digit:]]\\+\"")}' ~/.fast-php/fast-php)/ext && install modules/imagick.so ~/php/*/ext</nowiki> | ||
+ | |||
+ | '''11.''' Копируем себе php.ini : | ||
+ | $ <nowiki>cp -v /opt/hostpublic/etc/php$(awk '/exec/ {system ($2" -v | grep -m 1 -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== | ||
- | Наиболее | + | === Через веб-интерфейс === |
+ | Наиболее простым способом установки является установка с помощью скрипта http://pear.php.net/go-pear, загрузите его на сайт (на забыв переименовать в go-pear.php), запустите через браузер и следуйте указаниям установщика. | ||
+ | |||
+ | === Через консоль === | ||
+ | Еще один способ установки используя консольные команды: | ||
+ | $ wget <nowiki>http://pear.php.net/go-pear.phar</nowiki> ; 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 | Подробнее см. http://pear.php.net/manual/en/installation.php | ||
- | == | + | == См. также == |
- | * [http://test-s32-apache-aux9.1gb.ru/phpinfo.php phpinfo()] - | + | * [[Юникс шелл]] |
- | * [http://test-s32-apache-aux3.1gb.ru/phpinfo.php phpinfo()] - | + | * [http://test-s32-apache-aux9.1gb.ru/phpinfo.php phpinfo()] - конфигурация PHP 4 на Windows |
- | * [http://test- | + | * [http://test-s32-apache-aux3.1gb.ru/phpinfo.php phpinfo()] - конфигурация PHP 5 на Windows |
- | * [http://pecl.php.net/ PECL] - официальный сайт PECL | + | * [http://test-l25-apache-aux2.1gb.ru/phpinfo.php phpinfo()] - конфигурация PHP 5.2 на UNIX |
- | * [http://pear.php.net/ PEAR] - официальный сайт PEAR | + | * [http://test-l25-apache-aux3.1gb.ru/phpinfo.php phpinfo()] - конфигурация PHP 5.3 на UNIX |
+ | * [http://test-l25-apache-aux4.1gb.ru/phpinfo.php phpinfo()] - конфигурация PHP 5.4 на UNIX | ||
+ | |||
+ | ==Ссылки== | ||
+ | * [http://pecl.php.net/ PECL] (англ.) - официальный сайт PECL, модули, документация | ||
+ | * [http://pear.php.net/ PEAR] (англ.) - официальный сайт PEAR, модули, документация | ||
[[Категория:UNIX]] | [[Категория:UNIX]] | ||
[[Категория:PHP]] | [[Категория:PHP]] | ||
[[Категория:Программирование]] | [[Категория:Программирование]] |
Текущая версия
Данная статья предназначена для технических специалистов. Вы должны знать основы программирования, уметь пользоваться консольными программами и официальной документацией от разработчиков. В связи с тем, что на сервере могут обновиться версии программ, измениться конфигурация приложений, документация в статье может не соответствовать действительности, поэтому вы должны быть готовы разобраться с возможными проблемами самостоятельно или с помощью специалистов из платной поддержки http://1gbsup.ru/paidsu/, обычная поддержка хостинга не оказывает консультации по установке и отладке скриптов. |
Содержание |
[править] Общие сведения
PECL - (PHP Extension Community Library) — это репозиторий модулей для PHP, написанных на C. В PECL находится ряд модулей к PHP, которые по каким-либо причинам (морально устарели, не прошли тестирование, имеются более функциональные аналоги) не входят в стандартную поставку PHP.
PEAR - (PHP Extension and Application Repository) — это библиотека классов PHP с открытым исходным кодом. Т.е. это обычный набор PHP-скриптов не требующий предварительной компиляции для их установки.
Примечание:
- На хостинге 1Gb.ru уже включено по-умолчанию подавляющее большинство модулей PHP (которые можно включить на виртуальном хостинге), посмотрите на вывод функции phpinfo(), возможно, требуемый вам модуль уже работает.
- Модуль DOM XML доступен только в PHP 4 (у нас этот модуль включен), в PHP 5 используйте DOM (также включен).
- Установка собственных модулей возможна только на серверах 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 -m 1 -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 -m 1 -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 -m 1 -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() - конфигурация PHP 4 на Windows
- phpinfo() - конфигурация PHP 5 на Windows
- phpinfo() - конфигурация PHP 5.2 на UNIX
- phpinfo() - конфигурация PHP 5.3 на UNIX
- phpinfo() - конфигурация PHP 5.4 на UNIX
[править] Ссылки
- PECL (англ.) - официальный сайт PECL, модули, документация
- PEAR (англ.) - официальный сайт PEAR, модули, документация
Категории: UNIX | PHP | Программирование