laravel 5.1 → 5.2にアップデートしてみた

このサイトはlaravelベースで作ってるんだけども、昨年末に5.2がリリースされてたんですね。知らんかった。

そんなわけで、早速5.2にアップデートしてみました。

まず、プロジェクト配下のcomposer.jsonの内容を修正します。

"laravel/framework": "5.1.*",
"laravelcollective/html": "^5.1"

 ↓
"laravel/framework": "5.2.*",
"laravelcollective/html": "^5.2"

composer.jsonのrequire-devに以下を追加します。

"symfony/dom-crawler": "~3.0",
"symfony/css-selector": "~3.0",

これでアップデートしてみます。

$ composer update

すると、こんな警告メッセージが表示されました。

Warning: This development build of composer is over 60 days old. It is recommended to update it by running "/usr/local/bin/composer self-update" to get the latest version.

composer自身をアップデートしろ、ということみたい。
というわけで、下記のコマンドを実行します。

# composer self-update

sudoだと「composerコマンドがない」と言われ、suでスーパーユーザになってから上記のコマンドを実行しました。
そういうもんなんでしょうか。

あと、config/app.phpから下記の2行を削除(コメントアウト)しました。5.2からは不要になったようです。

Illuminate\Routing\ControllerServiceProvider::class
Illuminate\Foundation\Providers\ArtisanServiceProvider::class

ここで再度アップデートを行います。

$ composer update

今度はうまくいったっぽい。

で、ブラウザで確認してみると、


全然うまくいってねえ。

というか、これは想定済み。

config/auth.phpを修正しないといけないようです。
下記のソースを参考(というか丸コピペ)にして修正します。

https://github.com/laravel/laravel/blob/master/config/auth.php(github)

ローカル(vmware)上では、これで問題なく動作しました。

では実際にサーバにアップロード、の前にバックアップをとって全ファイルを上書きしました。

で、アクセスすると、ページは表示されるんだけど、一番下にこんなエラーが表示されていました。


これはバックアップとしてコピーしたディレクトリに全ファイルをコピーしたために発生したようです。laravel5.2に罪はないです。
下記のコマンドを実行して解決しました。(参考:ErrorException in Filesystem.php(stack overflow))

$ sudo chmod -R gu+w storage
$ sudo chmod -R guo+w storage
$php artisan cache:clear

そんなわけで、無事laravel 5.2のアップデートは無事完了したようです。