Instal paket PECL di ubuntu

32

Saya sudah mencobanya 100 kali saya benar-benar baru di Ubuntu dan diakhiri dengan banyak kesalahan yang bahkan tidak saya mengerti dapatkah ada yang membantu saya ??

Inilah yang saya lakukan:

  1. Saya menginstal PHP
  2. Saya menginstal libcurl kemudian php5-dev
  3. Saya mencoba menginstal ekstensi PECL dan dikatakan PHPIZEtidak ditemukan.
maniteja
sumber
Selamat Datang di Tanya Ubuntu. Bisakah tolong beri kami perintah lengkap yang Anda keluarkan dan pesan kesalahan lengkap. Edit teks pertanyaan Anda untuk menambahkan informasi.
MadMike

Jawaban:

48

Pertama, Anda harus menginstal PEAR via apt-getuntuk mendapatkan paket dan sistem distribusi yang diperlukan baik PEARdan PECLdigunakan. Dari prompt shell, masukkan:

sudo apt-get install php-pear

Anda akan diminta untuk mengonfirmasi pemasangan. Cukup tekan "y" dan masukkan. Jika semuanya berjalan dengan baik Anda akan melihatnya mengunduh dan menginstal paket php-pear.

Sekarang Anda perlu menginstal paket php5-dev untuk mendapatkan file sumber PHP5 yang diperlukan untuk mengkompilasi modul tambahan. Masukkan yang berikut dari prompt shell:

sudo apt-get install php5-dev

Jika Anda tidak menginstal paket php5-dev dan mencoba menginstal ekstensi PECL menggunakan "pear install", Anda akan mendapatkan kesalahan berikut:

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

Ekstensi PECL_HTTP membutuhkan paket ketergantungan tambahan yang harus diinstal. Anda mungkin dapat melewati ini untuk ekstensi lain:

sudo apt-get install libcurl3-openssl-dev

Sekarang kita akhirnya benar-benar siap untuk menginstal ekstensi. Dari prompt shell masukkan berikut tetapi gantilah "pecl_http" dengan nama ekstensi PECL yang Anda pasang:

sudo pecl install pecl_http

Pemasang mungkin bertanya kepada Anda tentang beberapa opsi spesifik untuk ekstensi yang Anda pasang. Anda mungkin dapat menekan enter satu kali atau lebih untuk menerima semua default kecuali Anda ingin mengatur opsi spesifik untuk implementasi Anda. Jika semuanya berjalan dengan baik, modul harus mengunduh, membangun, dan menginstal.

Setelah instalasi selesai, ia mungkin akan meminta Anda untuk menambahkan baris "extension =" ke file php.ini Anda. Buka file php.ini di editor teks favorit Anda dan tambahkan baris di bawah bagian berlabel "Dynamic Extensions". Pada Ubuntu, file php.ini tampaknya berada di folder / etc / php5 / apache2:

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

Dalam contoh ini, instalasi ekstensi pecl_http meminta saya untuk menambahkan "extension = http.so". Sekarang file php.ini telah diperbarui, Apache perlu direstart sehingga ekstensi baru akan dimuat:

sudo /etc/init.d/apache2 restart 

sumber

Maythux
sumber
ini adalah langkah yang sama saya ikuti persis (dari sumber yang sama) masih tidak ada sukacita: / saya pindah ke Ubuntu hanya untuk beberapa ekstensi yang tidak tersedia di windows tapi ini sangat membingungkan karena saya baru dalam hal ini.
maniteja
1
HARAP DICATAT: Anda mungkin perlu menginstal makesebelum melakukan ini. Cukup lakukansudo apt-get install make
Tomanow
5
Jika Anda menggunakan PHP7, Anda akan menginginkan php7.0-devpaketnya sebagai gantinya:sudo apt-get install php7.0-dev
Graham Swan
4

Selain jawaban @ Ask saya juga perlu melakukan:

sudo apt-get install libpcre3-dev

sebelum menjalankan pecl install pecl_httpkarena saya mendapatkan kesalahan ini tentang pcre.h:

kesalahan fatal: pcre.h: Tidak ada kompilasi file atau direktori tersebut dihentikan.

Juga, alih-alih mengedit php.inifile saya membuat file baru yang disebut pecl-http.inidi conf.dsubdirektori di mana php.inifile itu, (di ubuntu /etc/php5/apache2/conf.d)

Dan saya perlu menambahkan dalam tiga baris:

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

Akhirnya, karena versi yang diinstal ini 2.0.6saya tidak dapat menggunakan http_get_request_headersfungsi tetapi perlu menggunakan versi namespaced, \http\Env::getRequestHeader() lihat detail lebih lanjut di sini

ps: jangan lupa untuk me-restart apache ketika Anda selesai ( service apache2 restart)

cwd
sumber
Panggilan yang bagus; Seandainya saya membaca jawaban Anda sebelum saya pergi berburu libcre-dev. Saya juga harus menambahkan bahwa dalam kasus saya , saya perlu menambahkan extension=json.sosebelum http.sobaris meskipun sudah memiliki json.inifile yang disertakan conf.d.
M1ke
1

Selain jawaban Maythux dan cwd, Anda mungkin tidak ingin mengedit file php.ini Anda karena perubahan ini mungkin hilang pada pembaruan.

Debian (dan dengan demikian Ubuntu) menangani modul php dengan cara yang sama seperti modul apache. Lihatlah /etc/php5, Anda akan menemukan direktori seperti ini:

apache2/
cli/
mods-available/

Ketika Anda melihat ke dalam, mods-availableAnda melihat beberapa file seperti:

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

Untuk mengaktifkan / menonaktifkan mod yang tersedia ini untuk semua API (apache, cli, cgi) Anda bisa menggunakan perintah php5enmodatau php5dismodseperti itu:

$ sudo php5enmod curl

masing-masing

$ sudo php5dismod curl

Ini akan membuat (atau menghapus) tautan simbolis ke file konfigurasi modul di apache2/conf.d/dan cli/conf.d/.

Anda juga dapat menentukan sapi untuk mengaktifkan / menonaktifkan mod untuk (apache dalam kasus ini):

$ sudo php5enmod -s apache2

pecl installmungkin tidak membuat file konfigurasi untuk raphf(dan modul lain yang terpasang dengannya) tetapi Anda dapat membuatnya sendiri:

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

Kemudian tulis di baris berikut:

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

Prioritas default adalah 20. Mungkin tergantung pada jenis modul yang prioritas Anda harus gunakan. Untuk raphf20 sepertinya baik-baik saja. ( Perbarui : jika Anda sedang mencari pecl_http, sebagai versi 2 telah dimuat setelah rapfhdan propro, sehingga menetapkan prioritas dalam mods-available/http.iniuntuk 30.)

Dengan itu Anda dapat mengaktifkan modul:

$ sudo php5enmod raphf

(Catatan: jawaban saya bergantung pada Ubuntu 14.04 tetapi mungkin bekerja dengan cara yang sama untuk 13.04, lihat http://www.lornajane.net/posts/2012/managing-php-5-4-extensions-on-ubuntu )

David
sumber
1

Sekarang, instal PEAR dengan cara ini, untuk mendapatkannya dari sumber:

wget http://pear.php.net/go-pear.phar
php go-pear.phar
Anuga
sumber