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

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

(Различия между версиями)
Перейти к: навигация, поиск
Версия 19:20, 31 мая 2010 (править)
77.239.235.129 (Обсуждение)

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

 
(20 промежуточных версий не показаны.)
Строка 1: Строка 1:
-Как 1gb.ru разводит лохов+<br />
-Кризис размножает жуликов с огромной скоростью. А интернет рай для воров и мошенников. Так как получить ответственность за интернет мошенничество крайне сложно. И вот очередной интернет хостер 1gb.ru вышел на ниву жульничества. И добился там превосходных результатов. +<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>
-http://www.1gb.ru/default.aspx?ti=6&hti=104+<p>Вы должны знать основы программирования, уметь пользоваться консольными программами и официальной документацией от разработчиков.</p>
-То есть они честно говорят, что их подарок имеет некую цену регистрации. Хорош подарок. Это как парень, отбирающий у девушки свои подарки после расставания.+ 
-Сама эта фраза по себе показывает, в чем состоит мошенничество этого ресурса.+В связи с тем, что на сервере могут обновиться версии программ, измениться конфигурация приложений, документация в статье может не соответствовать действительности, поэтому вы должны быть готовы разобраться с возможными проблемами <b>самостоятельно</b> или с помощью специалистов из платной поддержки http://1gbsup.ru/paidsu/, обычная поддержка хостинга <b>не оказывает</b> консультации по установке и отладке скриптов.
-Ну ладно хитрый маркетинговый ход скажите вы. Но не все так просто.+</td>
-Как только вы закажите там услуги хостинга, то вы выясняете, что 30% времени ваш сайт не работает вообще. Он висит или отвратительно долго грузится. Когда вы начинаете этому возмущаться, то вам предлагают резво вернуть деньги. Но вы должны выполнить следующие условия: «Прежде всего, необходимо убедиться, что в личном кабинете заполнены все реквизиты клиента» +</tr>
-И тут есть ключевой момент. Если вы заполните эти данные, то на вас сразу же оформят домен. Без этих данных оформить домен они не могут. А как только оформят домен (который дается типа в подарок :-)) вы уже лишитесь 750 рублей. И домен типа обратно перерегистрировать нельзя. И жулик с песнями бежит делить капусту, которую получил продав домен с наваром 350 рублей. А при оптовых ценах еще выше. А вы остаетесь с носом или с доменом. Переплатив за него почти половину стоимости. В любом случае ни о каком хостинге говорить не приходится.+</table>
-А они еще спрашивают сами себя, а почему такие низкие цены? Да вот почему, потому что ничего за эти деньги они не делают. Халявный сыр как известно в мышеловке.+<br />
 +<br />
 +== Общие сведения ==
 +'''PECL''' - (PHP Extension Community Library) — это репозиторий модулей для PHP, написанных на C. В PECL находится ряд модулей к PHP, которые по каким-либо причинам (морально устарели, не прошли тестирование, имеются более функциональные аналоги) не входят в стандартную поставку PHP.
 + 
 +'''PEAR''' - (PHP Extension and Application Repository) — это библиотека классов PHP с открытым исходным кодом. Т.е. это обычный набор PHP-скриптов не требующий предварительной компиляции для их установки.
 +<br />
 +<br />
 +----
 +''Примечание:''
 +# На хостинге 1Gb.ru уже включено по-умолчанию подавляющее большинство модулей PHP (которые можно включить на виртуальном хостинге), посмотрите на вывод функции [http://php.net phpinfo()], возможно, требуемый вам модуль уже работает.
 +# Модуль [http://php.net/dom_xml DOM XML] доступен только в PHP 4 (у нас этот модуль включен), в PHP 5 используйте [http://php.net/dom DOM] (также включен).
 +# '''Установка собственных модулей возможна только на серверах UNIX/Apache/FastCGI или UNIX/Apache/CGI'''.
 +----
 +<br />
 +==Установка модулей из PECL==
 + 
 +'''1.''' Зайдите на сервер используя доступ по [http://www.1gb.ru/136 SSH]<br />
 +'''2.''' Создайте каталог для исходных текстов PHP и перейдите в него
 + $ 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.''' Распаковка архива:
 + $ tar xvfj php-5.2.6.tar.bz2
 + 
 +'''5.''' Переходим в каталог с исходными текстами модулей:
 + $ cd php-5.2.6/ext
 +'''6.''' В данный каталог нужно загрузить исходные тексты того модуля, который вы хотите установить, для примера возьмем imagick из [http://pecl.php.net/package/imagick PECL]:
 + $ wget <nowiki>http://pecl.php.net/get/imagick-2.2.1RC2.tgz</nowiki>
 + 
 + $ tar xvfz imagick-2.2.1RC2.tgz
 + 
 + $ 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==
 +=== Через веб-интерфейс ===
 +Наиболее простым способом установки является установка с помощью скрипта 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://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://pecl.php.net/ PECL] (англ.) - официальный сайт PECL, модули, документация
 +* [http://pear.php.net/ PEAR] (англ.) - официальный сайт PEAR, модули, документация
 + 
 +[[Категория:UNIX]]
 +[[Категория: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, модули, документация
Личные инструменты