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.

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

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.

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 comment
Masa kaya gitu dibilang “upgrade dikit” ? Mas Nurudin memang rendah hati … :)
Sayangnya, saya ga punya Mac e mas… njuk piye jal ? Awis nikuuu …