vol.55 人気フレームワーク LaravelをMacにインストールするときの注意点

f:id:BOEL:20160930203836j:plain

こんにちは。エンジニアの毛利です。
Webサイトやアプリケーション開発にフレームワークを使うことがあります。

直書きでなんとかなってしまう分量であれば、あえて使う必要はないかもしれません。

ですが中規模・大規模プロジェクト、または長期にわたるプロジェクトで開発をする場合、フレームワークという決められた枠組みの中で開発を進めることで、記述コードの削減や、機能を効率よくまとめ、管理することができます。


また、枠組みを使うことでプログラムのセキュリティが担保できるなど、開発時間・作業工程の効率化や省力化する手段となります。

今回LaravelというPHPフレームワークに注目し、Macにインストールすることにしてみました。


その手順が私自身が使っているMacだと、スムーズに行かずインストール完了までが意外と複雑だったので、そのときの対策をご紹介します。


Larvalとは

オープンソースPHPフレームワークの一種です。


近年その人気が急上昇しており、すでによく知られているCakePHPSymfonyに並び、その人気度から将来的にはシェアがこれらを越え、世界的に標準になるのでは?と推測されています。


インストールする前に

テスト環境を構築するためにMacにインストールしていきます。

Mac OS 用パッケージマネージャー「Homebrew」というのを用いますが、Mac OS X Mavericks 10.9.5以下のバージョンからYosemiteにアップグレードした際に、「Homebrew」に不具合が出るケースがあります。


今回まさにそのケースにあたってしまいました。


まず「Homebrew」を使えるようにする必要がありました。

Macの環境は以下の通りです。

環境

OSバージョン:Mac OSX 10.11.6 El Capitan
本体:Mac Pro (Mid 2012)
※Mountain Lionから順にアップデートしていっています。

 

「Homebrew」の修復

エラー1

まず、brewコマンドを実行してみます。

$ brew update
コマンドを実行すると下記のエラーが出現します。

 

/usr/local/bin/brew: /usr/local/Library/brew.rb: /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby: bad interpreter: No such file or directory
Rubyへのリンクにエラーが出ています。これを修復するために下記ファイルを修正します。

 

$ vi /usr/local/Library/brew.rb
viエディタ、もしくはMacの標準appのテキストエディットで編集します。
viエディタで行う場合は下記コマンドを実行します。
1行目の

#!/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby -W0

#!/System/Library/Frameworks/Ruby.framework/Versions/current/usr/bin/ruby -W0
へ変更します。

 

エラー2

次にbrewを実行すると次のようなエラーがでます。

 

Homebrew requires Leopard or higher. For Tiger support, see:
https://github.com/mistydemeo/tigerbrew


このエラーを解決するためには下記を実行します。

 

$ git fetch origin master:refs/remotes/origin/master -n
$ git checkout origin/master -- Library/brew.rb


gitからリモートリポジトリの最新情報を取得し、チェックアウトします。
※gitをMacにインストールしている必要があります。

 

エラー3

次に出るエラーはパーミッション関連のエラーになります。

 

/usr/local/bin/brew: line 21: /usr/local/Library/brew.rb: Permission denied
/usr/local/bin/brew: line 21: exec: /usr/local/Library/brew.rb: cannot execute: Undefined error: 0


コマンドを入力してパーミッションを変更します。

 

$ chmod 754 /usr/local/Library/brew.rb


エラー4

次で最後のエラーです。

 

/usr/local/Library/brew.rb: line 1: syntax error near unexpected token '('
/usr/local/Library/brew.rb: line 1: `std_trap = trap("INT") { exit! 130 } # no backtrace thanks’


このエラーを解決するためには再びGitコマンドを使います。
ローカルリポジトリの内容をリモートリポジトリの内容に強制的に合わせるコマンドになります。

 

$ git reset --hard origin/master


これで全てのエラーをクリアしました。

 

Laravelのインストール準備

composerのインストール

Laravelのインストール準備をしていきます。
まず、PHPのパッケージ管理ツールをインストールします。

インストール方法は基本的に下記のサイトを参考にしています。
本記事ではMAMP環境にインストールする際のポイントを書いていますが、全体を網羅する場合は下記サイトも合わせてご確認ください。

[PHP]Laravel5をOS X(Mac)のローカルサーバーにインストールする | PHP Archive

 

$ curl -sS https://getcomposer.org/installer | php
$ sudo mv composer.phar /usr/local/bin/composer


パスを通します。

 

$ vi .bash_profile

 

#下記を入力し保存


export PATH=$PATH:/usr/local/bin

$ source ~/.bash_profile
$ composer -V
Composer version 1.2.0 2016-07-19 01:28:52


バージョン情報が返ってくればインストール完了です。

 

Laravelのインストール

Laravelをインストールします。今回はMAMPでの使用を想定しています。

MAMP & MAMP PRO

 

MAMP内のPHPを使うためにまずパスを通します。
PHPバージョンはMAMPのインストールバージョンや、使いたいPHPバージョンによって変更します。

 

$ vi ~/.bash_profile
#下記を追記し保存
export PATH=$PATH:/Applications/MAMP/bin/php/php7.0.10/bin

$ source ~/.bash_profile


次に最新版のLaravelのプロジェクトをインストールします。
本環境ではMAMPのドキュメントルートに設定しました。

 

$ cd /Applications/MAMP/htdocs
$ composer create-project laravel/laravel 名前 --prefer-dist


MAMPのドキュメントルート設定を「htdocs」し、
http://localhost:8888/名前/public
にアクセスすると下のようなスタートページが表示します。

f:id:BOEL:20160930212845j:plain


これでインストールが完了です。

 

まとめ

今回はLaravelのインストールより、Macチューニングの方が時間がかかりました。
修復に必要な参考サイトはたくさんあるのですが、本環境の場合で一通りの手順を網羅しているサイトがなかったため、今回の記事を書きました。
Laravelのインストールに限らず、HomeBrewを使う場合、今回のような修復が必要になる場合がありますので今回のTIPを参考にして頂ければ幸いです。

 

参考サイト
rubyパス関連(Yosemite以降)

Yosemiteでbrewが壊れた - Qiita

gitでファイル修復関連

Yosemiteで動かないHomebrewをgitコマンドで治す - Qiita

パーミッションシンタックスエラー関連

mac OS X でhomebrewがupdateできない - Qiita

総括

Yosemiteアップグレード後に発生したHomebrewのエラー対応(2015年9月版) - Qiita

Laravelのインストール

[PHP]Laravel5をOS X(Mac)のローカルサーバーにインストールする | PHP Archive