Cara mengkonfigurasi pelbagai versi PHP dengan Apache di Ubuntu

Cara mengkonfigurasi pelbagai versi PHP dengan Apache di Ubuntu

Umumnya, pengurus tuan rumah menggunakan pelayan berasingan untuk setiap penggunaan aplikasi versi php. Yang meningkatkan kos hosting. Beberapa pengurus tuan rumah menggunakan Docker untuk menjalankan pelbagai versi PHP pada satu pelayan. 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 22.04, 20.04, dan 18.04 sistem LTS 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 8.1 dan VirtualHost lain akan berjalan dengan Php 7.4. 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 apache2

Pasang pelayan web Apache dari repositori rasmi. Pelancaran Terminal pada sistem anda atau log masuk dengan SSH untuk sistem jauh. Jalankan arahan berikut untuk memasang versi terbaru Apache Webserver.

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

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 

Memasang versi PHP

Untuk pemasangan versi PHP, kami menggunakan PPA yang dikekalkan di sini. 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 8.1 dan php 7.4 Untuk mengkonfigurasi dengan webserver Apache. Untuk menggunakan pelbagai versi PHP, kami akan menggunakan php fpm dan fastcgi. Mari pasang pakej berikut pada sistem anda.

sudo apt update sudo apt memasang php8.1 Php8.1-fpm sudo apt memasang php7.4 Php7.4-fpm 

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

Status Sudo Systemctl Php8.1-fpm Sudo Systemctl Status Php7.4-fpm 
  • Anda mungkin suka: bagaimana untuk membolehkan/melumpuhkan modul PHP di Ubuntu

Mengkonfigurasi tuan rumah maya Apache

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/php81 sudo mkdir/var/www/php74 

Buat indeks.fail php yang mengandungi phpinfo () fungsi.

echo "" | sudo tee -a/var/www/php81/index.php echo "" | sudo tee -a/var/www/php74/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/php81.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 8.1.

ServerName Php81.Contoh.com Documentroot/var/www/php81 Options -Indexes +Followsymlinks +Multiviews Allowoverride Semua memerlukan semua yang diberikan # Apache 2.4.10+ boleh proksi ke soket unix Sethandler "Proksi: Unix:/var/run/php/php8.1-fpm.Sock | fcgi: // localhost "
12345678910111213 ServerName Php81.Contoh.com dokumen/var/www/php81 Pilihan -Indexes +berikut # Apache 2.4.10+ boleh proksi ke soket unix Sethandler "Proksi: Unix:/var/run/php/php8.1-fpm.Sock | fcgi: // localhost "

Begitu juga, buat fail konfigurasi VirtualHost kedua untuk berfungsi dengan Php 7.4. 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 Php74.Contoh.COM Documentroot/VAR/WWW/PHP74 OPTION -Indexes +Followsymlinks +Multiviews AllowOverRide Semua memerlukan semua yang diberikan Sethandler "Proxy: UNIX:/VAR/RUN/PHP7.4-fpm.Sock | fcgi: // localhost "
123456789101112 ServerName Php74.Contoh.com dokumen/var/www/php74 Pilihan -Indexes +berikut Sethandler "Proxy: Unix:/var/run/php/php7.4-fpm.Sock | fcgi: // localhost "

Kedua -dua laman web ini 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 php81.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.

Persediaan ujian

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

sudo vim /etc /hosts 

Tambahkan entri berikut ke akhir fail

127.0.0.1 Php81.Contoh.com 127.0.0.1 Php74.Contoh.com 

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

  • http: // php81.Contoh.com
    Php 8.1 dengan Apache
  • http: // php74.Contoh.com
    Php 7.4 dengan Apache

Kesimpulan

Tutorial ini membantu anda memasang dan mengkonfigurasi pelbagai versi PHP dengan Apache pada sistem Ubuntu Linux. Yang memberikan anda penyelesaian kos efektif untuk menggunakan aplikasi versi PHP yang berbeza pada pelayan web tunggal.