0

Konfigurasi Apache dan PHP pada macOS Big Sur

MacOS sangan pupuler dikalangan pengembang, baik itu untuk membuat program mobile phone (android, iOS), desktop, maupun program untuk server. Baik itu pemograman dengan bahasa C, C++, C#, java, Java Script, php, maupun bahasa pemrograman lainnya. Pada postingan kali ini, akan dibahas mengenai konfigurasi apache2 dengan beberapa versi php yang dapat konfigurabel pada operating sistem macOS. Versi macOS yang digunakan adalah versi Big Sur.

XCode Command Line Tools

Jika belum menginstall XCode, ada baiknya install terlebih dahulu command line tools yang nantinya diperlukan oleh homebrew.

xcode-select --install

Homebrew Installation

Homebrew adalah sistem manajemen paket perangkat lunak sumber terbuka dan gratis yang menyederhanakan penginstalan perangkat lunak pada sistem operasi macOS Apple dan Linux. Untuk menginstall apache dan php dapat melalui homebrew.

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"

Jika sudah berhasil diinstal, untuk mengetahu versi homebrew dapat menggunakan command:

brew --version

Untuk memeriksa status aplikasi yang sudah diinstal, dapat menggunakan command:

brew doctor

Big Sur Required Libraries

brew install openssl

Apache Installation

Jika apache built-in sudah running, Apache harus dimatikan terlebih dahulu, dan script autostartnya. 

sudo apachectl stop
sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist 2>/dev/null

Jika sudah dimatikan, selanjutnya install httpd.

brew install httpd

Selanjutnya, jalankan httpd.

brew services start httpd

Apache dapat dikontrol dengan menggunakan brew command:

$ brew services stop httpd
$ brew services start httpd
$ brew services restart httpd

Apache Configuration

Secara default, port yang digunakan adalah 8080. Sehingga kita perlu menggantinya ke port 80, dengan cara mengedit file httpd.conf.

nano /usr/local/etc/httpd/httpd.conf

Cari baris berikut:

Listen 8080

Kemudian ganti ke 80.

Listen 80

Langkah berikutnya adalah mengganti direktori document root untuk apache. Direktori ini digunakan untuk menyimpan file-file yang dijalankan pada apache. Secara default lokasi document root berada di /usr/local/var/www.

DocumentRoot "/usr/local/var/www"

Ubah lokasi ke direktori user di mana your_user adalah nama akun pengguna.

DocumentRoot /Users/your_user/Sites

Juga ganti <Directory> sesuai dengan document root.

<Directory "/Users/your_user/Sites">

Jika diperlukan ganti AllowOverride menjadi All

#
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
#   AllowOverride FileInfo AuthConfig Limit
#
AllowOverride All

Enable juga module mod_rewrite.

LoadModule rewrite_module lib/httpd/modules/mod_rewrite.so

User & Group

Sekarang kita memiliki konfigurasi apache yang menunjuk ke direktori Sites di direktori home kita. Namun, masih ada satu masalah. Secara default, apache berjalan sebagai user daemon dan group daemon. Ini akan menyebabkan masalah izin saat mencoba mengakses file di direktori home kita. Ubah user dan group agar sesuai dengan akun pengguna Anda (ganti your_user dengan nama pengguna dan group dengan staff.

User your_user
Group staff

Servername

Biasanya apache memiliki konfigurasi untuk name server, tetapi secara default dinonaktifkan.

#ServerName www.example.com:8080

Dan replace menjadi

ServerName localhost

Direktori Folder

Langkah berikutnya membuat direktori Sites pada direktori home. Untuk mencoba apakah apache sudah berjalan atau belum, buat file di direktori Sites.

mkdir ~/Sites
echo "<h1>User Web Root</h1>" > ~/Sites/index.html

Restart apache untuk mengetahui perubahan.

brew services stop httpd
brew services start httpd

Buka url http://localhost dengan browser kesayangan untuk mencoba apache.

PHP Installation

Untuk menginstall php, kita memerlukan tab dari shivammathur.

brew tap shivammathur/php

Selanjutnya install php dengan bantuan shivammathur.

brew install shivammathur/php/php@5.6
brew install shivammathur/php/php@7.0
brew install shivammathur/php/php@7.1
brew install shivammathur/php/php@7.2
brew install shivammathur/php/php@7.3
brew install shivammathur/php/php@7.4
brew install shivammathur/php/php@8.0

Untuk mengkonfigurasi php, buka file php.ini.

/usr/local/etc/php/5.6/php.ini
/usr/local/etc/php/7.0/php.ini
/usr/local/etc/php/7.1/php.ini
/usr/local/etc/php/7.2/php.ini
/usr/local/etc/php/7.3/php.ini
/usr/local/etc/php/7.4/php.ini
/usr/local/etc/php/8.0/php.ini

Untuk beralih versi php yang diinginkan, gunakan command berikut:

brew unlink php && brew link --overwrite --force php@5.6
brew unlink php && brew link --overwrite --force php@7.0
brew unlink php && brew link --overwrite --force php@7.1
brew unlink php && brew link --overwrite --force php@7.2
brew unlink php && brew link --overwrite --force php@7.3
brew unlink php && brew link --overwrite --force php@7.4
brew unlink php && brew link --overwrite --force php@8.0

Untuk mengecek versi php yang digunakan, gunakan command berikut:

php -v

Konfigurasi PHP

Setelah php berhasil diinstal, langkah selanjutnya adalah konfigurasi module php pada httpd.conf.

nano /usr/local/etc/httpd/httpd.conf

Load module php

LoadModule php5_module /usr/local/opt/php@5.6/lib/httpd/modules/libphp5.so
#LoadModule php7_module /usr/local/opt/php@7.0/lib/httpd/modules/libphp7.so
#LoadModule php7_module /usr/local/opt/php@7.1/lib/httpd/modules/libphp7.so
#LoadModule php7_module /usr/local/opt/php@7.2/lib/httpd/modules/libphp7.so
#LoadModule php7_module /usr/local/opt/php@7.3/lib/httpd/modules/libphp7.so
#LoadModule php7_module /usr/local/opt/php@7.4/lib/httpd/modules/libphp7.so
#LoadModule php_module /usr/local/opt/php@8.0/lib/httpd/modules/libphp.so

Selanjutnya atur Directory Index untuk php. Cari block berikut:

<IfModule dir_module>
    DirectoryIndex index.html
</IfModule>

Ganti menjadi:

<IfModule dir_module>
    DirectoryIndex index.php index.html
</IfModule>

<FilesMatch \.php$>
    SetHandler application/x-httpd-php
</FilesMatch>

Restart apache.

brew services stop httpd
brew services start httpd

Path

Pastikan path untuk php sudah benar. Tambahkan kode berikut pada file .bash_profile.

cd ~
nano .bash_profile
export PATH=/usr/local/bin:/usr/local/sbin:$PATH