mac OSを10.11にアップデートしたら、ローカルのapacheでPHPやimagickが動かなくなったので再設定をしました。
PHPで実行する際に警告が表示される場合の修正方法を追記しました(2016/3/9)。
Xcodeのバージョンアップ
php56-imagickのインストールでXcodeのバージョンでエラーが発生しないようにXcodeを最新版にしておきます。Xcodeのバージョンが古い場合は、以下の手順で更新します。
brewの更新
ターミナルで以下を実行して、パスのパーミッションの設定とbrewの更新を行います。念のため、brew updateは2回行います。
sudo chown -R $(whoami):admin /usr/local brew update brew update brew upgrade
- ターミナルで「brew doctor」を実行して、消せるwarningは消しておく
brew doctor
- 以下が表示されたら完了
Your system is ready to brew.
上記で、警告やエラーが表示されたら、画面の指示に従って解消してください。解消したら、再び「brew doctor」を実行して、上記のメッセージが表示されたら完了です。
php5.6の再インストール
- php5.6と依存関係を削除するために、ターミナルで以下を実行
sudo brew rm php56 && brew deps php56 | xargs brew rm
- php56を再インストール
brew install bzip2 brew install php56
PHP5.6をapacheに設定
php56のインストール時に表示されるメッセージに従って設定を行います。
- ターミナルから以下でapache2の設定を起動
sudo vi /etc/apache2/httpd.conf
- [esc][/][p][h][p][Enter]で「php」を検索して、LoadModule php5_moduleから始まる行を以下のようにする
LoadModule php5_module /usr/local/opt/php56/libexec/apache2/libphp5.so
- [esc][:][w][q][Enter]で保存
- 以下でapache2を再起動
sudo apachectl restart
以上で、PHP5.6の最新版がインストールされます。
xdebugとimagickをインストール
xdebugでエラーが発生したので再設定します。
- 以下をターミナルで実行
brew install php56-xdebug brew install --build-from-source php56-imagick
- xdebugの設定を行う
vi /usr/local/etc/php/5.6/php.ini
sudo apachectl restart
phpを実行すると毎回警告が表示される場合の対処方法
3/9に更新した手順であれば問題ないと思いますが、それ以前の方法でImagickをインストールした場合、PHPを実行するたびに以下のような警告が表示されるかもしれません。
PHP Warning: Version warning: Imagick was compiled against Image Magick version 1682 but version 1683 is loaded. Imagick will run but may behave surprisingly in Unknown on line 0
これを修正する方法です。
何を言っているのか
Imagickは、Image Magick version 1682用にビルドされているが、読み込まれているImage Magickはversion 1683である。Imagickは動くだろうが、不測の動作をするかもしれない。
だそうです。
解決策
php70-imagick has warnings · Issue #2766 · Homebrew/homebrew-php · GitHub に解決策が紹介されていました。
ターミナルから、以下の作業をします。
OS Xのアップグレード
OS Xをバージョンアップしていた場合、「configure: error: Cannot find lib」というエラーが出る可能性があるので、legacy-homebrew/Troubleshooting.md at master · Homebrew/legacy-homebrew · GitHub を参考に環境を更新します。
xcode-select --install
ウィンドウが表示されたら「インストール」を押してください。
完了したら、以下でOS Xを更新します。
brew upgrade
1時間程度かかる場合があるので気長に待ってください。
Homebrewの更新
その他の環境も最新にします。以下のように、brew updateを2回やって、更新がなくなったら、brew doctorで何か警告が表示されたらそれを実行しましょう。
brew update brew update brew doctor
brew doctorの結果が以下のようであれば準備完了です。
Your system is ready to brew.
それ以外の警告やエラーが表示された場合は、実行するべきコマンドが表示されるので、それを実行して、上記の表示になるまで[brew doctor]を実行してください。
imagickの更新
以下を実行します。
brew rm php56-imagick brew install --build-from-source php56-imagick