Skip to content

Instantly share code, notes, and snippets.

@KiKiKi-KiKi
Created July 18, 2020 11:52
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save KiKiKi-KiKi/1e0826dc81b020a33e41fa22b07b9c5d to your computer and use it in GitHub Desktop.
Save KiKiKi-KiKi/1e0826dc81b020a33e41fa22b07b9c5d to your computer and use it in GitHub Desktop.
Cloud9 で Laravel 環境を作成する

install PHP v7

$ sudo yum -y update
# install php7
$ sudo yum -y install php72 php72-mbstring php72-pdo php72-intl php72-pdo_mysql php72-pdo_pgsql php72-xdebug php72-opcache php72-apcu
# 過去のパスを削除
$ sudo unlink /usr/bin/php
# 新しいパスを通す
$ sudo ln -s /etc/alternatives/php7 /usr/bin/php
$ php -v
> PHP 7.2.31

install composer

$ curl -sS https://getcomposer.org/installer | php
# Composerパスを通す
$ sudo mv composer.phar /usr/bin/composer

Install Laravel

$ composer global require "laravel/installer"
# Laravelプロジェクトを作成
$ composer create-project laravel/laravel cms 6.* --prefer-dist

cms という名前でプロジェクトを作成

Setup MySQL user

# Mysql起動
$ sudo service mysqld start
$ mysql -u root -p
# パスワードをrootに変更
mysql> update mysql.user set password=password('root') where user='root';
# 変更を保存
mysql> flush privileges;
mysql> exit;

set up Laravel

Laravel 用の Database を作成

$ mysql -u root -p
mysql> create database c9;

.env ファイルのDB接続設定

DB_HOST=localhost
DB_DATABASE=c9
DB_USERNAME=root
DB_PASSWORD=root
$ cd cms
# サーバーを起動
$ php artisan serve --port=8080
# Mysql起動
$ sudo service mysqld start

/app/Providers/AppServiceProvider.php ファイルを修正

use Illuminate\Support\Facades\Schema; //この行を追加
public function boot() {
   Schema::defaultStringLength(191);   //この行を追加
}

migration ファイルの作成

books テーブルを作成する (複数形で)

$ php artisan make:migration create_books_table --create=books

database/migrations 内に migrate ファイルが作成されるので、テーブルのカラムを設定する

public function up()
    {
        Schema::create('books', function (Blueprint $table) {
            $table->bigIncrements('id');
            $table->string('item_name');
            $table->integer('item_number');
            $table->integer('item_amount');
            $table->datetime('published');
            $table->timestamps();
        });
}

マイグレーションの実行 (テーブルが作成される)

$ php artisan migrate

migration のやり直し

$ php artisan migrate:refresh

最新の状態に戻した後、データベースに再度シーディング

$ php artisan migrate:refresh --seed

cf. http://recipes.laravel.jp/recipe/46

Model の作成

Model は大文字から始まる単数形で指定!

$ php artisan make:model Book

Model は /app 直下に作成される

Routing

/routes/web.php ... root

View

/resources/views 内に xxx.blade.php というファイル名で作成

Controller

$ php artisan make:controller BooksController

controller は /app/Http/Controllers 内に作成される

Router の処理は Conteroller名@method名 で指定する e.g.

Route::get('/','BooksController@index');

/ の処理は BooksController index メソッドで行う


認証

# laravel/ui パッケージをインストール
$ composer require laravel/ui:^1.0 --dev
# artisan コマンドを実行
$ php artisan ui vue --auth
# npmパッケージをインストール
$ npm install
#パッケージをビルド
$ npm run dev

トラブルシューティング

CSS, JS が読み込まれない

  1. ブラウザのキャッシュを削除
  2. トップページ以外のリンクが Oops (VFS connecion does not exist) になっている場合

2. の場合は

  1. Chrome のキャッシュを削除
  2. Cloud9 を EC2 から再起動させる

上記でも解決しない場合は強制的に https になるように下記ファイルに設定を追加する

/app/Providers/AppServiceProvider.php

use URL; // 追加

class AppServiceProvider extends ServiceProvider
{
    // 略
  public function boot()
  {
    Schema::defaultStringLength(191);
    URL::forceScheme('https'); // 追加
    // ページネーションの ->link() が http のままで出力されるので下記を追加
    $this->app['request']->server->set('HTTPS','on');
  }
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment