Mencoba Local Development di MacOS Sierra dengan Laravel Valet

Saya mau cerita tentang Local Development di MacOS Sierra dengan Laravel Valet. Saya bukan Developer dan Bukan Pula Designer, saya hanya pengguna Mac dan Installer ternama. Iya saya hobi install, download, upload dan sejenisnya. Hobi Install ini saya lakukan di Mac, iPhone, Android maupun di Windows dan sering sekali Install di Server.

Ya saya seorang yang “konon” dikenal Blogger yang jarang posting. Ada postingan itupun kalau #berling (kalau kober dan kalau eling) dan masalahnya adalah kalau pas kober itu tidak eling dan kalau pas eling itu pas tidak kober. Rumit bukan?

Langsung.. jadi sejak saya MakeMac (bukan nama website) setiap saya Local Development selalu mengandalkan Apache (bawaan MacOS) dan PHP dan install MySQL. Itu saya jalani. Tapi sebelumnya saya dulu mengandalkan Aplikasi mudah semacam XAMPP (kalau di Windows) di Mac saya mengenalnya dengan MAMP.

Logo PHP 7
Logo PHP 7
Itu saya lakukan bertahun2 sampai anak pertama lahir (halah) kemudian setelah upgrade kemampuan (dikit, iya upgrade dikit sekali) saya mengenal apa itu BREW ya itu semacam PAKET INSTALLER di Mac, kalau di Linux kita mengenal semacam YUM ataupun apt-get di Ubuntu. Saya install dan cari Tutorial disana-sini dan menemukan hal-hal luar biasa.

Saya terlolol dan tertolong oleh BREW ini. Oiya yang mau mencoba BREW di Mac gampil (istilah untuk gampang banget). Cara Install Brew di MacOS Sierra. Yang hobby baca dan tudepoin bisa langsung cus ke http://brew.sh/ itu sudah komplit.

Perlu di ingat Brew ini nanti perlu menjalankan Xcode Command Tools nya MacOS. Jadi pastikan untuk download Xcode terlebih dahulu. Tapi perlu diingat Xcode ini bukan aplikasi kecil. Ukurannya berGiga-Giga dan itu kalau seperti saya Fakir Benwit ini eman2 gitu. Jadi saran saya sih Install saja Xcode Command Tools nya, nggak usah Xcode komplit.

Cara Install Xcode command tools di MacOS Sierra, Caranya mudah juga, buka Terminal (kalau saya tekan Command + Space) dan ketik Terminal. Setelah terbuka silahkan ketikkan ini

xcode-select --install

dan ikuti petunjuknya sampai selesai. Setelah selesai sampean sudah siap ngeBrew. Begini caranya Install. Jalankan juga di Terminal (bukan Terminal Tirtonadi, atau Terminal Giwangan) Terminal App
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Tunggu Prosesnya hingga selesai, kecepatan tergantung kecepatan Koneksimu. Jadi sabarlah nak, siapkan Kopi dan silahkan ngeBREW dalam arti sebenarnya sampai proses installasi selesai. Kalau sudah selesai kita siap cas cus.

Setelah proses Installasi Brew selesai, silahkan periksa kesehatannya dengan cara

brew doctor

Kalau semua OKE dan SEHAT, silahkan install hal2 yang dibutuhkan. Beberapa koman penting brew

brew list (untuk list aplikasi terinstall)
brew update (update paket ke server agar proses installasi selalu terbaru)
brew upgrade (upgrade paket yang sudah terinstall)
brew uninstall (untuk Uninstall aplikasi yang sudah terinstall)
brew config (lihat config brew kalian)

Semua aplikasi brew kalian tersimpan disini

/usr/local/Cellar/

Sudah beres, brew sudah ter install. Dulu ketika saya Local Development di MacOS (OS X) saya make cara sederhana ini.

Install MySQL lewat Brew MacOS Sierra, petunjuk komplit dari mas ini

brew install -v mysql
cp -v $(brew --prefix mysql)/support-files/my-default.cnf $(brew --prefix mysql)/my.cnf
cat >> $(brew --prefix mysql)/my.cnf < <'EOF'
# Echo & Co. changes
max_allowed_packet = 2G
innodb_file_per_table = 1
EOF
sed -i '' 's/^# \(innodb_buffer_pool_size\)/\1/' $(brew --prefix mysql)/my.cnf

Kemudian Eksekusi lagi perintah ini

[ ! -d ~/Library/LaunchAgents ] && mkdir -v ~/Library/LaunchAgents
[ -f $(brew --prefix mysql)/homebrew.mxcl.mysql.plist ] && ln -sfv $(brew --prefix mysql)/homebrew.mxcl.mysql.plist ~/Library/LaunchAgents/
[ -e ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist ] && launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist

Dan terakhir adalah ini
$(brew --prefix mysql)/bin/mysql_secure_installation

Kemudian mari kita Install Apachenya dan disable Apache bawaannya.
Cabut dulu Apache bawaannya dari otomatis Running
sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist 2>/dev/null

Tambahkan dua Tap baru
brew tap homebrew/dupes
brew tap homebrew/apache

Kemudian update
brew update

Dan Secara berurutan lakukan perintah2 ini
brew install -v httpd22 --with-brewed-openssl

Kemudian

[ ! -d ~/Sites ] && mkdir -pv ~/Sites
touch ~/Sites/httpd-vhosts.conf
USERHOME=$(dscl . -read /Users/`whoami` NFSHomeDirectory | awk -F": " '{print $2}') cat >> $(brew --prefix)/etc/apache2/2.2/httpd.conf < <EOF
# Include our VirtualHosts
Include ${USERHOME}/Sites/httpd-vhosts.conf
EOF

Lanjutkan dengan ini
[ ! -d ~/Sites/logs ] && mkdir -pv ~/Sites/logs

Dan perintah ini

USERHOME=$(dscl . -read /Users/`whoami` NFSHomeDirectory | awk -F": " '{print $2}') cat > ~/Sites/httpd-vhosts.conf < <EOF
#
# Use name-based virtual hosting.
#
NameVirtualHost *:80
#
# Set up permissions for VirtualHosts in ~/Sites
#
<Directory "${USERHOME}/Sites">
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
Allow from all
# For http://localhost in the users' Sites folder
ServerName localhost
DocumentRoot "${USERHOME}/Sites"
#
# VirtualHosts
#
## Manual VirtualHost template
#
# ServerName project.dev
# CustomLog "${USERHOME}/Sites/logs/project.dev-access_log" combined
# ErrorLog "${USERHOME}/Sites/logs/project.dev-error_log"
# DocumentRoot "${USERHOME}/Sites/project.dev"
#
#
# Automatic VirtualHosts
# A directory at ${USERHOME}/Sites/webroot can be accessed at http://webroot.dev
# In Drupal, uncomment the line with: RewriteBase /
# This log format will display the per-virtual-host as the first field followed by a typical log line
LogFormat "%V %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combinedmassvhost
# Auto-VirtualHosts with .dev
ServerName dev
ServerAlias *.dev
CustomLog "${USERHOME}/Sites/logs/dev-access_log" combinedmassvhost
ErrorLog "${USERHOME}/Sites/logs/dev-error_log"
VirtualDocumentRoot ${USERHOME}/Sites/%-2+
# Auto-VirtualHosts with xip.io
ServerName xip
ServerAlias *.xip.io
CustomLog "${USERHOME}/Sites/logs/dev-access_log" combinedmassvhost
ErrorLog "${USERHOME}/Sites/logs/dev-error_log"
VirtualDocumentRoot ${USERHOME}/Sites/%-7+
EOF

Dan terakhir agar Apache Running di port 80

sudo bash -c 'export TAB=$'"'"'\t'"'"'
cat > /Library/LaunchDaemons/co.echo.httpdfwd.plist < <EOF

< !DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
${TAB}Label
${TAB}co.echo.httpdfwd
${TAB}ProgramArguments
${TAB}
${TAB}${TAB}sh
${TAB}${TAB}-c
${TAB}${TAB}ipfw add fwd 127.0.0.1,8080 tcp from any to me dst-port 80 in && sysctl -w net.inet.ip.forwarding=1
${TAB}
${TAB}RunAtLoad
${TAB} ${TAB}UserName
${TAB}root
EOF'

Tutup dengan perintah ini
sudo launchctl load -w /Library/LaunchDaemons/co.echo.httpdfwd.plist

Sudah beres, sekarang lanjutkan Install PHP menggunakan Brew di MacOS Sierra

brew tap homebrew/php

# Skip this if using PHP 5.4 or higher
brew tap homebrew/versions

Dan lanjutkan Install
brew install -v php55 --homebrew-apxs --with-apache

Ketikkan beberapa perintah konfig
cat >> $(brew --prefix)/etc/apache2/2.2/httpd.conf < <EOF
# Send PHP extensions to mod_php
AddHandler php5-script .php
AddType text/html .php
DirectoryIndex index.php index.html
EOF

Dan perintah ini
sed -i '-default' "s|^;\(date\.timezone[[:space:]]*=\).*|\1 \"$(sudo systemsetup -gettimezone|awk -F": " '{print $2}')\"|; s|^\(memory_limit[[:space:]]*=\).*|\1 256M|; s|^\(post_max_size[[:space:]]*=\).*|\1 200M|; s|^\(upload_max_filesize[[:space:]]*=\).*|\1 100M|; s|^\(default_socket_timeout[[:space:]]*=\).*|\1 600|; s|^\(max_execution_time[[:space:]]*=\).*|\1 300|; s|^\(max_input_time[[:space:]]*=\).*|\1 600|;" $(brew --prefix)/etc/php/5.5/php.ini

Lanjutkan yang ini
USERHOME=$(dscl . -read /Users/`whoami` NFSHomeDirectory | awk -F": " '{print $2}') cat >> $(brew --prefix)/etc/php/5.5/php.ini < <EOF
; PHP Error log
error_log = ${USERHOME}/Sites/logs/php-error_log
EOF

Dan ini juga
touch $(brew --prefix php55)/lib/php/.lock && chmod 0644 $(brew --prefix php55)/lib/php/.lock

Terakhir jalankan Apache
ln -sfv $(brew --prefix httpd22)/homebrew.mxcl.httpd22.plist ~/Library/LaunchAgents

Dan biar otomatis jalan
launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.httpd22.plist

Kelar Deh. Biar tambah maknyus, misalnya daripada sampean punya Web Development alamat http://localhost/domainsatu http://localhost/domaindua kan nggak ganteng dan elik gitu. Biar cantik dan jadi http://domainsatu.dev http://domaindua.dev install saja DNSMASQ.

Begini cara Install DNSMASQ di MacOS Sierra.

brew install -v dnsmasq

Terus Konfig dikit
echo 'address=/.dev/127.0.0.1' > $(brew --prefix)/etc/dnsmasq.conf
echo 'listen-address=127.0.0.1' >> $(brew --prefix)/etc/dnsmasq.conf

Biar otomatis jalan
sudo cp -v $(brew --prefix dnsmasq)/homebrew.mxcl.dnsmasq.plist /Library/LaunchDaemons
sudo launchctl load -w /Library/LaunchDaemons/homebrew.mxcl.dnsmasq.plist

Terakhir bikin resolvernya
sudo mkdir -v /etc/resolver
sudo bash -c 'echo "nameserver 127.0.0.1" > /etc/resolver/dev'

Selesai, nanti di Folder sampean di ~/Sites/ tadi asal bikin bambang nanti akan jadi http://bambang.dev Joss kan?

Terus gimana dengan LARAVEL VALET tadi? Jadi begini

Cara Install Laravel Valet di MacOS Sierra

Laravel New Logo
Laravel New Logo
Alkisah setelah asik masuk dengan cara diatas saya tercerahkan oleh Saudara saya MR. CENK (@cengkarux) CEO dari PILAMO (SEPETAK) ini.

Dia kemudian bercerita kalau suruh saya mencoba make VALET saja buat Local Development, lebih irit Memori dan mudah.dan Maknyus. Ya udah saya ikuti petunjuk beliau saja dan berikut Install Laravel Valet di MacOS Sierra.

Cara installnya ini juga Gampil, silahkan ikuti petunjuk dibawah ini Tapi karena saya sedang #selo maka saya tuliskan lagi disini.

Pertama adalah Laravel Valet membutuhkan PHP 7.0 jadi install dulu itu PHP nya.

brew install homebrew/php/php70

Kemudian Install Valet dengan Composer dengan cara
composer global require laravel/valet

Dan pastikan ~/.composer/vendor/bin sudah ada dalam System “PATH” mu. Biasanya di MacOS di .bash_profile mu.

Langkah terakhir adalah install valetnya dengan cara
valet install

Proses ini akan install macem2 termasuk DNSMasq agar bisa dinamis dan enak-enak nantinya. Kalau semua sudah oke, tinggal jalankan valet nya dengan cara valet start.

Serve with Laravel Valet
Serve with Laravel Valet

Nah sekarang gimana kerjanya? Misalnya semua pekerjaan development web ditaruh di ~/Sites silahkan masuk ke Direktori sana kemudian jalankan saja

valet park

Perintah diatas akan memarkir ~/Sites dalam sistem palet jadi semua folder didalam ~/Sites tadi akan membentuk domain baru. Misalnya ada folder taufanpr, maka nanti saya bisa akses taufanpr.dev

Dan kelar. Semua sudah jalan dan work. Selamat mencoba dan bermain-main. Kalau ada hal-hal yang membingungkan mari kita sama diskusi.

1 thought on “Mencoba Local Development di MacOS Sierra dengan Laravel Valet

  1. Masa kaya gitu dibilang “upgrade dikit” ? Mas Nurudin memang rendah hati … :)
    Sayangnya, saya ga punya Mac e mas… njuk piye jal ? Awis nikuuu …

Leave a Reply

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

Name *