GNU/Linux >> Belajar Linux >  >> Linux

Jalankan beberapa versi PHP untuk domain yang berbeda di NGNIX

Saya baru-baru ini membeli plugin EduExpression WordPress untuk klien untuk menyiapkan perangkat lunak pemeriksaan. Saya dapat menginstal dan mengkonfigurasi plugin tanpa banyak masalah. Namun, masalah mulai terjadi saat login siswa diakses – halaman plugin menjadi kosong saat siswa mencoba mengikuti ujian. Nah, saya punya dukungan kan? Saya menghubungi tim dukungan dan mereka berkata, plugin tidak bekerja dengan PHP 7.1 dan hanya mendukung PHP 5.6. Itu kesalahan saya – karena saya telah menyiapkan server saya dengan PHP 7.1 dan semua situs web klien saya berjalan di PHP 7.1. Sekarang untuk membuat EduExpression berfungsi, saya perlu mengatur versi PHP 5.6. Menurunkan versi PHP bukanlah pilihan yang baik, tetapi saya harus melakukan ini agar plugin ini berfungsi untuk klien. Jadi bagaimana mengatur PHP 5.6 hanya untuk domain tertentu dan membiarkan sisanya berjalan di PHP 7.1. Nah, dalam tutorial ini saya akan menjelaskan cara mengatur beberapa versi lingkungan PHP dan menautkan versi PHP tertentu dengan domain tertentu di NGINX.

Lingkungan

OS:CentOS 7, WebServer:Nginx, PHP:v7.1(Default), PHP FastCGI:PHP-FPM

Catatan:Lingkungan di atas sudah disiapkan dan berhasil dijalankan.

Langkah 1 :Menginstal beberapa versi PHP yaitu., PHPv5.6 bersama dengan PHP7.1

Disini saya menggunakan yum perintah untuk menginstal beberapa versi PHP bersama dengan modul yang diperlukan seperti yang ditunjukkan di bawah ini:

Menginstal versi PHP5.6

# yum install php56 php56-php-common php56-php-mysql php56-php-pecl-memcache php56-php-pecl-memcached php56-php-gd php56-php-mbstring php56-php-mcrypt php56-php-xml php56-php-pecl-apc php56-php-cli php56-php-pear php56-php-pdo

Instal PHP-FPM untuk PHP versi 5.6

PHP di Nginx bekerja melalui PHP-FPM (FastCGI Process manager). PHP-FPM adalah implementasi PHP FastCGI alternatif dengan beberapa fitur tambahan yang berguna untuk situs dari berbagai ukuran, terutama situs yang lebih sibuk.

# yum install php56-php-fpm

Yah, kami telah menginstal PHP 5.6, tetapi kami harus memastikan versi default PHP masih 7.1.

# php -v
PHP 7.1.22 (cli) (built: Sep 12 2018 07:22:13) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2018 Zend Technologies
 with Zend OPcache v7.1.22, Copyright (c) 1999-2018, by Zend Technologies

Konfigurasi PHP-FPM dan PHP56-PHP-FPM

Bagian terpenting dari tutorial ini adalah mengkonfigurasi dua PHP-FPM yang berbeda untuk dua versi PHP. Di sini kita akan mengonfigurasi dua versi PHP-FPM yang berbeda yang akan digunakan Nginx. Hal utama selama konfigurasi adalah pengguna/grup proses FastCGI dan port yang mereka dengarkan.

File konfigurasi PHP-FPM (Default 7.1)

/etc/php-fpm.d/www.conf

Pastikan pengguna/grup disetel ke nginx (Nilai default adalah apache).

user = nginx
group = nginx

Temukan parameter pendengar dan setel ke port 9000 tempat permintaan FastCGI akan diterima.

listen = 127.0.0.1:9000	[php-fpm]
File konfigurasi PHP56-PHP-FPM

/opt/remi/php56/root/etc/php-fpm.d/www.conf

Pastikan pengguna/grup mengatur nginx (Nilai default adalah apache).

user = nginx
group = nginx

Temukan parameter listen dan setel ke port 9001 tempat permintaan FastCGI akan diterima.

listen = 127.0.0.1:9001	[php56-php-fpm]

Aktifkan PHP-FPM, PHP56-PHP-FPM dan NGINX mulai otomatis saat boot sistem pada CentOS 7

Setelah menyelesaikan konfigurasi di atas, Anda harus mengaktifkan PHP-FPM, PHP56-PHP-FPM dan Nginx untuk memulai otomatis saat boot sistem.

# systemctl enable nginx

# systemctl enable php-fpm

# systemctl enable php56-php-fpm
Matikan SELinux

#sudo setenforce 0

Konfigurasikan domain dengan PHP-FPM yang sesuai untuk eksekusi PHP

Buka file konfigurasi domain Nginx yang sesuai (/etc/nginx/conf.d/ ) dan cari baris fastcgi_pass dan ubah sesuai untuk menautkan versi PHP yang benar yang harus dijalankannya.

File konfigurasi Nginx Domain 1:/etc/nginx/conf.d/example1.conf

server {
 listen :80;
 server_name example1.com;
 server_name www.example1.com;

 root /home/example1/public_html;
 index index.php index.html index.htm;

 location / {
      try_files $uri $uri/ /index.php?q=$uri$args;
 }
 location ~ \.php$ {
      try_files $uri =404;
      fastcgi_pass 127.0.0.1:9000;
      fastcgi_index index.php;
      fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
      fastcgi_param SCRIPT_NAME $fastcgi_script_name;
      include fastcgi_params;
 }
}

File konfigurasi Nginx domain 2: /etc/nginx/conf.d/example2.conf

server {
 listen :80;
 server_name example2.com;
 server_name www.example2.com;

 root /home/example2/public_html;
 index index.php index.html index.htm;

 location / {
       try_files $uri $uri/ /index.php?q=$uri$args;
 }
 location ~ \.php$ {
       try_files $uri =404;
       fastcgi_pass 127.0.0.1:9001;
       fastcgi_index index.php;
       fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
       fastcgi_param SCRIPT_NAME $fastcgi_script_name;
       include fastcgi_params;
 }
}

Periksa file konfigurasi Nginx apakah ada kesalahan sintaks sebelum memulai ulang Nginx

# nginx -t

Mulai ulang Nginx, PHP-fpm, PHp56-PHP-FPM

# systemctrl restart nginx, php-fpm php56-php-fpm

Uji versi PHP yang berbeda untuk domain yang berbeda

Buat phpinfo yang berbeda file di bawah dua direktori root domain yang berbeda

# echo "<?php phpinfo(); ?>" > /home/example1/public_html/info.php

# echo "<?php phpinfo(); ?>" > /home/example2/public_html/info.php

Sekarang buka info.php di browser untuk memverifikasi example1.com menggunakan PHP 7.1 dan example2.com menggunakan PHP 5.6.

http://example1.com/info.php

http://example2.com/info.php

Itu dia! Saya baru saja menerapkan plugin EduExpression di example2.com yang berjalan di PHP 5.6.


Linux
  1. Mengonfigurasi Apache untuk Magento untuk menampilkan Tampilan Toko yang berbeda dari URL/Domain yang berbeda.

  2. Buat lingkungan virtual untuk versi Python yang berbeda menggunakan Conda

  3. Cara mengatur subdomain atau meng-host beberapa domain menggunakan nginx di server linux

  1. Beberapa Versi PHP di plesk

  2. apt-get install untuk versi python yang berbeda

  3. Gunakan versi PHP CLI yang berbeda yang dapat dieksekusi untuk satu perintah

  1. Bagaimana cara memilih versi PHP yang berbeda untuk situs web saya?

  2. Bagaimana Cara Menjalankan Beberapa versi PHP dengan Nginx di Ubuntu?

  3. Bagaimana cara menjalankan beberapa proses Tor sekaligus dengan IP keluar yang berbeda?