Home   Archives  About

Menjalankan php 5.6 Dan php 7.2 dengan Apache Di macOS High Sierra

Persiapan

$ sudo apachectl stop
$ sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist 2>/dev/null
$ mkdir -p ~/Web/logs
$ ls -l ~/

Hasilnya seperti berikut:

total 0
drwx------@  3 ali  staff    96 Oct 22 14:26 Applications
drwx------+  5 ali  staff   160 Oct 24 14:23 Desktop
drwx------+  3 ali  staff    96 Oct 22 10:48 Documents
drwx------+ 21 ali  staff   672 Oct 24 17:54 Downloads
drwx------@ 60 ali  staff  1920 Oct 23 17:28 Library
drwx------+  3 ali  staff    96 Oct 22 10:48 Movies
drwx------+  3 ali  staff    96 Oct 22 10:48 Music
drwx------+  3 ali  staff    96 Oct 22 10:48 Pictures
drwxr-xr-x+  4 ali  staff   128 Oct 22 10:48 Public
drwxr-xr-x@  9 ali  staff   288 Oct 24 16:11 Web

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

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 dengan host 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

...

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

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 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.php uncomment DirectoryIndex 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:

$ apachectl configtest
Syntax OK 

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
Name      Status  User Plist
httpd     started root /Library/LaunchDaemons/homebrew.mxcl.httpd.plist
php       started root /Library/LaunchDaemons/homebrew.mxcl.php.plist
php@5.6   started root /Library/LaunchDaemons/homebrew.mxcl.php@5.6.plist

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:

Written on Oct 24, 2018.