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
brewatauhomebrew(https://brew.sh/). -
Sistem Operasi macOS 10.11 (EL Capitan) atau lebih. Dalam praktek di sini, saya menggunakan macOS HighSierra.
Persiapan
-
Koneksi internet.
-
vimdan paham dasar penggunaannya. -
Secara default HighSierra sudah terdapat
php71danapachemereka perlu dinonaktifkan, kita cukup gunakanphpdanapachebawaan daribrew.Adapun caranya sebagai berikut:
$ sudo apachectl stop $ sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist 2>/dev/null -
Buat direktori
WebdanlogsdiHomekalian. Caranya:$ mkdir -p ~/Web/logs -
Mengetahui
UserdanGroupyang kalian gunakan. Caranya sebagai berikut:$ ls -l ~/Hasilnya seperti berikut:

Terlihat hasil di atas bahwa
useryang digunakan adalahalisedangkangroup-nya adalahstaff.
Pemasangan
Pasang vim, php 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/php@5.6/bin/php /usr/local/bin/php56
$ ln -s /usr/local/opt/php@5.6/bin/pecl /usr/local/bin/pecl56
Konfigurasi
Buat Host
$ vim /etc/hosts
Isi host-nya seperti berikut:
/etc/hosts127.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:
/usr/local/etc/php/5.6/php-fpm.conf...
[www]
user = ali
group = staff
listen = 127.0.0.1:9000
...

Konfigurasi php72
$ vim /usr/local/etc/php/7.2/php-fpm.d/www.conf
Sunting skrip seperti berikut:
/usr/local/etc/php/7.2/php-fpm.d/www.conf...
[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:
/usr/local/etc/httpd/httpd.conf...
Listen 80
ServerName 127.0.0.1
....
Aktifkan modul-modul berikut dengan meng-uncomment:
/usr/local/etc/httpd/httpd.conf...
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:
/usr/local/etc/httpd/httpd.confInclude /usr/local/etc/httpd/extra/httpd-vhosts.conf

Sunting virtual host nya:
$ vim /usr/local/etc/httpd/extra/httpd-vhosts.conf
Isi dengan skrip di bawah ini:
/usr/local/etc/httpd/extra/httpd-vhosts.conf<VirtualHost *:80>
ServerName localhost.php5
DocumentRoot "/Users/ali/Web/"
ServerAdmin admin@situsali.com
<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 admin@situsali.com
<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.phpuncommentDirectoryIndexpada 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:

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

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:


Semoga bermanfaat :D
