Ubuntu'da PECL paketlerini kurun


32

Ben 100 kez denedim Ubuntu'ya gerçekten yeniyim ve bir hatamla sona erdi bile anlamadım bile herhangi biri bana yardım edebilir mi ??

İşte yaptığım şey:

  1. PHP kurdum
  2. Ben libcurl kurdum sonra php5-dev
  3. PECL eklentisini kurmayı denedim ve PHPIZEbulunmadığını söylüyor .

Ubuntu'ya Sormaya Hoş Geldiniz. Lütfen bize verdiğiniz komutun tamamını ve tam hata mesajını verebilir misiniz? Bilgi eklemek için lütfen soru metninizi düzenleyin.
MadMike

Yanıtlar:


48

Öncelikle, apt-getgerekli paketi ve dağıtım sistemini kullanmak PEARve PECLkullanmak için PEAR'ı yüklemeniz gerekir . Bir kabuk isteminden şunu girin:

sudo apt-get install php-pear

Kurulumu onaylamanız istenir. Sadece “y” ye basın ve girin. Her şey yolunda giderse, php-pear paketini indirip yüklediğinizi görmelisiniz.

Şimdi ilave modülleri derlemek için gerekli PHP5 kaynak dosyalarını almak için php5-dev paketini kurmanız gerekecek. Bir kabuk isteminden aşağıdakileri girin:

sudo apt-get install php5-dev

Php5-dev paketini kurmaz ve “armut kur” ile bir PECL uzantısı kurmaya çalışırsanız, aşağıdaki hatayı alırsınız:

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

PECL_HTTP uzantısının kurulması için ek bir bağımlılık paketi gerekir. Muhtemelen bunu diğer uzantılar için atlayabilirsiniz:

sudo apt-get install libcurl3-openssl-dev

Şimdi nihayet uzatma yüklemek için hazırız. Bir kabuk isteminde aşağıdakini girin, ancak yüklediğiniz PECL uzantısı adıyla “pecl_http” yazın:

sudo pecl install pecl_http

Yükleyici, yüklediğiniz uzantı için bazı özel seçenekler hakkında soru sorabilir. Uygulamanız için özel seçenekler belirlemek istemiyorsanız, tüm varsayılanları kabul etmek için bir veya daha fazla kez girmeniz yeterli olabilir. Her şey yolunda giderse, modül indirmeli, oluşturmalı ve kurmalıdır.

Kurulum tamamlandıktan sonra, büyük olasılıkla php.ini dosyanıza bir “extension =” satırı eklemenizi isteyecektir. Php.ini dosyasını en sevdiğiniz metin editöründe açın ve “Dynamic Extensions” etiketli bölümün altına bir satır ekleyin. Ubuntu'da php.ini dosyası / etc / php5 / apache2 klasöründe bulunuyor gibi görünüyor:

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

Bu örnekte, pecl_http uzantılı kurulum benden “extension = http.so” eklememi istedi. Şimdi php.ini dosyası güncellendiğinde, Apache'nin yeniden başlatılması gerekecek, böylece yeni uzantı yüklenecek:

sudo /etc/init.d/apache2 restart 

kaynak


bunlar aynen takip ettiğim adımların aynısıydı (aynı kaynaktan) hala neşe duymuyorlar: / sadece pencerelerde bulunmayan bazı uzantılar için Ubuntu'ya taşındım ancak bu çok kafa karıştırıcı çünkü bu konuda yeniyim.
maniteja

1
LÜTFEN DİKKAT: Bunu makeyapmadan önce yüklemeniz gerekebilir . Basitçe yapınsudo apt-get install make
Tomanow

5
PHP7 kullanıyorsanız, php7.0-devbunun yerine paketi istersiniz :sudo apt-get install php7.0-dev
Graham Swan

4

@ Ask'ın cevabına ek olarak ayrıca yapmam gerekenler:

sudo apt-get install libpcre3-dev

çalıştırmadan önce pecl install pecl_httpçünkü bu hatayı alıyordum pcre.h:

önemli hata: pcre.h: Böyle bir dosya veya dizin derlemesi sonlandırılmadı.

Ayrıca, yerine düzenleme php.inidosyayı aradım yeni bir dosya oluşturdu pecl-http.iniiçinde conf.dnerede alt dizini php.inidosyası oldu (ubuntu /etc/php5/apache2/conf.d)

Ve üç satırda eklemem gerekiyordu:

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

Son olarak, bu yüklü sürüm 2.0.6olduğundan http_get_request_headersişlevi kullanamadım ancak bunun yerine ad alanını kullanmak için gerekli, \http\Env::getRequestHeader() burada daha fazla ayrıntı görün

ps: İşin bitince (apache yeniden unutmayın service apache2 restart)


İyi arama; keşke libcre-dev'i aramaya çıkmadan önce cevabını okuyabilseydim. Ayrıca, benim durumumda , dosyaya önceden eklenmiş olmasına rağmen satırdan extension=json.soönce eklemek zorunda olduğumu da eklemeliyim . http.sojson.iniconf.d
M1ke

1

Maythux ve cwd'nin yanıtlarına ek olarak, php.ini dosyanızı düzenlemek istemeyebilirsiniz, çünkü bu değişiklikler güncellemelerde kaybolabilir.

Debian (ve böylece Ubuntu) php modüllerini apache modülleri gibi kullanır. Bir göz atın /etc/php5, bunun gibi dizinleri bulacaksınız:

apache2/
cli/
mods-available/

İçine mods-availablebaktığınızda gibi birkaç dosya görürsünüz:

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

Tüm API'ler için bu apaçık modları etkinleştirmek / devre dışı bırakmak için (apache, cli, cgi) komutları php5enmodveya php5dismodbenzerlerini kullanabilirsiniz :

$ sudo php5enmod curl

sırasıyla

$ sudo php5dismod curl

Bunlar modül yapılandırma dosyaya sembolik bağlantılar oluşturmak (veya kaldırmak) olur apache2/conf.d/ve cli/conf.d/.

Ayrıca modunu etkinleştirmek / devre dışı bırakmak için sapi belirtebilirsiniz (bu durumda apache):

$ sudo php5enmod -s apache2

pecl installraphf(ve onunla birlikte yüklenen diğer modüller için) bir yapılandırma dosyası oluşturmayabilir, ancak kendi başınıza oluşturabilirsiniz:

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

Sonra aşağıdaki satırlara yazın:

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

Varsayılan öncelik 20'dir. Hangi önceliği kullanmanız gerektiği modülün tipine bağlı olabilir. İçin raphf20 ceza görünüyor. ( Güncelleme : Sürüm 2 itibariyle, pecl_http arıyorsanız o sonra yüklenecek olan rapfhve proprobu yüzden öncelik ayarlamak mods-available/http.iniiçin 30.)

Bununla modülü etkinleştirebilirsiniz:

$ sudo php5enmod raphf

(Not: Cevabım Ubuntu 14.04'e bağlı, ancak 13.04 için eşit şekilde çalışabilir, bkz. Http://www.lornajane.net/posts/2012/managing-php-5-4-extensions-on-ubuntu )


1

Günümüzde, PEAR'ı bu şekilde yükleyin, kaynaktan almak için:

wget http://pear.php.net/go-pear.phar
php go-pear.phar
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.