Как установить грушу, расширение pecl для php на удаленном сервере linux - PullRequest
0 голосов
/ 03 марта 2012

Я искал ответ в Интернете и до сих пор не получил его.
Проблема в том, что я не могу получить доступ к ОС удаленного сервера. Я могу просто передать туда сценарии передачи файлов или любые файлы и запустить сценарии там.
Поэтому я не знаю, как выполнить какую-либо команду установки в удаленной ОС.

Могу ли я просто установить пакет расширения, скачав его, распаковать, затем поместить файлы API в папку httpdocs на сервере и затем "включить" их в свои сценарии для использования?

В некоторых уроках для веб-сайтов они учили, что для проверки того, установлен ли PEAR на сервере, мы можем запустить phpinfo () в сценарии php, а затем проверить команду configure, чтобы увидеть, является ли это --with-pear или - без-груши. Но я просто не вижу ни одного из них в командной строке configure!

они утверждают, что после версии 4.3 для PHP PEAR была установлена ​​для нас. Моя версия - версия PHP 5.2.17. Но у меня просто нет способа проверить, действительно ли он установлен.

1 Ответ

1 голос
/ 03 марта 2012

Множество вопросов - позвольте мне попытаться ответить на каждый из них по одному.

Найти грушу

Груша должна быть включена по умолчанию - что объясняет, что вы не видите этого встрока конфигурации.

Другим тестом является проверка значения include_path - /usr/local/pear, /usr/share/php, эти значения (= место установки PEAR) зависят от ОС.Вы можете увидеть это через phpinfo() или:

<?php
var_dump(ini_get('include_path'));
// or
var_dump(get_include_path());

Чтобы наконец проверить, установлен ли PEAR, попробуйте следующий код:

<?php
require_once 'PEAR.php';

Нет ошибок?Это означает, что PEAR установлен и правильно настроен (в вашем include_path).

A local PEAR tree

Если PEAR не установлен или установлен, и вы неУ вас нет прав на запись в это местоположение (или ваш администратор не может установить пакеты PEAR для вас), лучше всего:

  • установить PEAR и все необходимые пакеты на вашей локальной рабочей станции
  • скопировать все грушевое дерево с вашей рабочей станции на сервер
  • настроить include_path в вашем скрипте

Настройка include_path

  1. Допустим, насервер вашего каталога: /var/example.org/public
  2. Загрузить все дерево PEAR (из локального) в: /var/example.org/public/pear
  3. Добавьте в свой сценарий следующее:

Важно, чтобы ваш новый «путь» был первым - предопределение означает, что сначала выполняется поиск библиотек.Например, если ваша версия PEAR более свежая, чем та, что уже есть на вашем сервере, она будет использовать ее.Меньше побочных эффектов.

Расширения PHP

В большинстве случаев вы не можете установить расширения pecl на сервер без доступа.Вы можете попытаться предварительно скомпилировать расширение на виртуальной машине (с той же ОС), а затем загрузить файл .so и использовать dl() для его загрузки во время выполнения, но это, вероятно, не будет работать в большинстве ситуаций.

Fin

Надеюсь, это имеет смысл.

Обновлено: include_path primer

Представьте себе этот фрагмент кода:

<?php
require 'PEAR.php';

Это сделает поиск PHP, это include_path для определения местоположения PEAR.php.

Типичный путь выглядит следующим образом:

.:/usr/share/php

Это означает, что include_path содержит два каталогов в настоящее время (: является разделителем):

  • текущий путь: .
  • путь /usr/share/php

Порядок этих путей имеет решающее значение для PHP:

  • , если PEAR.php (из нашего примера) найдено в текущем каталоге, сначала оно включается
  • , если PEAR.php только в/usr/share/php, PHP все равно будет сначала искать текущий каталог

Обычно include_path устанавливается в php.ini или во время выполнения (когда скриптвыполняется), используя set_include_path(...) или ini_set('include_path', ...).Чтобы получить текущее значение пути включения, вы также можете использовать get_include_path() или ini_get('include_path').

Чтобы избежать поиска PHP в include_path, вы можете использовать следующее:

<?php
require '/usr/share/php/PEAR.php'

Абсолютный путь не дает PHP использовать include_path.Но поскольку расположение PEAR не стандартизировано в различных дистрибутивах Linux, Unix, MacOSX или Windows, делать это не рекомендуется.

HTH

...