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

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

(Различия между версиями)
Перейти к: навигация, поиск
Версия 16:20, 2 августа 2011 (править)
Zaputr (Обсуждение | вклад)

← К предыдущему изменению
Текущая версия (07:33, 31 марта 2016) (править) (отменить)
Zaputr (Обсуждение | вклад)

 
(6 промежуточных версий не показаны.)
Строка 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==
-* Зайдите на сервер используя доступ по [http://www.1gb.ru/136 SSH]+'''1.''' Зайдите на сервер используя доступ по [http://www.1gb.ru/136 SSH]<br />
-* Создайте каталог для исходных текстов PHP и перейдите в него+'''2.''' Создайте каталог для исходных текстов PHP и перейдите в него
- $ mkdir src && cd src+ $ mkdir ~/src && cd src
-* Скачайте исходные тексты PHP с [http://php.net/downloads.php http://php.net/downloads.php] в соответствии с версией PHP, установленной на сервере:+'''3.''' Теперь нужно скачать исходные тексты [http://www.php.net/releases/ www.php.net/releases], которые соответствуют версии PHP используемой на сайте. Определить версию можно с помощью такой команды:
- $ php -v+ $ awk '/exec/ {system ($2" -v | grep ^PHP")}' ~/.fast-php/fast-php
- '''PHP 5.2.6''' (cgi-fcgi) (built: Jul 29 2008 17:50:43)+ 
- Copyright (c) 1997-2008 The PHP Group+Далее идут примеры команд для версии PHP 5.2.6.
- Zend Engine v2.2.0, Copyright (c) 1998-2008 Zend Technologies+ 
- with eAccelerator v0.9.5.3, Copyright (c) 2004-2006 eAccelerator, by eAccelerator+ $ wget <nowiki>http://ru.php.net/get/php-5.2.6.tar.bz2/from/this/mirror</nowiki>
- with Zend Extension Manager v1.2.2, Copyright (c) 2003-2007, by Zend Technologies+'''4.''' Распаковка архива:
- with Zend Optimizer v3.3.3, Copyright (c) 1998-2007, by Zend Technologies+
-<br />+
- $ 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
-* В данный каталог нужно загрузить исходные тексты того модуля, который вы хотите установить, для примера возьмем 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
 +
$ cd imagick-2.2.1RC2 $ cd imagick-2.2.1RC2
-* Подготовка исходных текстов:+'''7.''' Определим PHP_PREFIX с целью вызова правильных версий команд phpize, php-config :
- $ phpize+ $ <nowiki>export PHP_PREFIX=/opt/php$(awk '/exec/ {system ($2" -v | grep -m 1 -o \"5\\.[[:digit:]]\\+\"")}' ~/.fast-php/fast-php)_aux1/current</nowiki>
-* Конфигурирование и компиляция:+ 
- $ ./configure && make+'''8.''' Подготовка исходных текстов:
-* Установка модуля в домашний каталог в ~/php/5.2.6/ext+ $ $PHP_PREFIX/bin/phpize
- $ mkdir -p ~/php/5.2.6/ext && install modules/imagick.so ~/php/5.2.6/ext+'''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>
-Теперь, используя собственный [http://www.1gb.ru/php.ini php.ini], вы можете изменить параметр <code>extension_dir</code> и через директиву <code>extension=imagick.so</code> включить скомпилированный модуль.+'''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), запустите через браузер и следуйте указаниям установщика.+=== Через веб-интерфейс ===
 +Наиболее простым способом установки является установка с помощью скрипта 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+Еще один способ установки используя консольные команды:
 + $ wget <nowiki>http://pear.php.net/go-pear.phar</nowiki> ; php -d detect_unicode=0 go-pear.phar
Во время установки обратите внимание на пути установки, сделайте их такими, чтобы Во время установки обратите внимание на пути установки, сделайте их такими, чтобы
Вам было удобно. Вам было удобно.
Строка 65: Строка 85:
Подробнее см. 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()] - конфигурация PHP 4 на Windows
 +* [http://test-s32-apache-aux3.1gb.ru/phpinfo.php phpinfo()] - конфигурация PHP 5 на Windows
 +* [http://test-l25-apache-aux2.1gb.ru/phpinfo.php phpinfo()] - конфигурация PHP 5.2 на UNIX
 +* [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://test-s32-apache-aux9.1gb.ru/phpinfo.php phpinfo()] - типичная конфигурация сервера 1Gb.ru PHP4/Windows+* [http://pecl.php.net/ PECL] (англ.) - официальный сайт PECL, модули, документация
-* [http://test-s32-apache-aux3.1gb.ru/phpinfo.php phpinfo()] - типичная конфигурация сервера 1Gb.ru PHP5/Windows+* [http://pear.php.net/ PEAR] (англ.) - официальный сайт PEAR, модули, документация
-* [http://test-l5-apache-aux2.1gb.ru/phpinfo.php phpinfo()] - типичная конфигурация сервера 1Gb.ru PHP5/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-скриптов не требующий предварительной компиляции для их установки.


Примечание:

  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 -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

[править] См. также

[править] Ссылки

  • PECL (англ.) - официальный сайт PECL, модули, документация
  • PEAR (англ.) - официальный сайт PEAR, модули, документация
Личные инструменты