Menjalankan php 5.6 Dan php 7.2 dengan Apache Di macOS

Tutorial sebelumnya saya telah menulis mengenai cara menjalankan php5.6 dan php7.2 secara bersamaan khusus untuk pengguna GNU/Linux distro Ubuntu. Sekarang giliran macOS.

Kebutuhan

  • Sudah memasang brew atau homebrew (https://brew.sh/).
  • Sistem Operasi macOS 10.11 (EL Capitan) atau lebih.
    Dalam praktek di sini, saya menggunakan macOS HighSierra.

Persiapan

  • Koneksi internet.
  • vim dan paham dasar penggunaannya.
  • Secara default HighSierra sudah terdapat php71 dan apache mereka perlu dinonaktifkan, kita cukup gunakan php dan apache bawaan dari brew. Adapun caranya sebagai berikut:
    $ sudo apachectl stop
    $ sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist 2>/dev/null
  • Buat direktori Web dan logs di Home kalian. Caranya:
    $ mkdir -p ~/Web/logs
  • Mengetahui User dan Group yang kalian gunakan. Caranya sebagai berikut:
    $ ls -l ~/

    Hasilnya seperti berikut:

    situsali macOS terminal ls
    Terlihat hasil di atas bahwa user yang digunakan adalah ali sedangkan group-nya adalah staff.

Pemasangan

Pasang vimphp terbaru, php56 dan apache

$ brew install vim
$ brew install php
$ brew install php56
$ brew install httpd

Buat symlink php56 dan pecl-nya

$ ln -s /usr/local/opt/[email protected]/bin/php /usr/local/bin/php56
$ ln -s /usr/local/opt/[email protected]/bin/pecl /usr/local/bin/pecl56

Konfigurasi

Buat Host

$ vim /etc/hosts

Isi host-nya seperti berikut:

127.0.0.1 localhost.php5
127.0.0.1 localhost.php7

PHP-FPM

Karena dua php ingin dijalankan secara bersamaan maka port keduanya harus berbeda. Di sini, saya menggunakan php56 berjalan dengan port 9000 sedangkan php72 dengan port 9010.

Konfigurasi php56

$ vim /usr/local/etc/php/5.6/php-fpm.conf

Sunting skrip seperti berikut:

...

[www]

user = ali
group = staff
listen = 127.0.0.1:9000

...

situsali macOS terminal php56 fpm

Konfigurasi php72

$ vim /usr/local/etc/php/7.2/php-fpm.d/www.conf

Sunting skrip seperti berikut:

...

[www]

user = ali
group = staff
listen = 127.0.0.1:9010

...

Apache

Buka berkas httpd.conf di /usr/local/etc/httpd/httpd.conf

$ vim /usr/local/etc/httpd/httpd.conf

Ganti port 8080 menjadi 80 dan tambahkan ServerName-nya kira-kira seperti berikut:

...

Listen 80
ServerName 127.0.0.1

....

Aktifkan modul-modul berikut dengan meng-uncomment:

...

LoadModule rewrite_module lib/httpd/modules/mod_rewrite.so
LoadModule proxy_fcgi_module lib/httpd/modules/mod_proxy_fcgi.so
LoadModule proxy_module lib/httpd/modules/mod_proxy.so

...

Virtual Host

Kemudian aktifkan virtual host:

Include /usr/local/etc/httpd/extra/httpd-vhosts.conf

situsali macOs terminal apache conf

Sunting virtual host nya:

$ vim /usr/local/etc/httpd/extra/httpd-vhosts.conf

Isi dengan skrip di bawah ini:

<VirtualHost *:80>
    ServerName localhost.php5
    DocumentRoot "/Users/ali/Web/"
    ServerAdmin [email protected]
 
    <Directory /Users/ali/Web/>
        #DirectoryIndex index.php index.html
        Options Indexes MultiViews FollowSymlinks
        AllowOverride All
        Require all granted
    </Directory>
    
    ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9000/Users/ali/Web/$1
 
    ErrorLog /Users/ali/Web/logs/php56-error.log
    CustomLog /Users/ali/Web/logs/php56-access.log combined

    RewriteEngine on
    RewriteCond %{HTTP:Authorization} ^(.*)
    RewriteRule .* - [e=HTTP_AUTHORIZATION:%1]
</VirtualHost>

<VirtualHost *:80>
    ServerName localhost
    ServerAlias localhost.php7
    DocumentRoot "/Users/ali/Web/"
    ServerAdmin [email protected]
 
    <Directory /Users/ali/Web/>
        #DirectoryIndex index.php index.html
        Options Indexes MultiViews FollowSymlinks
        AllowOverride All
        Require all granted
    </Directory>
    
    ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9010/Users/ali/Web/$1

    ErrorLog /Users/ali/Web/logs/php72-error.log
    CustomLog /Users/ali/Web/logs/php72-access.log combined

    RewriteEngine on
    RewriteCond %{HTTP:Authorization} ^(.*)
    RewriteRule .* - [e=HTTP_AUTHORIZATION:%1]
</VirtualHost>

Catatan: Jika ingin langsung mengekskusi index.php uncommentDirectoryIndex pada skrip di atas.

Tahap Menjalankan

Jika semua sudah selesai dikonfigurasi langkah selanjutnya tinggal kita jalankan. Sebelum dijalankan pastikan cek dulu keberhasilan konfigurasinya. Dengan cara berikut:

$ apachectl configtest

Jika hasilnya seperti berikut:

situsali macOS terminal apache

Artinya konfigurasi apache sudah sukses. Kita tinggal jalankan.

$ sudo brew services install httpd

Jalankan juga php-nya:

$ sudo brew services install php
$ sudo brew services install php56

Cek jika semua sudah berjalan:

$ brew services list

situsali macOS terminal brew list

Semua sudah berjalan, langkah selanjutnya kita buat berkas php untuk mengatahui ia sudah berjalan atau belum.

$ echo "<?php phpinfo();" > ~/Web/info.php

Nah tinggal tes diperamban kalian. Tautan-tauan berikut:

Hasilnya seperti berikut:

Screen Shot 2018 11 02 at 14.30.12 Screen Shot 2018 11 02 at 14.32.28

Semoga bermanfaat 😀

Sumber: https://notes.situsali.com/posts/menjalankan-php56-dan-php72-di-high-sierra/

Artikel Terkait

8 responses to “Menjalankan php 5.6 Dan php 7.2 dengan Apache Di macOS”

  1. anonimous Avatar
    anonimous

    not working for me…

    1. Ali Avatar

      Apanya yg tidak bisa? Tolong dijelaskan

  2. ariestwn Avatar

    tolong sempatkan buat tutorial untuk hhvm wordpress juga bang 🙂

    1. Ali Avatar

      akan saya coba nanti Insya Allah kalau ada waktu.. thanks 😁

  3. BanditHijo Avatar

    Tidaaaaaaakk!!! Panutanku sekarang pakai macOS!!!
    akakakakakak

    1. Ali Avatar

      wkwkwk masih pake Arch kok, ini lepi kantor wkwkwkw

  4. Surya Adhi Avatar

    sip, mantul gan, hehehe…

    1. Ali Avatar

Leave a Reply

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