##説明
Laravelを導入時ハマってしまったのでその記録。
##Conposerのインストール
Homebrew(macのソフトウェアの導入を簡単にするもの)は入っていたので割愛しますが、まずはConposer(phpのパッケージ管理システム)をインストール。
$ curl -sS https://getcomposer.org/installer | php
次にComposerを移動。グローバルにするため。移動かと思ったら名前も変わるらしい(後から知った)
$ mv composer.phar /usr/local/bin/composer
とりあえずバージョン確認
$ composer -v
↓こんなの出てきてこの下にバージョンとか書いてある
______
/ ____/___ ____ ___ ____ ____ ________ _____
/ / / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__ ) __/ /
\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
/_/
##laravelのインストール
準備は整ったのでここでlaravelのインストール
$ composer global require laravel/installer
##PATHを通す
.bash_profileに下記の記述を追加
export PATH=$HOME/.composer/vendor/bin:$PATH
記述を追加後、ターミナルでsourceコマンドを実行
$ source ~/.bash_profile
バージョンを確認してみる
$ laravel --version
Laravel Installer 2.3.0
ここまではエラーなく進みインストールも完了。
##プロジェクトの作成
ここでググった手順と同じ通りにlaravelのプロジェクトを作成してみる
$ laravel new アプリ名
エラった。
別の方法で作成してみる
$ composer create-project laravel/laravel --prefer-dist アプリ名
できた!!
と最初は思っていたが、エラーはでなかっただけでこれはプロジェクトの作成だけではなくて、composerを利用してlaravelをインストールして、プロジェクトを作成しているらしい。この時点ではプロジェクト作成しただけだと思っていた。
今作成したプロジェクトのディレクトリに移動してartisanコマンドでサーバ立ち上げる
$ php artisan serve
Laravel development server started: <http://127.0.0.1:8000>
これで、はじめましてLaravelできました。
##さっきのエラー
先ほどのエラーが気になってPATHとか通しなおしてみたりしてやり直してみたけど、laravel newではやっぱりエラーが解消しない。ここから別のソースみながら新しいプロジェクトとか作ってみる
$ php composer.phar create-project --prefer-dist laravel/laravel アプリ名
こんなエラーが
Could not open input file: composer.phar
要はファイルを開けませんでしたってことなので、composer.pharを探してみるけど、ローカルにそんなファイルそんざいしないっぽい。composerインストールした時確かにあったはず。
##原因
先ほど書いたが、mvでファイルが移動するだけかと思っていたが、ファイル名が変更されるというのをどこかで見た。
もしくは、laravelを複数回インストールする記述をしていたからか。
現在の時点でどちらか不明だけど、とりあえず
$ /usr/local/bin/composer update
してもダメ。
次に
$ brew tap josegonzalez/homebrew-php
して
$ brew install josegonzalez/php/composer
brew使って、phpとcomposerをインストールしたのかな
$ composer create-project laravel/laravel --prefer-dist アプリ名
でとりあえず新しいプロジェクトはできました。
##本日のまとめ
composer.pharが名前変わっているのが原因なのか今日ははっきりしなかった。とりあえずlaravelだけ会えてよかった。
たった導入するだけなのに環境構築は考えなしでやるとハマる。
とりあえず100%解決はしていないから続く。