Cara menjalankan beberapa situs web dengan versi php yang berbeda di nginx

Cara menjalankan beberapa situs web dengan versi php yang berbeda di nginx

Terkadang pengembang PHP ingin membangun dan menjalankan situs web/aplikasi yang berbeda menggunakan berbagai versi PHP di server web yang sama. Sebagai Administrator Sistem Linux, Anda diharuskan mengatur lingkungan di mana Anda dapat menjalankan beberapa situs web menggunakan versi PHP yang berbeda pada satu server web i.e. Nginx.

Dalam tutorial ini, kami akan menjelaskan cara menginstal beberapa versi Php dan konfigurasikan server web Nginx untuk bekerja dengan mereka melalui blok server (host virtual di Apache) di Centos/rhel 7 Distribusi menggunakan Lemp tumpukan.

Baca juga: Pyenv - instal beberapa versi Python untuk proyek tertentu

Nginx penggunaan Php-fpm (berdiri untuk Fastcgi Process Manager), yang merupakan alternatif Php fastcgi Implementasi dengan beberapa fitur tambahan dan berguna untuk situs web yang sangat dimuat.

Pengaturan Lingkungan Pengujian

  1. Server CentOS 7 atau RHEL 7 dengan instalasi minimal.
  2. Server Nginx HTTP.
  3. PHP 7.1 (untuk digunakan sebagai versi default) dan 5.6.
  4. Server basis data Mariadb.
  5. Alamat IP Server: 192.168.56.10.
  6. Situs web: Contoh 1.com Dan Contoh2.com.

Langkah 1: Menginstal dan Mengaktifkan Repositori Epel dan Remi

1. Mulailah pertama dengan menginstal dan mengaktifkan Epel Dan Remi repositori, yang menawarkan versi terbaru dari Php Tumpukan Centos/rhel 7 distribusi.

# yum instal https: // dl.Fedoraproject.org/pub/epel/epel-release-latest-7.Noarch.RPM # YUM Instal http: // rpms.Remirepo.Net/Enterprise/Remi-Release-7.RPM 

2. Selanjutnya instal yum-utils paket, yang memperluas fungsionalitas asli Yum dan menyediakan yum-config-manager perintah, yang digunakan untuk mengaktifkan atau menonaktifkan repositori yum pada sistem.

# yum instal yum-utils 

Catatan: Pada RHEL 7 Anda dapat mengaktifkan saluran opsional untuk beberapa dependensi menggunakan perintah berikut.

# Langganan-Manager Repos --enable = rhel-7-server-opsional-rpms 

Langkah 2: Menginstal server web nginx

3. Untuk menginstal versi terbaru NginX, kita perlu menambahkan repositori Nginx resmi, membuat file bernama /etc/yum.repo.d/nginx.repo.

# vi /etc /yum.repo.d/nginx.repo 

Tambahkan baris berikut untuk mengajukan sesuai distribusi Anda.

--------------- Di Centos 7 --------------- [nginx] name = nginx repo baseUrl = http: // nginx.org/paket/centos/7/$ basa penelitian/gpgcheck = 0 diaktifkan = 1 --------------- Di rhel 7 --------------- [nginx] name = nginx repo baseUrl = http: // nginx.org/paket/rhel/7.x/ $ basa/ gpgcheck = 0 diaktifkan = 1 

4. Setelah repo nginx ditambahkan, Anda dapat menginstal Nginx menggunakan alat manajer paket yum seperti yang ditunjukkan.

# yum instal nginx 

Langkah 3: Menginstal Server Database MariaDB

5. Untuk menginstal versi terbaru dari MariaDB, kita perlu menambahkan repositori Mariadb resmi, membuat file bernama /etc/yum.repo.d/mariadb.repo.

# vi /etc /yum.repo.d/mariadb.repo 

Tambahkan baris berikut untuk mengajukan sesuai distribusi Anda.

--------------- Di Centos 7 --------------- [mariadb] name = mariadb baseUrl = http: // yum.Mariadb.org/10.2/centos7-amd64 gpgkey = https: // yum.Mariadb.org/rpm-gpg-key-mariadb gpgcheck = 1 --------------- Di rhel 7 --------------- [mariadb] name = mariadb baseUrl = http: // yum.Mariadb.org/10.2/rhel7-amd64 gpgkey = https: // yum.Mariadb.org/rpm-gpg-key-mariadb gpgcheck = 1 

6. Setelah repo mariadb ditambahkan, Anda dapat menginstal mariadb menggunakan alat manajer paket yum seperti yang ditunjukkan.

# yum instal mariadb-client mariadb-server 

7. Setelah itu, kencangkan instalasi server database menggunakan skrip di bawah ini. Atur kata sandi root dan jawab y dan tekan [Memasuki] Untuk sisa pertanyaan berikutnya untuk menonaktifkan login pengguna root jarak jauh, hapus akun anonim-pengguna dan database pengujian yang secara default dapat diakses oleh semua pengguna, bahkan pengguna anonim.

# mysql_secure_installation 

Baca juga: 12 Praktik Terbaik Keamanan Mysql/Mariadb untuk Linux

Langkah 4: Memasang beberapa versi PHP

8. Untuk menginstal berbagai versi PHP untuk proyek Anda, gunakan yum-config-manager Perintah untuk menginstal beberapa versi PHP bersama dengan sebagian besar modul yang diperlukan seperti yang ditunjukkan.

Pasang PHP 7.1 versi

# yum-config-manager --enable remi-php71 [default] # yum menginstal php-php-common php-fpm # yum menginstal php-mysql php-pecl-memcache php-pecl-memcached php-mbstring php-mcrypt PHP-XML PHP-PECL-APC PHP-CLI PHP-PEAR PHP-PDO 

Pasang PHP 5.6 versi

# yum instal php56 php56-php-common php56-php-fpm # yum instal php56-php-mysql php56-php-pecl-memcache php56-php-pecl-memcached php56-php-gd php56-php-mstring php56-php-gd php56-php-mstring php56-php56 php56 php56 php56 MCRYPT PHP56-PHP-XML PHP56-PHP-PECL-APC PHP56-PHP-CLI PHP56-PHP-PEAR PHP56-PHP-PDO 

9. Setelah diinstal PHP, Anda dapat menggunakan perintah berikut untuk memeriksa versi default PHP yang digunakan di server Anda.

# php -v 
Periksa versi php default

Langkah 5: Mengkonfigurasi PHP-FPM dan PHP56-PHP-FPM

10. Ini adalah bagian paling menarik dari tutorial ini, ini menjelaskan bagaimana Anda benar -benar dapat menjalankan beberapa versi PHP di server Anda. Di sini, Anda akan mengonfigurasi berbagai versi php-fpm bahwa nginx akan bekerja dengannya. Anda harus mendefinisikan pengguna/grup proses fastcgi serta port yang akan mereka dengarkan.

Ini adalah dua file konfigurasi berikut yang akan Anda edit.

  • php-fpm (Default 7.1) - /etc /php -fpm.d/www.conf
  • php56-php-fpm - /opt/remi/php56/root/etc/php-fpm.d/www.conf

Buka file di atas, atur pengguna/grup proses FastCGI.

# vi /etc /php-fpm.d/www.conf [php 7.1] # vi/opt/remi/php56/root/etc/php-fpm.d/www.conf [php 5.6] 

Nilai default seharusnya Apache, ubah menjadi Nginx seperti yang ditunjukkan.

Pengguna = grup nginx = nginx 

11. Selanjutnya, temukan parameter dengarkan, dan tentukan Alamat: Port atas permintaan fastcgi mana yang akan diterima.

Dengarkan = 127.0.0.1: 9000 [php-fpm] Listen = 127.0.0.1: 9001 [php56-php-fpm] 

12. Setelah semua konfigurasi di atas selesai, Anda harus memulai dan mengaktifkan Nginx, Mariadb Dan Php-fpm untuk memulai secara otomatis di boot sistem.

# Systemctl Aktifkan Nginx # Systemctl Mulai Nginx # Systemctl Aktifkan MariaDB # Systemctl Mulai MariaDB ---------------- PHP 7.1 ---------------- # Systemctl Mengaktifkan php-fpm # systemctl mulai php-fpm ---------------- PHP 5.6 ---------------- # Systemctl Aktifkan php56-php-fpm # systemctl Mulai php56-php-fpm 

Perhatian: Jika Anda mendapatkan kesalahan saat memulai contoh kedua PHP, php56-php-fpm, Kebijakan Selinux bisa menghalangi itu dari memulai. Jika selinux masuk mode penegakan, atur ke mode permisif, lalu coba mulai layanan sekali lagi.

# getenforce # setenforce 0 

Langkah 6: Siap Situs Web dengan Izin

13. Pada titik ini, Anda sekarang dapat membuat direktori yang diperlukan untuk situs web Anda di bawah /var/www/html/. Anda juga perlu membuat direktori untuk menyimpan log sebagai berikut:

---------------- Situs web 1 ---------------- # mkdir -p/var/www/html/example1.com/ # mkdir -p/var/log/nginx/example1.com/ ---------------- Situs web 2 ---------------- # mkdir -p/var/www/html/example2.com/ # mkdir -p/var/log/nginx/example2.com/ 

14. Tetapkan izin kepemilikan yang sesuai di semua direktori.

---------------- Situs web 1 ---------------- # chown -r root: nginx/var/www/html/example1.com/ # chmod -r 755/var/www/html/example1.com/ # chown -r root: nginx/var/log/nginx/example1.com/ # chmod -r 660/var/log/nginx/example1.com/ ---------------- Situs web 2 ---------------- # chown -r root: nginx/var/www/html/example2.com/ # chmod -r 755/var/www/html/example2.com/ # chown -r root: nginx/var/log/nginx/example2.com/ # chmod -r 660/var/log/nginx/example2.com/ 

Langkah 7: Setup Nginx Server Blok untuk Situs Web

15. Sekarang konfigurasikan bagaimana nginx akan memproses permintaan ke situs web Anda menggunakan file konfigurasi blok server yang harus ditempatkan di /etc/nginx/conf.D/.

Buat file konfigurasi untuk situs web Anda berakhir .conf perpanjangan.

# vi/etc/nginx/conf.D/Contoh1.com.conf # vi/etc/nginx/conf.D/Contoh2.com.conf 

Kemudian tempel konfigurasi blok server berikut di masing -masing file.

Situs web 1

Konfigurasi untuk Contoh1.com
server dengarkan 80; server_name example1.com www.Contoh 1.com; root/var/www/html/example1.com/; Indeks Indeks.Indeks PHP.Indeks HTML.htm; #charset koi8-r; access_log/var/log/nginx/example1.com/example1_access_log; error_log/var/log/nginx/example1.com/example1_error_log error; Lokasi / TRY_FILES $ URI $ URI / / INDEX.php?$ query_string;  # Lewati skrip php ke server fastcgi mendengarkan pada 127.0.0.1: 9000 Lokasi ~ \.php $ root/var/www/html/example1.com/; fastcgi_pass 127.0.0.1: 9000; Port #SET untuk php-fpm untuk mendengarkan di indeks fastcgi_index.PHP; fastcgi_param script_filename $ document_root $ fastcgi_script_name; Sertakan fastcgi_params; termasuk/etc/nginx/fastcgi_params;  

Situs web 2

Konfigurasi untuk Contoh2.com
server dengarkan 80; server_name example2.com www.Contoh2.com; root/var/www/html/example2.com/; Indeks Indeks.Indeks PHP.Indeks HTML.htm; #charset koi8-r; access_log/var/log/nginx/example2.com/example2_access_log; error_log/var/log/nginx/example2.com/example2_error_log error; Lokasi / TRY_FILES $ URI $ URI / / INDEX.php?$ query_string;  # Lewati skrip php ke server fastcgi mendengarkan pada 127.0.0.1: 9000 Lokasi ~ \.php $ root/var/www/html/example2.com/; fastcgi_pass 127.0.0.1: 9001; Port #SET untuk php56-php-fpm untuk mendengarkan di indeks fastcgi_index.PHP; fastcgi_param script_filename $ document_root $ fastcgi_script_name; Sertakan fastcgi_params; termasuk/etc/nginx/fastcgi_params;  

16. Pastikan bahwa Anda memiliki baris berikut di bagian penutupan blok HTTP di /etc/nginx/nginx.conf. Ini membantu untuk memasukkan semua file konfigurasi di dalam /etc/nginx/conf.D/ direktori saat nginx berjalan.

termasuk/etc/nginx/conf.D/*.conf; 

Langkah 8: Menguji versi PHP yang berbeda

17. Akhirnya, Anda perlu menguji bahwa server Anda menggunakan dua versi PHP. Anda dapat membuat yang sangat mendasar info.php skrip dalam direktori root dokumen situs web Anda seperti yang ditunjukkan.

# echo "">/var/www/html/example1.com/info.PHP # echo "">/var/www/html/example2.com/info.php 

18. Untuk menerapkan semua perubahan yang telah Anda buat di atas, Anda perlu memulai kembali Nginx, php-fpm Dan php56-php-fpm. Tetapi pertama -tama Anda dapat memeriksa bahwa file konfigurasi nginx untuk kesalahan sintaks sebelum melakukannya.

# nginx -t # systemctl restart nginx php-fpm php56-php-fpm 
Verifikasi konfigurasi nginx

19. Ada satu hal terakhir yang harus dilakukan, terutama jika Anda menjalankan server Anda secara lokal, Anda perlu mengatur DNS lokal menggunakan /etc/host file seperti yang ditunjukkan pada tangkapan layar di bawah ini.

192.168.56.10 Contoh1.Com Contoh1 192.168.56.10 Contoh2.com example2 
Tambahkan situs web file host

20. Akhirnya, buka browser web dan ketik alamat berikut untuk memverifikasi versi PHP yang diinstal pada sistem.

http: // example1.com/index.php http: // example2.com/index.php 
Periksa PHP 7.1 versi Periksa PHP 5.6 versi

Itu dia! Sekarang Anda dapat menggunakan file dan menguji situs web dengan versi PHP yang berbeda. Jika Anda memiliki tambahan untuk mengajukan atau pertanyaan untuk diajukan, memanfaatkan formulir komentar di bawah ini.