Sama seperti skrip dari "Growling Flea", tetapi menggunakan versi baru.
Tambahkan PPA
Paket PHP 5.6 dan PHP 7.0 berasal dari PPA pihak ketiga, tidak disediakan oleh repositori Ubuntu resmi dari Canonical. PPA yang saya rekomendasikan di sini adalah dari Ondřej Surý yang memaketkan PHP untuk Debian (yang kemudian digunakan oleh Ubuntu) jadi meskipun ini bukan repositori resmi, dia tidak sepenuhnya acak! PPA itu sendiri ada
di sini
Untuk menambahkan PPA ke pengaturan Anda:
sudo add-apt-repository ppa:ondrej/php
Maka kami juga ingin mengambil informasi tentang apa yang ditawarkan dari PPA baru ini, jadi jalankan:
sudo apt-get update
Instal versi PHP baru
Saya sudah memiliki beberapa paket php5 yang diinstal, tetapi saya tidak menghapus instalasi apa pun, saya hanya membiarkan pekerjaan apa yang ingin dilakukan ketika saya memintanya untuk menginstal versi baru:
sudo apt-get install php5.6 php7.0
Hal ini mengakibatkan banyak keluhan dari apt dan banyak konflik. Resolusi yang disarankan pertama adalah untuk menghapus semua paket stok php5 sehingga PHP 5.6 dapat diinstal - jadi saya hanya menerima saran pertama.
Saya menggunakan apache sehingga pengaturan ini memberi saya apache dengan modul php5.6 dan php7.0 tersedia, dan modul php5.6 benar-benar dimuat.
Selain hanya PHP itu sendiri, semua ekstensi dan alat lain yang Anda harapkan dengan PHP ada untuk kedua versi PHP sehingga sangat mudah untuk menambahkan dalam modul yang Anda butuhkan. Saya sangat, sangat terkesan dengan betapa baiknya hal ini dilakukan.
Mengkonfigurasi dan beralih versi
Sekarang Anda memiliki dua versi PHP yang sepenuhnya terpisah yang diinstal pada sistem Anda, jadi mari kita lihat ke mana perginya semua bagian itu!
File konfigurasi semuanya ada di dalam /etc/php/5.6
dan /etc/php/7.0
masing-masing - di dalam sini adalah tempat Anda dapat mengonfigurasi ekstensi mana yang dimuat, mengatur pengaturan ini, dan segala sesuatu lainnya untuk setiap versi secara terpisah.
Saya pengguna apache, dan seperti yang saya sebutkan kedua modul tersedia. Jadi untuk beralih dari satu ke yang lain yang perlu saya lakukan:
sudo a2dismod php5.6
sudo a2enmod php7.0
sudo service apache2 restart
Untuk pengguna nginx, perubahannya hampir sama mudahnya, Digital Ocean memiliki dokumentasi yang bagus mengenai hal ini (mereka memang memiliki dokumen hebat!) Jadi lihat panduan mereka:
https://www.digitalocean.com/community/tutorials/how-to- upgrade-ke-php-7-on-ubuntu-14-04
karena termasuk bagian tentang mengkonfigurasi ulang nginx untuk menggunakan versi lain dari PHP.
Dari baris perintah, saya memiliki php5.6 dan php7.0 tersedia sebagai perintah. Saya juga masih memiliki perintah php - lihat di / etc / alternatif untuk melihat bahwa itu terkait dengan versi tertentu dari PHP cli *. Anda juga dapat dengan cepat memeriksa mana yang Anda gunakan dengan menjalankan php -v
.
* lebih khusus, jalankan php mana untuk melihat versi PHP mana yang sedang digunakan - tetapi ini mungkin akan mengarah ke /usr/bin/php
, yang bagi saya itu sendiri merupakan symlink ke /etc/alternatives/php
perintah.
Bekerja dengan ekstensi
PPA ini dilengkapi dengan paket php-pear biasa yang menawarkan perintah pecl untuk kedua versi PHP, sehingga setiap ekstensi yang tersedia melalui PECL dapat diinstal dengan cara biasa. Anda juga akan membutuhkan tajuk yang relevan sehingga php5.6-dev atau php7.0-dev harus diinstal.
Ketika instalasi pecl selesai, Anda akan mendapatkan catatan untuk menambahkan file * .so ke php.ini Anda; sebenarnya hal terbaik untuk dilakukan di sini adalah melihat apa yang ada di dalamnya /etc/php/mods-available
. Akan ada beberapa modul di sini, masing-masing dalam file sendiri dinamai ekstensi dan berakhiran .ini. Anda dapat menyalin satu untuk digunakan sebagai templat atau membuat milik Anda dan meletakkan semua konfigurasi yang relevan untuk ekstensi di dalamnya (minimal, Anda perlu extension=[extensionName].so
).
Setelah ekstensi baru tersedia dalam mod, aktifkan kemudian periksa dengan melakukan:
sudo phpenmod extension
php -m
Ini akan membuat symlink di tempat yang tepat untuk versi PHP Anda saat ini untuk memuat modul ini, dan Anda akan melihatnya di daftar modul keluaran oleh php -m
. Pro tip: jika Anda tidak melihatnya di output, gulirkan semua ke bagian atas output dan lihat apakah ada pesan kesalahan yang berguna di sana.