Tidak dapat menginstal php5 di Ubuntu 16.04

53

jadi saya baru-baru ini menginstal Ubuntu pertama saya, tepatnya, build harian 16,04, di laptop baru saya karena perangkat kerasnya baru 15,10. Sekarang saya sedang dalam proses pengaturannya dan saya ingin menginstal php5 dan beberapa ekstensi.

Ketika saya mengeksekusi sudo apt-get install libapache2-mod-php5saya mendapatkan pesan kesalahan bahwa tidak ada paket instalasi yang tersedia untuk php5 dan libapache2.

Pesan kesalahannya adalah dalam bahasa Jerman, jadi saya ragu bahwa ini akan membantu, tapi bagaimanapun juga ini. :-) E: For package »libapache2-mod-php5« existiert kein Installationskandidat.

Apakah saya perlu menambahkan repositori apt-get? Atau apa yang saya lakukan salah?

pengguna529857
sumber

Jawaban:

76

TL; DR: Jika Anda ingin tetap menggunakan php5, Anda harus tetap di Ubuntu 14.04 LTS

Menggunakan PHP 7.0 di Ubuntu 16.04 LTS

Ubuntu 16.04 telah beralih ke PHP 7.0 dengan infrastruktur baru untuk paket PHP. Jadi, tidak, Anda tidak dapat menginstal php5 di Ubuntu 16.04, tetapi Anda dapat menginstal paket PHP 7.0 dengan:

apt-get install libapache2-mod-php

Itu akan menginstal paket virtual yang bergantung pada versi PHP terbaru dan menariknya libapache2-mod-php7.0sebagai ketergantungan.

Jika Anda mencari ekstensi, selalu gunakan juga varian versi-kurang (mis. php-apcuAlih-alih php7.0-apcu) karena ekstensi PECL dikemas tanpa versi untuk memungkinkan peningkatan yang mulus.

Menggunakan PHP PPA untuk menginstal PHP 5.6 dengan PHP 7.0

Ada opsi untuk menginstal bersama paket-paket PHP 5.6 menggunakan ppa:ondrej/php.

Untuk informasi lebih lanjut, silakan lihat jawaban itu: https://askubuntu.com/a/762161/309221

Diambil dari tautan di atas:

Dengan asumsi libapache2-mod-phpadalah cara yang sesuai untuk mengaktifkan PHP di Apache untuk Anda, Anda dapat melanjutkan dengan cara ini:

sudo add-apt-repository ppa:ondrej/php

sudo apt-get update

sudo apt-get install php7.0 php5.6 php5.6-mysql php-gettext php5.6-mbstring php-xdebug libapache2-mod-php5.6 libapache2-mod-php7.0

Ganti versi PHP (Apache):

  • dari php5.6 ke php7.0:
    sudo a2dismod php5.6 ; sudo a2enmod php7.0 ; sudo service apache2 restart

  • dari php7.0 ke php5.6:
    sudo a2dismod php7.0 ; sudo a2enmod php5.6 ; sudo service apache2 restart

oerdnj
sumber
2
Tidak, tidak ada paket PHP 5.x di repositori Xenial. Hanya di PPA.
oerdnj
Ketika saya beralih ke php5.6, saya mendapat kesalahan "Pekerjaan untuk apache2.service gagal karena proses kontrol keluar dengan kode kesalahan. Lihat" systemctl status apache2.service "dan" journalctl -xe "untuk detail.".
lyhong
Dan apa yang dikatakan jurnal itu?
oerdnj
menemukan sesuatu seperti apache2 ini: Kesalahan sintaks pada baris 140 dari /etc/apache2/apache2.conf: Kesalahan sintaks pada baris 3 dari / e
lyhong
25

EDIT: jawaban yang diterima tidak secara eksplisit mengatakan bagaimana menginstal bersama PHP 5.6 dan 7.0, jadi saya ingin memperpanjangnya.

Untuk informasi lebih lanjut, silakan lihat jawaban itu: https://askubuntu.com/a/762161/309221

Diambil dari tautan di atas:

Dengan asumsi libapache2-mod-phpadalah cara yang sesuai untuk mengaktifkan PHP di Apache untuk Anda, Anda dapat melanjutkan dengan cara ini:

sudo add-apt-repository ppa:ondrej/php

sudo apt-get update

sudo apt-get install php7.0 php5.6 php5.6-mysql php-gettext php5.6-mbstring php-xdebug libapache2-mod-php5.6 libapache2-mod-php7.0

Ganti versi PHP (Apache):

  • dari php5.6 ke php7.0:
    sudo a2dismod php5.6 ; sudo a2enmod php7.0 ; sudo service apache2 restart

  • dari php7.0 ke php5.6:
    sudo a2dismod php7.0 ; sudo a2enmod php5.6 ; sudo service apache2 restart

FlavioEscobar
sumber
1
FYI: PPA yang Anda gunakan dikelola oleh orang yang menulis jawaban yang diterima. Dan baris terakhir dalam jawaban itu: "Ada opsi untuk menginstal bersama paket-paket PHP 5.6 menggunakan ppa: ondrej / php". Perhatikan bahwa Anda juga tidak menginstal paket php5, tetapi php5.6
muru
1
Ada sejumlah perbedaan dalam pengemasan dan lokasi file konfigurasi sehingga siapa pun yang mencari paket php5 lama akan terkejut dengan yang baru.
muru
Saya telah mengedit jawaban saya sehingga tidak mengatakan bahwa jawaban yang diterima salah, tetapi hanya diperluas.
FlavioEscobar
@NoBugs Itu memang memiliki ekstensi imagick dikemas. Tolong berhenti memuntahkan sesuatu tanpa setidaknya pemeriksaan dasar apakah itu benar atau tidak.
oerdnj
@ FlavioEscobar Saya telah menggabungkan hasil edit Anda ke dalam jawaban saya. Terima kasih telah memperluas jawabannya.
oerdnj