Cara Menjalankan Pelbagai Laman Web Dengan Versi PHP yang Berbeza Di Nginx

Cara Menjalankan Pelbagai Laman Web Dengan Versi PHP yang Berbeza Di Nginx

Kadang -kadang pemaju PHP ingin membina dan menjalankan laman web/aplikasi yang berbeza menggunakan versi PHP yang berbeza di pelayan web yang sama. Sebagai pentadbir sistem linux, anda dikehendaki menyediakan persekitaran di mana anda boleh menjalankan beberapa laman web menggunakan versi php yang berbeza pada pelayan web tunggal i.e. Nginx.

Dalam tutorial ini, kami akan menjelaskan cara memasang pelbagai versi Php dan konfigurasikan pelayan web Nginx untuk bekerjasama dengan mereka melalui blok pelayan (tuan rumah maya di Apache) di Centos/RHEL 7 Pengagihan menggunakan Lemp timbunan.

Baca juga: Pyenv - Pasang pelbagai versi python untuk projek tertentu

Nginx penggunaan PHP-FPM (bermaksud Pengurus Proses Fastcgi), yang merupakan alternatif Php fastcgi pelaksanaan dengan beberapa ciri tambahan dan berguna untuk laman web yang banyak dimuatkan.

Persediaan Persekitaran Ujian

  1. Pelayan CentOS 7 atau RHEL 7 dengan pemasangan yang minimum.
  2. Pelayan http nginx.
  3. Php 7.1 (digunakan sebagai versi lalai) dan 5.6.
  4. Pelayan pangkalan data MariaDB.
  5. Alamat IP Pelayan: 192.168.56.10.
  6. Laman web: Contoh1.com dan Contoh2.com.

Langkah 1: Memasang dan Membolehkan Repositori Epel dan Remi

1. Mula pertama dengan memasang dan membolehkan Epel dan Remi repositori, yang menawarkan versi terkini dari Php tumpukan Centos/RHEL 7 pengagihan.

# yum Pasang https: // dl.Fedoraproject.org/pub/epel/epel-release-latest-7.Noarch.rpm # yum Pasang http: // rpms.remirepo.Bersih/Enterprise/Remi-Release-7.rpm 

2. Seterusnya memasang yum-utils pakej, yang memanjangkan fungsi asli Yum dan menyediakan Yum-Config-Manager perintah, yang digunakan untuk mengaktifkan atau melumpuhkan repositori yum pada sistem.

# yum pasang yum-utils 

Catatan: Pada RHEL 7 anda boleh mengaktifkan saluran pilihan untuk beberapa kebergantungan menggunakan arahan berikut.

# Repos Langganan-Manager --Anable = RHEL-7-SERVER-OPTIONAL-RPMS 

Langkah 2: Memasang pelayan web nginx

3. Untuk memasang versi terkini nginx, kita perlu menambah repositori nginx rasmi, buat fail bernama /etc/yum.repos.d/nginx.repo.

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

Tambahkan baris berikut untuk memfailkan mengikut pengedaran anda.

--------------- Pada Centos 7 --------------- [nginx] name = nginx repo baseUrl = http: // nginx.org/bungkusan/centOs/7/$ basearch/gpgcheck = 0 enabled = 1 --------------- Pada RHEL 7 --------------- [nginx] name = nginx repo baseUrl = http: // nginx.org/pakej/rhel/7.x/ $ basearch/ gpgcheck = 0 enabled = 1 

4. Sebaik sahaja repo nginx telah ditambah, anda boleh memasang Nginx menggunakan alat Pengurus Pakej Yum seperti yang ditunjukkan.

# yum pasang nginx 

Langkah 3: Memasang pelayan pangkalan data MariaDB

5. Untuk memasang versi terkini MariaDB, kita perlu menambah repositori MariaDB rasmi, buat fail bernama /etc/yum.repos.D/Mariadb.repo.

# vi /etc /yum.repos.D/Mariadb.repo 

Tambahkan baris berikut untuk memfailkan mengikut pengedaran anda.

--------------- Pada Centos 7 --------------- [Mariadb] Nama = Mariadb BaseUrl = http: // yum.Mariadb.org/10.2/centos7-amd64 gpgkey = https: // yum.Mariadb.org/rpm-gpg-key-Mariadb gpgcheck = 1 --------------- Pada RHEL 7 --------------- [Mariadb] Nama = Mariadb BaseUrl = http: // yum.Mariadb.org/10.2/RHEL7-AMD64 GPGKEY = https: // yum.Mariadb.org/rpm-gpg-key-Mariadb gpgcheck = 1 

6. Sebaik sahaja Repo MariaDB telah ditambah, anda boleh memasang MariaDB menggunakan alat Pengurus Pakej Yum seperti yang ditunjukkan.

# yum Pasang MariaDB-Client MariaDB-Server 

7. Selepas itu, selamatkan pemasangan pelayan pangkalan data menggunakan skrip di bawah. Tetapkan kata laluan root dan jawapan y dan tekan [Masukkan] Untuk seluruh soalan berikutnya untuk melumpuhkan log masuk pengguna akar jauh, keluarkan akaun pengguna tanpa nama dan pangkalan data ujian yang secara lalai dapat diakses oleh semua pengguna, bahkan pengguna tanpa nama.

# mysql_secure_installation 

Baca juga: 12 MySQL/MariaDB Amalan Terbaik untuk Linux

Langkah 4: Memasang pelbagai versi PHP

8. Untuk memasang versi PHP yang berbeza untuk projek anda, gunakan Yum-Config-Manager Perintah untuk memasang pelbagai versi PHP bersama -sama dengan modul yang paling diperlukan seperti yang ditunjukkan.

Pasang Php 7.1 versi

# yum-config-manager-Remi-php71 [default] # yum memasang php php-common php-fpm # yum memasang php-mysql php-pecl-memcache php-pecl-memcached php-gd php-mcrypt PHP-XML PHP-PECL-APC PHP-CLI PHP-PEAR PHP-PDO 

Pasang Php 5.Versi 6

# yum memasang php56 php56-php-common php56-php-fpm # yum pemasangan php56-php-mysql php56-php-pecl-memcache php56-php-pecl-pecl-php-php-php-php-php-php-php-php-php-php-php-php-php-php-php-php-php-php-php-php-php-php-php-php-php-php-php-php-php-php-php-php-php MCRYPT PHP56-PHP-XML PHP56-PHP-PECL-APC PHP56-PHP-CLI PHP56-PHP-PEAR PHP56-PHP-PDO 

9. Setelah dipasang PHP, anda boleh menggunakan arahan berikut untuk memeriksa versi lalai PHP yang digunakan pada pelayan anda.

# php -v 
Semak versi php lalai

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

10. Ini adalah bahagian paling menarik dalam tutorial ini, ia menerangkan bagaimana anda sebenarnya boleh menjalankan pelbagai versi PHP di pelayan anda. Di sini, anda akan mengkonfigurasi versi yang berbeza PHP-FPM nginx itu akan berfungsi dengan. Anda harus menentukan pengguna/kumpulan proses fastcgi serta pelabuhan yang akan mereka dengar.

Ini adalah dua fail konfigurasi berikut yang akan anda edit.

  • PHP-FPM (Lalai 7.1) - /etc /php -fpm.D/www.Conf
  • PhP56-PhP-FPM - /OPT/REMI/PHP56/ROOT/ETC/PHP-FPM.D/www.Conf

Buka fail di atas, tetapkan pengguna/kumpulan 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 lalai mestilah Apache, Tukar mereka ke nginx seperti yang ditunjukkan.

pengguna = kumpulan nginx = nginx 

11. Seterusnya, cari parameter mendengar, dan tentukan Alamat: port atas permintaan fastcgi yang akan diterima.

Dengar = 127.0.0.1: 9000 [PHP-FPM] Dengar = 127.0.0.1: 9001 [PhP56-PhP-FPM] 

12. Setelah semua konfigurasi di atas dilakukan, anda perlu memulakan dan membolehkan Nginx, Mariadb dan PHP-FPM untuk memulakan automatik pada boot sistem.

# Systemctl Dayakan Nginx # Systemctl Mula Nginx # Systemctl Dayakan MariaDB # Systemctl Mula MariaDB ---------------- Php 7.1 ---------------- # Systemctl Dayakan PHP-FPM # Systemctl Mula PHP-FPM ---------------- Php 5.6 ---------------- # Systemctl Dayakan Php56-PHP-FPM # Systemctl Mula Php56-PhP-FPM 

Perhatian: Sekiranya anda mendapat sebarang kesilapan semasa memulakan contoh kedua php, PhP56-PhP-FPM, dasar selinux boleh menyekatnya dari bermula. Sekiranya selinux masuk menguatkuasakan mod, Tetapkan ke mod permisif, Kemudian cuba mulakan perkhidmatan sekali lagi.

# getenforce # setenforce 0 

Langkah 6: Persediaan Laman Web Dengan Kebenaran

13. Pada ketika ini, anda kini boleh membuat direktori yang diperlukan untuk laman web anda di bawah /var/www/html/. Anda juga perlu membuat direktori untuk menyimpan log seperti berikut:

---------------- Laman web 1 ---------------- # mkdir -p/var/www/html/contoh1.com/ # mkdir -p/var/log/nginx/contoh1.com/ ---------------- Laman web 2 ---------------- # mkdir -p/var/www/html/contoh2.com/ # mkdir -p/var/log/nginx/contoh2.com/ 

14. Tetapkan kebenaran pemilikan yang sesuai pada semua direktori.

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

Langkah 7: Setup blok pelayan nginx untuk laman web

15. Sekarang konfigurasikan bagaimana nginx akan memproses permintaan ke laman web anda menggunakan fail konfigurasi blok pelayan yang harus ditempatkan di /etc/nginx/conf.d/.

Buat fail konfigurasi untuk laman web anda yang berakhir dengan .Conf sambungan.

# vi/etc/nginx/conf.d/contoh1.com.conf # vi/etc/nginx/conf.d/contoh2.com.Conf 

Kemudian tampal konfigurasi blok pelayan berikut dalam fail masing -masing.

Laman web 1

Konfigurasi Sebagai Contoh1.com
pelayan mendengar 80; Server_name Contoh1.com www.Contoh1.com; root/var/www/html/contoh1.com/; Indeks indeks.Indeks PHP.Indeks HTML.htm; #charset koi8-r; Access_log/var/log/nginx/contoh1.com/example1_access_log; error_log/var/log/nginx/contoh1.com/example1_error_log ralat; lokasi / try_files $ uri $ uri / / indeks.php?$ query_string;  # lulus skrip php ke pelayan fastcgi mendengar pada 127.0.0.1: 9000 lokasi ~ \.php $ root/var/www/html/contoh1.com/; fastcgi_pass 127.0.0.1: 9000; #Set port untuk php-fpm untuk mendengar pada indeks fastcgi_index.PHP; fastcgi_param script_filename $ document_root $ fastcgi_script_name; termasuk fastcgi_params; termasuk/etc/nginx/fastcgi_params;  

Laman web 2

Konfigurasi Sebagai Contoh2.com
pelayan mendengar 80; Server_name Contoh2.com www.Contoh2.com; root/var/www/html/contoh2.com/; Indeks indeks.Indeks PHP.Indeks HTML.htm; #charset koi8-r; akses_log/var/log/nginx/contoh2.com/contoh2_access_log; error_log/var/log/nginx/contoh2.com/example2_error_log ralat; lokasi / try_files $ uri $ uri / / indeks.php?$ query_string;  # lulus skrip php ke pelayan fastcgi mendengar pada 127.0.0.1: 9000 lokasi ~ \.php $ root/var/www/html/contoh2.com/; fastcgi_pass 127.0.0.1: 9001; #Set port untuk php56-php-fpm untuk mendengar pada indeks fastcgi_index.PHP; fastcgi_param script_filename $ document_root $ fastcgi_script_name; termasuk fastcgi_params; termasuk/etc/nginx/fastcgi_params;  

16. Pastikan anda mempunyai baris berikut di bahagian penutup blok HTTP di /etc/nginx/nginx.Conf. Ia membantu memasukkan semua fail konfigurasi di dalam /etc/nginx/conf.d/ direktori semasa nginx berjalan.

termasuk/etc/nginx/conf.d/*.Con; 

Langkah 8: Menguji versi PHP yang berbeza

17. Akhirnya, anda perlu menguji bahawa pelayan anda menggunakan dua versi php. Anda boleh membuat sangat asas maklumat.php Skrip dalam direktori akar dokumen laman web anda seperti yang ditunjukkan.

# echo "">/var/www/html/contoh1.com/info.php # echo "">/var/www/html/contoh2.com/info.php 

18. Untuk menggunakan semua perubahan yang telah anda buat di atas, anda perlu memulakan semula Nginx, PHP-FPM dan PhP56-PhP-FPM. Tetapi anda boleh terlebih dahulu menyemak bahawa fail konfigurasi nginx untuk sebarang kesilapan sintaks sebelum berbuat demikian.

# nginx -t # Systemctl Restart Nginx PHP-FPM Php56-PhP-Fpm 
Sahkan konfigurasi nginx

19. Terdapat satu perkara terakhir yang perlu dilakukan, terutamanya jika anda menjalankan pelayan anda secara tempatan, anda perlu menyediakan DNS tempatan menggunakan /etc/hos fail seperti yang ditunjukkan dalam pukulan skrin di bawah.

192.168.56.10 Contoh1.COM Contoh1 192.168.56.10 Contoh2.com contoh2 
Tambahkan Fail Laman Web To-Hosts

20. Akhirnya, buka penyemak imbas web dan taipkan alamat berikut untuk mengesahkan versi PHP yang dipasang pada sistem.

http: // contoh1.com/indeks.php http: // contoh2.com/indeks.php 
Semak Php 7.1 versi Semak Php 5.Versi 6

Itu sahaja! Sekarang anda boleh menggunakan fail dan ujian laman web dengan versi PHP yang berbeza. Sekiranya anda mempunyai tambahan untuk membuat atau soalan untuk dikemukakan, gunakan borang komen di bawah.