Setting Virtual Host Apache dan PHP-FPM

Setting Virtual Host Apache dan PHP-FPM

Case ini mungkin yang paling sering terjadi ketika melakukan konfigurasi server di linux khususnya turunan redhat, dalam test kali ini menggunakan Rocky Linux. Biasanya setelah installasi PHP dan Apache, newbe pada bingung, kok yang muncul script code bukan tampilan website, atau mod rewrite tidak berjalan, atau domain ngaco. berikut ini adalah penjelasan tentang pembuatan Virtual Host (vhost) di Apache dan implementasi PHP-FPM. tutorial ini di buat dengan asumsi kalian sudah menginstall apache dan php, jika belum bisa membaca artikel sebelumnya.

  1. Pertama kita ubah konfigurasi pada php-fpm di : sudo vim /etc/php-fpm.d/www.conf
  2. Ubah pada bagian listen menjadi 127.0.0.1:9000 ini berfungsi bahwa php kalian hanya digunakan di server tersebut saja dan di port 9000, tidak di gunakan oleh server lain
  3. restart php-fpm dengan perintah : sudo systemctl restart php-fpm
  4. install modfcgi apache dengan perintah : sudo dnf install mod_fcgid
  5. tahap selanjutnya melakukan konfigurasi virtual host project kalian. kalian bisa membuat file di sudo vim /etc/httpd/conf.d/ dengan konfigurasi seperti dibawah ini :
<virtualhost *:80>
        ServerName project.com
        ServerAdmin info@project.com
        <Directory "/var/www/html/project">
                AllowOverride all
        </Directory>
        DocumentRoot /var/www/html/project/public
        ErrorLog logs/project-error_log
        CustomLog logs/project-access_log common
        RewriteEngine on
        ProxyPassMatch ^/(.*\.php(/.*)?)$ "fcgi://127.0.0.1:9000/var/www/html/project/public"
</virtualhost>

Penjelasan di config di atas :

  1. Virtualhost : web ini hanya bisa di akses melalui port 80
  2. ServerName : nama server nya adalah project.com ini untuk memudahkan pada saat kita pointing domain, apache ga bingung di mau arahkan ke project mana
  3. ServerAdmin, sesuai namanya ini hanya berupa informasi, klo mau di skip bisa – bisa aja
  4. Directory project dimana dan pastikan direktori tersebut di izinkan untuk eksekusi semua directive
  5. DocumentRoot, ini adalah root folder yang pertama kali script akan di eksekusi, biasanya ini berisi index.php
  6. ErrorLog sesuai namanya ini buat path error log di simpan dimana
  7. CustomLog sesuai untuk log di luar error seperti access log
  8. RewriteEngine on, ini digunakan untuk memastikan bahwa project ini menggunakan modules rewrite apache
  9. ProxyPassMatch ini kita gunakan untuk php-fpm mengeksekusi script

jika konfigurasi sudah selesai jangan lupa di restart apache nya dengan perintah : sudo systemctl restart httpd

kurang lebih itu yang bisa gw jelaskan pada artikel ini, semoga bermanfaat buat kalian, jika ada pertanyaan silahkan isi di komentar

Comments

No comments yet. Why don’t you start the discussion?

Leave a Reply

Your email address will not be published. Required fields are marked *