Cara Memasang Pelbagai Versi PHP dengan Nginx di Ubuntu 18.04 & 16.04

Cara Memasang Pelbagai Versi PHP dengan Nginx di Ubuntu 18.04 & 16.04

Umumnya, pengurus hosting web menggunakan pelayan berasingan untuk setiap penggunaan aplikasi versi php. Yang meningkatkan kos hosting. Sebagai alternatif, anda boleh menjalankan beberapa bekas Docker untuk pelbagai versi PHP.

Tutorial ini membantu anda dengan pemasangan dan konfigurasi dua virtualhost di pelayan web nginx dengan versi php yang berbeza. 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 nginx seperti yang diperlukan tetapi tutorial ini merangkumi dua sahaja.

Pemasangan 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 Pasang Python-Software-Properties Sudo Add-Aapt-Repository PPA: Ondrej/PHP 

Untuk tutorial ini, saya menggunakan Php 5.6 dan Php 7.2 Untuk mengkonfigurasinya dengan pelayan web nginx. Untuk menggunakan pelbagai versi PHP, kami akan menggunakan php fpm dan fastcgi. Mari pasang pakej berikut pada sistem anda.

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

Anda juga mungkin perlu memasang modul PHP tambahan. Untuk tutorial, hanya pakej di atas yang diperlukan.

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.2-fpm 
  • Disyorkan: Cara Mengaktifkan/Melumpuhkan Modul PHP di Ubuntu

Pemasangan Nginx

Pelayan web nginx adalah pakej boleh didapati di repositori Ubuntu rasmi. Pelancaran Terminal pada sistem anda atau log masuk dengan SSH untuk sistem jauh. Jalankan arahan berikut untuk memasang versi terkini pelayan web nginx.

sudo apt update sudo apt memasang nginx 

Konfigurasi Nginx

Bersedia untuk konfigurasi laman web di pelayan nginx. 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 sudo mkdir/var/www/php72 

Sekarang, buat dan indeks.php mengandungi phpinfo () fungsi.

echo "">/var/www/php56/index.php echo "">/var/www/php72/index.php 

Selepas itu buat blok pelayan untuk kedua -dua laman web di nginx. Versi terbaru Nginx menyimpan fail konfigurasi blok pelayan di bawah/etc/nginx/direktori yang tersedia. Buat fail untuk hos maya pertama dan edit dalam editor teks kegemaran anda.

sudo vim/etc/nginx/sites-tersedia/php56.Contoh.com 

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.

# Permohonan dengan Php 5.6 # Server Dengar 80; root/var/www/php56; Indeks indeks.PHP; server_name php56.Contoh.com; Lokasi ~* \.php $  # dengan php-fpm unix socket fastcgi_pass unix:/var/run/php/php5.6-fpm.kaus kaki; termasuk fastcgi_params; fastcgi_param script_filename $ document_root $ fastcgi_script_name; fastcgi_param script_name $ fastcgi_script_name;  

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

sudo vim/etc/nginx/sites-tersedia/php72.Contoh.com 

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

# Permohonan dengan Php 7.2 # Server Dengar 80; root/var/www/php72; Indeks indeks.PHP; server_name Php72.Contoh.com; Lokasi ~* \.php $  # dengan php-fpm unix socket fastcgi_pass unix:/var/run/php/php7.2-fpm.kaus kaki; termasuk fastcgi_params; fastcgi_param script_filename $ document_root $ fastcgi_script_name; fastcgi_param script_name $ fastcgi_script_name;  

Baiklah, anda telah membuat kedua -dua laman web di nginx anda. Tetapi mereka masih tidak aktif. Nginx menyimpan tapak aktif di bawah/etc/nignx/direktori yang dibolehkan tapak. Anda hanya boleh membuat pautan simbolik untuk kedua -dua fail konfigurasi ke direktori ini atau menggunakan arahan di bawah untuk melakukan perkara yang sama.

sudo ln -s/etc/nginx/sites -tersedia/php56.Contoh.com/etc/nginx/enabled sites/sudo ln -s/etc/nginx/sites-available/php72.Contoh.com/etc/nginx/enabled sites/ 

Setelah membuat semua perubahan dimulakan semula Nginx untuk memuatkan semula tetapan baru perubahan.

sudo systemctl mulakan semula nginx.perkhidmatan 

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

Persediaan ujian

Semua selesai. Anda boleh mengakses kedua -dua laman web di penyemak imbas web favirote anda . Anda akan melihatnya Php56.Contoh.com menunjukkan versi Php 5.6 dan Php72.Contoh.com menunjukkan Php 7.2 sebagai konfigurasi.

Tahniah, sistem anda sudah bersedia untuk menjadi tuan rumah laman web dengan versi PHP yang berbeza. Selamat hosting.