PHPのフレームワーク「Laravel」の導入からマイグレートするまで

Laravelとは

LaravelはPHPのフレームワークになります。ubuntuにlaravelを導入していきます。

laravelのインストール

composerを使う方法とlaravelのインストーラーを使用する方法があるみたいですが、今回はcomposerを使ってインストールしていきます。

※composerを使ってインストールする。myblogのところはプロジェクト名を記述する↓

#以下のコマンドを実行すると現在の作業ディレクトリにmyblogというディレクトリが作成されるはず
#できあがったmyblogディレクトリで作業を行う
$ php composer.phar create-project --prefer-dist laravel/laravel myblog

laravelのバージョン確認

#laravelのいろいろな命令は artisan というものをつかっておこなう
$ php artisan --version

ディレクトリの構造

laravelで作成されたアプリはファイルがかなり多いので重要そうな部分だけ

  • database ⇀ .sqliteファイルを作成
  • database/migration以下のファイルを削除(のちのちの開発でエラー)
  • public ⇀ cssやjsや画像
  • resources/views ⇀ 画面のテンプレート
  • routes ⇀ ルーティング

設定ファイルの編集

  • .envファイル
  • configフォルダから.envファイルを参照する

.envファイル

.envファイルで使用するデータベースなどを設定できるようです。今回はsqliteを使うことにしました。

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

DB_CONNECTION=sqlite

config/app.php

.config/app.phpはenvファイルの内容をひっぱてくるためのもののようです。

‘name’ => env(‘APP_NAME’, ‘Laravel’), 値が設定されていたらそれを 設定されていなかったらLaravelを

以下のように編集しました

  • ‘timezone’ => ‘UTC’, ⇀ ’timezone’ => ‘Asia/Tokyo’,
  • ‘locale’ => ‘en’, ⇀ ’locale’ => ‘ja’

マイグレーションの設定

モデルの作成

$ php artisan make:model Post --migration #モデルの作成 database/migrations

マイグレーションファイルにはup()とdown()関数が記述されており、up()はマイグレーションで行う処理down()はまき戻すための処理が書かれている

マイグレーションの反映

$ php artisan migrate

マイグレーションをしましたがエラーが発生しましたので下記に対象をまとめました。

migrateでエラー

エラー内容

PDOException::("could not find driver") #ドライバーがない

ドライバーの確認

簡易的に確認するには

php -m | grep pdo

きちんと確認するには以下のコマンドを使う

$ php -r "phpinfo();"

かなり多くの情報が表示されますが今回はPDOのドライバーに関する情報をみていけばよいようです。

PDO

PDO support => enabled
PDO drivers => mysql

pdo_mysql

PDO Driver for MySQL => enabled
Client API version => mysqlnd 5.0.12-dev

不足していると思われるドライバーをインストールする

phpのバージョンは7.2だったのでphp7.2用のsqlite3ドライバをインストールします

$ sudo apt-get -y install php7.2-sqlite3

設定内容を再確認

sqlite3が追加されていました

PDO

PDO support => enabled
PDO drivers => mysql, sqlite

pdo_mysql

PDO Driver for MySQL => enabled
Client API version => mysqlnd 5.0.12-dev

Directive => Local Value =>
pdo_mysql.default_socket =>

pdo_sqlite

PDO Driver for SQLite 3.x => enabled
SQLite Library => 3.24.0

grepコマンドでも確認してみるとpdo_sqliteが追加されていました。

php -m | grep pdo
pdo_sqlite

改めのlaravelでmigrateする

改めてmigrateした結果成功しました。

$ php artisan migrate
Migration table created successfully.
Migrating: 2018_11_29_160348_create_posts_table
Migrated:  2018_11_29_160348_create_posts_table

Warning: Undefined array key "thumbnail_url" in /home/users/1/boy.jp-rolpop/web/skc/wp-content/themes/godios/inc/schema-org.php on line 49

Warning: Undefined array key "thumbnail_url" in /home/users/1/boy.jp-rolpop/web/skc/wp-content/themes/godios/inc/schema-org.php on line 78