Instalar pacotes PECL no Ubuntu

31

Eu tentei 100 vezes Eu sou realmente novo no Ubuntu e terminei com um monte de erros que eu nem entendo, algum pode me ajudar ??

Aqui está o que eu fiz:

  1. eu instalei o PHP
  2. Eu instalei o libcurl e o php5-dev
  3. Eu tentei instalar a extensão PECL e ele diz PHPIZE não encontrado.
por maniteja 10.01.2014 / 10:05

3 respostas

40

Primeiro, você precisará instalar o PEAR via apt-get para obter o pacote e o sistema de distribuição necessários que PEAR e PECL usam. De um prompt de shell, digite:

sudo apt-get install php-pear

Você será solicitado a confirmar a instalação. Basta pressionar "y" e entrar. Se tudo correr bem, você deverá baixar e instalar o pacote php-pear.

Agora você precisará instalar o pacote php5-dev para obter os arquivos de código PHP5 necessários para compilar módulos adicionais. Digite o seguinte em um prompt de shell:

sudo apt-get install php5-dev

Se você não instalar o pacote php5-dev e tentar instalar uma extensão PECL usando “pear install”, você receberá o seguinte erro:

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

A extensão PECL_HTTP requer que um pacote de dependência adicional seja instalado. Você provavelmente pode pular isso para outras extensões:

sudo apt-get install libcurl3-openssl-dev

Agora estamos finalmente prontos para instalar a extensão. Em um prompt de shell, insira o seguinte, mas substitua “pecl_http” pelo nome da extensão PECL que você está instalando:

sudo pecl install pecl_http

O instalador pode perguntar sobre algumas opções específicas para a extensão que você está instalando. Você provavelmente pode simplesmente pressionar enter uma ou mais vezes para aceitar todos os padrões, a menos que queira definir opções específicas para sua implementação. Se tudo correr bem, o módulo deve baixar, construir e instalar.

Quando a instalação estiver completa, provavelmente pedirá que você adicione uma linha "extension=" ao seu arquivo php.ini. Abra o arquivo php.ini em seu editor de texto favorito e adicione a linha sob a seção rotulada “Dynamic Extensions”. No Ubuntu, o arquivo php.ini parece estar localizado na pasta / etc / php5 / apache2:

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

Neste exemplo, a instalação da extensão pecl_http solicitou que eu adicionasse “extension = http.so”. Agora que o arquivo php.ini foi atualizado, o Apache precisará ser reiniciado para que a nova extensão seja carregada:

sudo /etc/init.d/apache2 restart 

source

    
por Maythux 10.01.2014 / 10:43
4

Além da resposta do @ Ask, eu também precisava fazer:

sudo apt-get install libpcre3-dev

antes de executar pecl install pecl_http porque eu estava recebendo este erro sobre pcre.h :

  

erro fatal: pcre.h: Nenhum arquivo ou diretório   compilação terminada.

Além disso, em vez de editar o arquivo php.ini , criei um novo arquivo chamado pecl-http.ini no subdiretório conf.d de onde o arquivo php.ini estava, (no ubuntu /etc/php5/apache2/conf.d )

E eu precisava adicionar três linhas:

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

Por fim, como essa versão instalada 2.0.6 , não consegui usar a função http_get_request_headers , mas usei a versão namespaced, \http\Env::getRequestHeader() veja mais detalhes aqui

ps: não se esqueça de reiniciar o apache quando terminar ( service apache2 restart )

    
por cwd 05.07.2014 / 03:31
1

Além das respostas do Maythux e do cwd, talvez você não queira editar o arquivo php.ini porque essas alterações podem se perder nas atualizações.

O Debian (e, portanto, o Ubuntu) lida com os módulos php da mesma forma que os módulos do apache. Dê uma olhada em /etc/php5 , você encontrará diretórios como este:

apache2/
cli/
mods-available/

Quando você olha para mods-available , vê vários arquivos como:

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

Para ativar / desativar estes mods disponíveis para todas as APIs (apache, cli, cgi), você pode simplesmente usar os comandos php5enmod ou php5dismod da seguinte forma:

$ sudo php5enmod curl

respectivamente

$ sudo php5dismod curl

Estes criarão (ou removerão) links simbólicos para o arquivo de configuração do módulo em apache2/conf.d/ e cli/conf.d/ .

Você também pode especificar o sapi para ativar / desativar o mod para (apache neste caso):

$ sudo php5enmod -s apache2

pecl install pode não criar um arquivo de configuração para raphf (e outros módulos instalados com ele), mas você pode criá-lo por conta própria:

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

Em seguida, escreva nas seguintes linhas:

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

A prioridade padrão é 20. Pode depender do tipo de módulo que prioridade você deve usar. Por raphf 20 parece bem. ( Atualizar : se você está procurando por pecl_http, a partir da versão 2 ele precisa ser carregado depois de rapfh e propro , então defina a prioridade em mods-available/http.ini to 30 . )

Com isso, você pode ativar o módulo:

$ sudo php5enmod raphf

(Nota: minha resposta depende do Ubuntu 14.04, mas pode funcionar de maneira igual para o 13.04, veja Ссылка )

    
por David 04.01.2016 / 11:16

Tags