はじめに

PHPのフレームワークであるLaravelを勉強してみようと思い立ち、環境構築から1つwebアプリを完成させるまでをまとめてみました。

Laravelには"Homestead"という開発環境構築から設定などをひとまとめにしている便利なパッケージが用意されているのですが、ひとまず手っ取り早く進めたかったので、今回は Cloud9 上で開発していくことと決めました。Cloud9って何?という方は こちら がとても分かり易かったのでぜひ読んでください。

また、ある程度フレームワークの知識があることを前提に記事を書いていますので、全くフレームワークを触ったことのない人には難しい内容かもしれません。

第1回は、「Laravelのホーム画面を出す」まで書きたいと思います。
これがゴールです。

A720a661 63c5 404a 8153 249d8f6d4f52

ちなみに最終的な目標はこんな感じの掲示板を作ることです。

7c8bcc49 71ab 4663 a092 4579fd36357c

参考にさせていただいた記事など

クラウドIDE「Cloud9」とは?特徴や基本的な使い方
Cloud9でPHP7+Laravel5環境構築
Laravel5.4 + MySQL5.5.9 でusersテーブルのマイグレーション時に Syntax error
Laravel(5.1)でCRUD
Laravel5のお勉強 -第五回 テストデータをFakerで挿入-
Laravel5.4 + MySQL5.5.9 でusersテーブルのマイグレーション時に Syntax error
Laravelにおけるリレーショナルモデルの削除

1.環境構築

1-1.Cloud9で新規ワークスペース作成

1.Create a new workspace

2.workspace name ⇒ 適当に

3.Choose a template = [PHP,Apache & ...] を選択


1-2.PHP7にアップグレード

Cloud9のデフォルトのPHPのバージョンが5.5.9のため、7へアップグレードする。
terminalでそのまま下記コマンドを打つ。

$ sudo add-apt-repository ppa:ondrej/php
  // 途中で'Enter'押下
$ sudo apt-get update
$ sudo apt-get install libapache2-mod-php7.0
  // 途中で'Y','Enter'押下
$ sudo a2dismod php5
$ sudo a2enmod php7.0
$ sudo apt-get install php7.0-dom php7.0-mbstring php7.0-zip php7.0-mysql
  // 途中で'Y','Enetr'押下

1-3.Laravel5.4インストール

Laravelはcomposerというものを利用してインストールを行う。

composer とはPHPのパッケージ管理システム。

通常、システムを手動でインストールするとなると、このファイルを実行するにはあのzipをダウンロードしてきて、この機能をつかうにはあそこからソフトをインストールして・・・となる。

それをcomposerが一手に引き受けてくれ、コマンド一発で必要なパッケージをすべてインストールできる。

Cloud9ではcomposerはデフォルトでインストール済みのため、そのままLaravelプロジェクトをワークスペース直下にインストール。

$ rm README.md php.ini hello-world.php
$ sudo composer self-update
$ sudo chown -R ubuntu /home/ubuntu/.composer
$ composer global require 'laravel/installer'
$ export PATH=~/.composer/vendor/bin:$PATH
$ composer create-project --prefer-dist laravel/laravel ./laravel
  // 数分かかる
$ shopt -s dotglob
$ mv laravel/* ./
$ rm -rf laravel

パーミッションの変更

$ sudo chmod -R 777 storage
$ sudo chmod -R 777 bootstrap/cache

1-4.Apacheのセットアップ

confファイルを開く。

$ sudo vim /etc/apache2/sites-enabled/001-cloud9.conf

下記部分を修正

  DocumentRoot /home/ubuntu/workspace
  ↓
  DocumentRoot /home/ubuntu/workspace/public

アップデート

$ composer update

1-5.データベースのセットアップ

$ mysql-ctl cli
$ use c9;
$ exit

.envファイルを開く
 ※.envファイルが見つからない場合
 ワークスペースのファイルツリー右上ギアアイコンから
 [Show Hidden Files]にチェックで隠しファイルが表示される。

以下を変更

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=c9
DB_USERNAME=hogehoge   ← cloud9のユーザー名
DB_PASSWORD=           ← 空にする

1-6.起動

  1. [Run Project] を押す

9414bd79 dc2c 4514 88a6 02fb4e5bc201

  1. 下に出てきたURLをクリック

30947a26 9844 44f2 a398 e4f4f252b8b7

  1. [Open]

  2. ブラウザに「Laravel」とでっかく出てきたらインストール完了

A720a661 63c5 404a 8153 249d8f6d4f52


1-7.Laravelの設定変更

config/app.phpを以下に変更。

'timezone' => 'UTC',
↓
'timezone' => 'Asia/Tokyo',
'locale' => 'en',
↓
'locale' => 'ja',

app/Providers/AppServiceProvider.phpを以下に変更。

<?php

namespace App\Providers;

use Illuminate\Support\ServiceProvider;
use Illuminate\Support\Facades\Schema;

class AppServiceProvider extends ServiceProvider
{
    /**
     * Bootstrap any application services.
     *
     * @return void
     */
    public function boot()
    {
        Schema::defaultStringLength(191);
    }

    /**
     * Register any application services.
     *
     * @return void
     */
    public function register()
    {
        //
    }
}

※Laravel5.4から標準charsetがutf8mb4に変わって、1文字あたりの最大byte数が4byteに増えている。
マイグレーション時にカラムの大きさを指定しなかった場合、255文字まで入るように設定されているため最大byte数は1020byteとなる。
しかし、MySQLではPRIMARY_KEYおよびUNIQUE_KEYを付けたカラムには最大767byteまでしか入らない(var5.7.7以降は解消)。
そのため、マイグレーション時にカラムの大きさを指定されなかった場合の最大文字数を767byteに収まる191文字に設定している。


おまけ1:デバッグバーの表示

9213295f 47c7 4eca 91f3 a4457383e006

laravel-debugbar というパッケージを使うと、こんな感じでブラウザでデバッグバーが表示される。

導入方法

~/workspace にいる状態で

$ composer require barryvdh/laravel-debugbar

でインストール
config/app.php に追加。

'providers' => [
    // ...
    Barryvdh\Debugbar\ServiceProvider::class,
],

...


'aliases' => [
    // ...
    'Debugbar' => Barryvdh\Debugbar\Facade::class,
],

.env ファイルを確認

APP_DEBUG=true

画面下にデバッグバーが追加される。


おまけ2:Laravel の便利なヘルパー関数 dd()

var_dump() と同じ要領で、**dd()** というヘルパー関数が使える。

dump and die の略で、
- クラスインスタンスなど複雑なものも表示できる
- その場でスクリプトを終了する

という機能を持つ。実際に出力してみるとこんな感じ。

  dd($user);

C776f5b9 665a 403c 81fc bdf7a0880ace

ここまでで、環境構築と初期設定は終わりです。
次回からは開発を進めていきます!!

Shere
  • はてなブログ
  • Twitter
  • Facebook
Cloud9を使ってLaravel5.4で開発【第1回】

Writer

  • Name

  • Position

    自然を愛する現代っ子

  • Profile

    文章を書くのは苦手です。小学校の読書感想文は毎年「五体不満足」でした。毎年同じのを出してました。そのくらい苦手です。でもブログ書きます。読んで下さい。