Установите пакеты PECL в Ubuntu

Я пробовал это 100 раз, я действительно новичок в Ubuntu и закончил с кучей ошибок, которые я даже не понимаю, может кто-нибудь, пожалуйста, помогите мне?

Вот что я сделал:

  1. Я установил PHP
  2. Я установил libcurl, затем php5-dev
  3. Я попытался установить расширение PECL, и он говорит PHPIZE не найден.
32
задан 10 January 2014 в 13:48

4 ответа

Во-первых, вам нужно будет установить PEAR через apt-get, чтобы получить необходимый пакет и систему распространения, которую используют PEAR и PECL. В командной строке введите:

sudo apt-get install php-pear

Вам будет предложено подтвердить установку. Просто нажмите «y» и введите. Если все идет хорошо, вы должны увидеть, как он скачал и установил пакет php-pear.

Теперь вам нужно установить пакет php5-dev, чтобы получить необходимые исходные файлы PHP5 для компиляции дополнительных модулей. Введите в командной строке следующее:

sudo apt-get install php5-dev

Если вы не установите пакет php5-dev и попытаетесь установить расширение PECL с помощью «pear install», вы получите следующую ошибку:

sh: phpize: not found
ERROR: `phpize’ failed

Расширение PECL_HTTP требует установки дополнительного пакета зависимостей. Вероятно, вы можете пропустить это для других расширений:

sudo apt-get install libcurl3-openssl-dev

Теперь мы наконец готовы фактически установить расширение. В командной строке введите следующее, но замените «pecl_http» именем устанавливаемого расширения PECL:

sudo pecl install pecl_http

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

После завершения установки вам, вероятно, будет предложено добавить строку «extension =» в ваш файл php.ini. Откройте файл php.ini в вашем любимом текстовом редакторе и добавьте строку под разделом «Динамические расширения». В Ubuntu файл php.ini, кажется, находится в папке / etc / php5 / apache2:

sudo nano /etc/php5/apache2/php.ini

В этом примере при установке расширения pecl_http меня попросили добавить «extension = http.so». Теперь, когда файл php.ini обновлен, необходимо будет перезапустить Apache, чтобы загрузить новое расширение:

sudo /etc/init.d/apache2 restart 

source

0
ответ дан 10 January 2014 в 13:48

В дополнение к ответу @ Ask мне также нужно было сделать:

sudo apt-get install libpcre3-dev

перед запуском pecl install pecl_http, потому что я получаю эту ошибку о pcre.h:

со смертельным исходом ошибка: pcre.h: компиляция такого файла или каталога не прекращена.

Кроме того, вместо редактирования файла php.ini я создал новый файл с именем pecl-http.ini в подкаталоге conf.d того места, где находился файл php.ini, (в Ubuntu /etc/php5/apache2/conf.d)

И мне нужно было добавить в три строки:

extension=raphf.so
extension=propro.so
extension=http.so

Наконец, с этой установленной версии 2.0.6 я не мог использовать функцию http_get_request_headers, но вместо этого мне нужно было использовать версию с пространством имен, \http\Env::getRequestHeader() подробнее см. Здесь

PS: не забудьте перезапустить Apache, когда вы закончите (service apache2 restart)

0
ответ дан 10 January 2014 в 13:48

В дополнение к ответам Maythux и cwd вы, возможно, не захотите редактировать файл php.ini, так как эти изменения могут потеряться при обновлении.

Debian (и, следовательно, Ubuntu) обрабатывает модули php так же, как модули apache. Взгляните на /etc/php5, вы найдете следующие каталоги:

apache2/
cli/
mods-available/

Когда вы посмотрите на mods-available, вы увидите несколько файлов, таких как:

curl.ini
gd.ini
json.ini
mysql.ini
…

Чтобы включить / отключить эти доступные моды для всех API (apache, cli, cgi) вы можете просто использовать команды php5enmod или php5dismod следующим образом:

$ sudo php5enmod curl

соответственно

$ sudo php5dismod curl

создавать (или удалять) символические ссылки на файл конфигурации модуля в apache2/conf.d/ и cli/conf.d/.

Вы также можете указать sapi для включения / выключения мода для (в данном случае apache):

$ sudo php5enmod -s apache2

pecl install может не создавать файл конфигурации для raphf (и других установленных модулей). с ним), но вы можете создать его самостоятельно:

$ sudo touch /etc/php5/mods-available/raphf.ini

Затем напишите в следующих строках:

; configuration for php raphf module
; priority=20
extension=raphf.so

Приоритет по умолчанию - 20. Это может зависеть от типа модуль, приоритет которого вы должны использовать. Для raphf 20 кажется нормальным. ( Обновление : если вы ищете pecl_http, начиная с версии 2 он должен быть загружен после rapfh и propro, поэтому установите приоритет в mods-available/http.ini на 30.)

Таким образом, вы можете включить модуль:

$ sudo php5enmod raphf

(Примечание: мой ответ зависит от Ubuntu 14.04, но может работать аналогичным образом для 13.04, см. http: // www.lornajane.net/posts/2012/managing-php-5-4-extensions-on-ubuntu)

0
ответ дан 10 January 2014 в 13:48

Сейчас дни, установите PEAR таким образом, чтобы получить его из источника:

wget http://pear.php.net/go-pear.phar
php go-pear.phar
0
ответ дан 10 January 2014 в 13:48

Другие вопросы по тегам:

Похожие вопросы: