Cara Memasang Pelbagai Versi PHP dengan Apache di Ubuntu 20.04

Cara Memasang Pelbagai Versi PHP dengan Apache di Ubuntu 20.04

Umumnya, pengurus tuan rumah menggunakan pelayan berasingan untuk setiap penggunaan aplikasi versi php. Yang meningkatkan kos hosting. Sebilangan pengurus tuan rumah menggunakan Docker untuk menjalankan pelbagai versi PHP di pelayan tunggal. Juga, kebanyakan anda menyedari konfigurasi, saya gunakan dalam tutorial ini. Tetapi beberapa pentadbir sistem tidak menyedari perkara ini. Tutorial ini akan membantu anda memasang pelbagai versi PHP dengan Apache di Ubuntu 20.04 Sistem Linux tanpa menukar versi PHP.

Tutorial ini menerangkan pemasangan dan konfigurasi dua virtualhost di Apache dengan versi PHP yang berasingan. Virtualhost pertama akan berfungsi dengan Php 5.6 dan VirtualHost lain akan berjalan dengan Php 7.2. Jadi hanya melalui tutorial ini. Anda juga boleh menggunakan lebih daripada dua versi PHP dengan Apache seperti yang diperlukan tetapi tutorial ini merangkumi dua sahaja.

Memasang Apache

Pakej Pelayan Web Apache boleh didapati di bawah repositori lalai. Buka terminal pada sistem Ubuntu anda, kemudian laksanakan arahan berikut untuk memasang versi terbaru pelayan web Apache yang tersedia.

sudo apt update sudo apt memasang apache2 libapache2-mod-fcgid 

Memasang PHP

PPA dikekalkan untuk pemasangan PHP di sistem Ubuntu sejak bertahun -tahun. Anda hanya perlu menambah PPA ke sistem anda untuk memasang pakej. Gunakan beberapa arahan di bawah untuk menambah PPA ke sistem anda.

sudo apt pemasangan perisian-properties-properties sudo add-apt-repository PPA: ondrej/php 

Untuk tutorial ini, kami menggunakan Php 5.6 dan Php 7.4 Untuk mengkonfigurasi dengan pelayan web Apache. Untuk menggunakan pelbagai versi PHP, kami akan menggunakan php fpm dan fastcgi. Mari pasang pakej berikut pada sistem anda.

Sudo Apt Update -y Sudo Apt Pasang Php5.6 Php5.6 -fpm -y sudo apt memasang php7.4 Php7.4 -fpm -y 

Selepas pemasangan, perkhidmatan php-fpm akan dimulakan secara automatik. Gunakan arahan berikut untuk memastikan kedua -dua perkhidmatan sedang berjalan.

Status Sudo Systemctl Php5.6-fpm Sudo Systemctl Status Php7.4-fpm 
  • Disyorkan: Cara Mengaktifkan/Melumpuhkan Modul PHP di Ubuntu

Konfigurasikan Apache dengan pelbagai PHP

Sekarang aktifkan beberapa modul yang diperlukan untuk konfigurasi pelbagai versi PHP dengan Apache. Modul -modul ini diperlukan untuk mengintegrasikan php fpm dan fastcgi dengan pelayan apache.

Tindakan sudo a2enmod fcgid alias proxy_fcgi 

Bersedia untuk konfigurasi laman web di pelayan Apache anda. Untuk tujuan ujian, saya mengkonfigurasi dua laman web untuk bekerja dengan dua versi php yang berbeza-2. Pertama, buat dua direktori di pelayan anda.

sudo mkdir/var/www/php56-app sudo mkdir/var/www/php74-app 

Sekarang, buat dan indeks.PHP yang mengandungi phpinfo (); fungsi.

echo "">/var/www/php56-app/index.php echo "">/var/www/php74-app/index.php 

Mari mulakan penciptaan virtualhost. Apache menyimpan semua fail konfigurasi VirtualHost di bawah/etc/apache2/laman web yang tersedia dengan lanjutan .Conf. Buat fail untuk hos maya pertama dan edit dalam editor teks kegemaran anda.

sudo vim/etc/apache2/tapak-tersedia/php56.Contoh.com.Conf 

Tambahkan kandungan berikut. Pastikan anda menggunakan nama serverven dan laluan direktori yang betul mengikut persediaan anda. Laman web ini dikonfigurasikan untuk berfungsi dengan Php 5.6.

ServerName PhP56.Contoh.com Documentroot/var/www/php56 -app -phing -indexes +followsymlinks +multiviews allowoverride semua memerlukan semua yang diberikan # apache 2.4.10+ boleh proksi ke soket unix Sethandler "Proksi: Unix:/var/run/php/php5.6-fpm.Sock | fcgi: // localhost "
12345678910111213 ServerName PhP56.Contoh.com dokumen/var/www/php56-app Pilihan -Indexes +berikut # Apache 2.4.10+ boleh proksi ke soket unix Sethandler "Proksi: Unix:/var/run/php/php5.6-fpm.Sock | fcgi: // localhost "

Begitu juga, buat fail konfigurasi VirtualHost kedua untuk berfungsi dengan Php 7.2. Edit fail konfigurasi dalam editor teks:

sudo vim/etc/apache2/tapak-tersedia/php74.Contoh.com.Conf 

Tambahkan kandungan berikut untuk memfailkan dengan name dan dokumen yang betul.

ServerName Php72.Contoh.COM Documentroot/VAR/WWW/PHP74 -APP OPTION -Indexes +Followsymlinks +Multiviews AllowOverRide Semua memerlukan semua yang diberikan Sethandler "Proxy: UNIX:/VAR/RUN/PHP/PHP7.4-fpm.Sock | fcgi: // localhost "
123456789101112 ServerName Php72.Contoh.com dokumen/var/www/php74-app Pilihan -Indexes +berikut Sethandler "Proxy: Unix:/var/run/php/php7.4-fpm.Sock | fcgi: // localhost "

Anda berdua di laman web dikonfigurasikan sekarang. Tetapi mereka masih tidak aktif. Apache menyimpan tapak aktif di bawah/etc/apache2/direktori yang dibolehkan tapak. Anda hanya boleh membuat pautan simbolik fail konfigurasi ke direktori ini atau menggunakan arahan di bawah untuk melakukan perkara yang sama.

SUDO A2ENSITE PHP56.Contoh.com sudo a2ensite php74.Contoh.com 

Setelah membuat semua perubahan mulakan semula Apache untuk memuatkan semula tetapan baru perubahan.

SURDO SYSTEMCTL Mulakan semula Apache2 

Persediaan anda telah selesai sekarang. Pergi ke langkah seterusnya untuk menguji persediaan anda.

Uji persediaan anda

Edit /etc /hosts fail di sistem tempatan anda dan buat entri seperti di bawah. Ini akan menyelesaikan nama sementara ke alamat IP localhost.

sudo vim /etc /hosts 

Tambahkan entri berikut ke akhir fail

127.0.0.1 Php74.Contoh.com 127.0.0.1 Php56.Contoh.com 

Buka pelayar web dan lawati kedua -dua laman web. Anda akan melihatnya Php56.Contoh.com menunjukkan versi Php 5.6 dan Php74.Contoh.com menunjukkan Php 7.4 sebagai konfigurasi.

http: // php74.Contoh.com:

http: // php56.Contoh.com:

Kesimpulan

Tutorial ini membantu anda menyiapkan laman web berganda dengan versi php yang berbeza-2 pada pelayan Apache tunggal pada Ubuntu 20.04 Sistem.