GNU/Linux >> Belajar Linux >  >> Ubuntu

Setup Apache 2.4 dan Php FPM dengan mod proxy fcgi di Ubuntu 13.10

mod_proxy_fcgi

Modul mod_proxy_fcgi adalah yang baru dan memungkinkan Apache untuk terhubung ke/meneruskan permintaan ke manajer proses fastcgi eksternal seperti php fpm. Ini memungkinkan pemisahan lengkap antara menjalankan skrip php dan Apache.

Sebelumnya kita harus menggunakan modul seperti mod_fcgid dan mod_fastcgi yang semuanya memiliki keterbatasan. Mod_fcgid misalnya tidak memanfaatkan kemampuan manajemen proses php-cgi dengan benar sedangkan mod_fastcgi adalah modul pihak ketiga.

Dengan kedatangan mod_proxy_fcgi Apache akhirnya mendapatkan kemampuan untuk berbicara dengan rapi dengan manajer proses fastcgi eksternal sehingga lebih efisien dalam tugas.

Mendelegasikan permintaan php ke server fpm eksternal sangat mengurangi beban pada server web seperti apache yang menghasilkan pemanfaatan sumber daya mesin yang efisien dan pemrosesan yang lebih cepat.

request page.php --> Apache --> Php FPM service --> Proses php mengeksekusi page.php

Bersamaan dengan itu, php fpm dapat menjalankan mesin caching opcode seperti apc dengan sangat stabil.

Jadi pada postingan kali ini, tugas kita adalah men-setup apache + php-fpm menggunakan konektor mod_proxy_fcgi.

1. Instal dan Konfigurasi Apache

Ubuntu 13.10 sudah dikirimkan dengan apache 2.4 sehingga semua yang dapat diinstal ada di repositori itu sendiri.

Instal Apache jika belum selesai

$ sudo apt-get install apache2

Aktifkan mod_proxy_fcgi

$ sudo a2enmod proxy_fcgiMempertimbangkan proxy ketergantungan untuk proxy_fcgi:Mengaktifkan proxy modul.Mengaktifkan modul proxy_fcgi.Untuk mengaktifkan konfigurasi baru, Anda perlu menjalankan:service apache2 restart

Mulai ulang Apache

$ Sudo service Apache2 restart

Konfigurasikan host virtual

Tugas selanjutnya adalah mengkonfigurasi vhost untuk menggunakan mod fcgi proxy untuk berkomunikasi dengan fpm. File konfigurasi vhost disimpan di lokasi berikut

/etc/apache2/sites-available

Masuk ke sana, buat file konfigurasi vhost baru Anda dengan menyalin file 000-default.conf yang disertakan dengan apache.

$ cd /etc/apache2/sites-available$ sudo cp 000-default.conf mysite.conf$ sudo nano mysite.conf

Sekarang saatnya untuk mengkonfigurasi virtualhost. Inilah cara saya mengonfigurasi file

..... ServerName fpm.localhost ServerAdmin [email protected] DocumentRoot /var/www/mysite..... ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR} /access.log digabungkan..... #Sertakan conf-available/serve-cgi-bin.conf ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9000/ var/www/mysite/$1  Pesan izinkan, tolak Izinkan dari semua AllowOverride FileInfo Semua # Direktif baru diperlukan di Apache 2.4.3:Wajibkan semua diberikan  

Hal-hal penting yang perlu diperhatikan adalah :

1. NamaServer - Ini adalah domain atau subdomain dari vhost Anda. Dalam contoh ini saya menggunakan fpm.localhost sehingga ketika menggunakan sub domain tersebut di localhost, php fpm yang digunakan.

2. DocumentRoot - Ini adalah root dari vhost ini dari mana file web akan disajikan.

3. ProxyPassMatch - Ini adalah perintah yang memberitahukan semua permintaan untuk file ".php" ke server fcgi di 127.0.0.1:9000. Di sinilah manajer proses php fpm kami akan berjalan. Lebih lanjut tentang ini di bagian berikutnya.
Url fcgi harus berisi jalur yang tepat ke root dokumen. Jika tidak, ia akan mengatakan "File Tidak Ditemukan" saat meminta file.

ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9000/var/www/mysite/$1

Parameter pertama adalah pola yang cocok. Jadi semua url yang memiliki ".php" di dalamnya diikuti dengan garis miring opsi dan yang lainnya dicocokkan dan bagian yang cocok diteruskan ke server fcgi yang berjalan pada 127.0.0.1:9000.

4. Wajibkan semua diberikan - Setelah baris ProxyPassMatch kami menambahkan bagian dengan arahan Require dan AllowOverride. Hal ini diperlukan pada Apache 2.4

Simpan file dan aktifkan menggunakan perintah a2ensite yang menghemat upaya untuk membuat symlink di direktori yang mendukung situs.

$ sudo a2ensite mysiteMengaktifkan situs mysite.Untuk mengaktifkan konfigurasi baru, Anda perlu menjalankan:service apache2 reload

Sekarang muat ulang konfigurasi Apache

$ Sudo service apache2 reload * Reload web server apache2

Itu melengkapi konfigurasi Apache. Separuh tugas lainnya adalah mengonfigurasi php fpm sehingga akhirnya bisa berfungsi.

2. Setup Php-FPM (FastCGI Process Manager)

Hal selanjutnya adalah mengatur php fpm. Instal melalui sinaptik, jika belum melakukannya.

$ sudo apt-get install php5-fpm

File konfigurasi untuk fpm terletak di

/etc/php5/fpm
/etc/php5/fpm$ lsconf.d php-fpm.conf php.ini pool.d

Direktori pool.d berisi file konfigurasi untuk setiap fpm pool dan php-fpm.conf adalah file konfigurasi utama. Satu-satunya pekerjaan kami adalah mengonfigurasi kumpulan fpm yang akan digunakan dengan apache atau host virtual tertentu.

File konfigurasi untuk kumpulan cukup besar dan ada banyak parameter yang dapat dikonfigurasi. Tetapi dalam posting ini kita hanya akan berbicara tentang bidang-bidang penting yang perlu disetel untuk mengaktifkan dan menjalankan fpm

; Mulai kolam baru bernama 'www'.; variabel $pool dapat kita gunakan dalam direktif apapun dan akan digantikan oleh; nama kumpulan ('www' di sini)[www]; Per awalan kumpulan; Ini hanya berlaku pada arahan berikut:; - 'lambat'; - 'dengarkan' (unixsocket); - 'chroot'; - 'chdir'; - 'nilai_php'; - 'php_admin_values'; Jika tidak disetel, awalan global (atau /usr) berlaku sebagai gantinya.; Catatan:Arahan ini juga bisa relatif terhadap awalan global.; Nilai Default:none;prefix =/path/to/pools/$pool; Pengguna/grup proses Unix; Catatan:Pengguna wajib. Jika grup tidak disetel, grup pengguna default; akan digunakan.pengguna =kelompok tercerahkan =tercerahkan; Alamat untuk menerima permintaan FastCGI.; Sintaks yang valid adalah:; 'ip.add.re.ss:port' - untuk mendengarkan pada soket TCP ke alamat tertentu; pelabuhan tertentu;; 'port' - untuk mendengarkan pada soket TCP ke semua alamat pada a; pelabuhan tertentu;; '/path/to/unix/socket' - untuk mendengarkan pada soket unix.; Catatan:Nilai ini wajib.listen =127.0.0.1:9000; Setel mendengarkan (2) simpanan.; Nilai Default:128 (-1 pada FreeBSD dan OpenBSD);listen.backlog =128

Buat file konfigurasi baru dengan menyalin file www.conf. Dan edit bidang seperti yang dijelaskan selanjutnya.

1. Opsi pertama adalah nama pool. Kami menamakannya 'www' di sini. Beri nama untuk apa pun yang Anda suka atau setelah nama domain yang akan digunakan. 'situs Anda' misalnya. Dengan begitu akan lebih mudah diingat.

2. Siapkan pengguna dan grup yang akan dijalankan oleh kumpulan ini. Saat Anda menyiapkan beberapa situs/domain/host virtual di server, Anda selalu ingin menyiapkan akun pengguna terpisah dan kumpulan yang sesuai untuk masing-masing. Ini adalah langkah keamanan yang penting, sehingga setiap kumpulan hanya memiliki hak istimewa untuk penggunanya sendiri.

3. Atur soket pendengar. Ini adalah soket tempat proses master fpm akan mendengarkan permintaan yang masuk. Ini bisa berupa soket unix atau soket tcp. Namun mod_proxy_fcgi belum mendukung soket unix, jadi kami terbatas pada soket tcp.
Di sini nomor portnya 9000 di localhost.

Sekarang mulai ulang fpm

$ sudo service php5-fpm restart

Sekarang kumpulan fpm baru akan berlaku. Anda dapat melihat proses pool baru di htop misalnya.

3. Uji penyiapan

Sekarang setelah apache dan php fpm dikonfigurasi dan diatur, saatnya untuk menguji. Masuk ke dalam direktori root dokumen dan buat file php yang berisi panggilan ke fungsi phpinfo() dan buka di browser Anda.
"Server API" harus dilaporkan sebagai "FPM/FastCGI".

Sekarang setelah apache dan php diatur, Anda mungkin ingin menginstal hal-hal lain seperti APC, database mariadb, phpmyadmin, dll. Jelajahi situs ini untuk menemukan panduan cara menggunakannya.

Sumber daya

Lihat tautan berikut untuk mempelajari lebih lanjut
https://wiki.Apache.org/httpd/PHP-FPM


Ubuntu
  1. Cara mengaktifkan dan menonaktifkan modul PHP curl dengan Apache di Ubuntu Linux

  2. Cara Setup Opencart dengan LAMP (PHP, Apache, Mariadb) di Ubuntu 20.04

  3. Instal dan konfigurasikan Apache dan PHP dengan cgi di Ubuntu atau Debian

  1. Instalasi WordPress di Ubuntu Linux dengan Apache dan MySQL

  2. Setup Apache dan Php dengan mod_fcgid di Ubuntu/Debian

  3. Instal dan konfigurasi Apache dan php dengan mod fastcgi di Ubuntu/Debian

  1. Cara Menginstal Laravel di Ubuntu 18.04 dengan Apache

  2. Tutorial server LAMP Ubuntu 14.10 dengan Apache 2, PHP 5 dan MySQL (MariaDB)

  3. Tutorial server LAMP Ubuntu 15.04 dengan Apache 2, PHP 5 dan MariaDB (bukan MySQL)