在 Mac 安裝 PHP 套件
序言
要我說的話,最適合 Web 開發的作業系統順序是:Linux > macOS > Windows。
雖然 macOS 是基於 UNIX 的作業系統,但他終究是 macOS 而不是 Linux 發行版。設定起來,自然不如 Linux 順心而自然。
開始前
在接下去以前,你的 Mac 要有...
- Homebrew
- 內含 <abbr title="PHP Extension Community Library">PECL</abbr> 的 PHP
你可以輸入以下指令,檢查套件是否有是否安裝:
pecl help version # PECL 與 PHP 版本
brew -v # Homebrew 版本
這裡有如何安裝內含 PECL 的 PHP 教學...至於如何安裝 Homebrew,官網都有指引......而 PECL 是一種套件管理工具,任務大致上與 Composer 差不多,不過 PECL 管了一些更底層(用 C 語言寫的...)的套件,所以 Composer 裝不了。
這次的主角是 igbinary。
安裝
安裝起來還不簡單,sudo pecl install igbinary
不就好了?
這麼想的你就錯了: ERROR: failed to mkdir /usr/include/php/ext/igbinary
sudo 也不行是啥巫術?簡直就像有 SELinux 之類的東西在作怪。
......爬文才發現,macOS 還真的有類似 SELinux 的東西:System Integrity Protection。
好吧,那就關掉吧。
關掉 SIP
重新開機,看到蘋果商標後,同時按下 <kbd>Command</kbd> + <kbd>R</kbd> 以進入恢復模式。
接著點選終端機,並輸入 csrutil disable
並重新開機。
再安裝
這次就可以直接輸入 sudo pecl install igbinary
了。記得安裝完以後重啟伺服器軟體。
後記
「很多人 Mac 最後不是賣掉,就是灌 Windows。」
「喔,我倒不會。最差的情況是灌 Ubuntu 而已。」
參考資料
- 一些升級 El Capitan 之後要注意的事項
- can't install imagick php extension on mac
- Mac OS/X won't let me mkdir /usr/share/tomcat6, even as root
- sudo mkdir in /usr/, Operation not permitted. El Capitan
- Install PEAR and PECL on Mac OS X
- Installing PECL on Mac OS X with Homebrew
- What is the difference between PEAR and Composer?
- 如何捋清楚php的pecl和pear,composer三者的区别与联系?