Laravel データベーステーブルの作成

migrationという機能を使ってテーブルを作ります。
databese/migrations

このフォルダにマイグレーションのファイルを入れる。
プロジェクトのフォルダに移動して以下のコマンドを実行するとテーブルが作成される。

ファイルは、ぜひ、artisanを使いましょう。
$ /usr/local/php7.1/bin/php artisan make:migration create_registrations_table

$ /usr/local/php7.1/bin/php artisan migrate

migrationは、up()でテーブルを作成down()で元に戻す処理をする。元に戻す(?)

すでにテーブルがある場合はmigrateでエラーが出るので、現在あるテーブルを破棄して再度実行する場合はmigrate:freshを実行する。

ロリポップではphp7.1にパスが通っていないので、
/usr/local/php7.1/bin/php
これでphpを実行すると良い。そうでないとエラーになります。

ロリポップでmigrationするとSyntax Errorが発生する。
MySQLのバージョンがよくないということで、下の内容でconfig/database.phpを編集する。
(MySQL5.6ではエラーが出るということ)
‘charset’ => ‘utf8’,
‘collation’ => ‘utf8_unicode_ci’,


NULLを許可する
$table->string(‘init_password’)->nullable();

https://readouble.com/laravel/5.5/ja/migrations.html

ロリポップにLaravelを導入

ロリポップをSSHに対応する。
ターミナルでSSHにログインする
ssh お客様のSSHアカウント名@お客様のホスト名 -p 2222

入れなかった。以前にログインした時と、RSAというものが変わってしまったから?
SSHのFingerの何かは、ローカルに保存されている。それとサーバーに保存されているものが異なるため弾かれているらしい。

ローカルに保存されているものを消してもう一度保存し直す。

保存場所は
~/.ssh/knows_host
ここのロリポップのFinger何やらの行を削除して試してみたところ、パスフレーズを求められた。
ロリポップのユーザー情報に掲載されていたパスフレーズを4回入れたらログインできた。
4回入れるって何?

ロリポップにターミナルで入ることができたので、次にcomposerをインストールします。
/usr/local/php7.1/bin/php -r “eval(‘?>’.file_get_contents(‘https://getcomposer.org/installer’));”

これでcomposerをインストールできました。

次に、phpへのパスを通す。
export PATH=”$PATH:/usr/local/php7.1/bin”
(この設定はうまくいってるのかどうかわからない)

/usr/local/php7.1/bin/php composer.phar create-project –prefer-dist laravel/laravel フォルダ名 “5.5.*”
composer.pharが置いてあるフォルダに移動して、実行しないといけません。
すでに存在するフォルダにインストールしようとすると失敗するみたい。インストールフォルダを指定するとフォルダを作ってくれる。


create-projectが何をやっているか。
git clone してファイルを取得してからcomposer installをしているそうです。
prefer-dist というオプションは、git cloneするときにzipして落としてくるという指定をしているらしい。速くなる。


composerでインストールしてもしばらくファイルが表示されない。
SSHでアクセスしてからFTPでアクセスするとファイルが見えた。

インストールしたフォルダにアクセスしても500で表示されなかった。
サブドメインを設定して、php7.1を設定。Laravelはphp7.1でないと動かないようです。
サブドメインにアクセスしたらLaravelが表示されました。


403エラーが表示される場合
サブドメインの指定が間違ってる。Laravelをインストールしたフォルダではなく、publicフォルダをドメインの指定先にしないといけない。


次はデータベースを作成する。
ロリポップの管理画面でデータベースを作成。
.envファイルを編集。

直下のフォルダにある.envファイルにデータベースの接続設定があるのでこれを編集する。

データベースはできたので、次はmigrateします。
デフォルトで必要なテーブルがあるらしいのです。
/usr/local/php7.1/bin/php artisan migrate
コマンドを実行すると下のメッセージが表示される。
Could not open input file: artisan

これはartisanを動かすために、Laravelのフォルダに移動しないといけない。
laravelを入れたフォルダでartisanを実行したらmigrateできました。
これでとりあえず、Laravelをロリポップに導入することができた。
意外とスムーズに行きましたね。

仮想環境をローカルで動かすと負担が大きいから、ロリポップでもいいから外に置いた方が良い。と思う。


Laravelのインストールがうまくいかない場合がある。
killed でinstallが止まってしまう場合。

サーバーのメモリが足りずに途中で終わってしまっている。これはどうしたものか。

Laravel 起動

ターミナルで、「~/homestead」に移動して、「vagrant up」する。
これで起動する。
仮想環境が起動するということ。

hostに登録しているので、homestead.testにアクセスするとLaravelのサイトを見ることができる。
「vagrant halt」すると、仮想環境が終了する。

Laravelをローカル環境に入れる

VirtualBoxをインストールする。

すでに入っているような気がしますので、すでに入っているか入ってないかを調べます。どうやって?
ーーー
わからなかったので、HomebrewでVirtualBoxをインストールします。
すでに入っていたらどこかで怒られるのではないかな。わからんけど。

HomebrewのCaskと言う、何かでインストールしているみたいです。このあたりは本当の本当にブラックボックスで嫌になる。なんでこんなにややこしいのだろう。
ーーー
VirtualBoxをダウンロードしています。でかいっぽい。
(ファイルを見るとubuntuというOSが入っていてこれが4.5GBほどあった)
VirtualBoxのインストールができたので、次はVagrantと言うものをインストールする。
ーーー
Vagrantをダウンロードしてインストールしました。普通にインストールできた。
次は、Vagrantを使って、仮想環境のBoxと言うものを作る。ターミナルでVagrantに、Boxを作ってLaravelのHomesteadを入れてね、と言う命令を入れるとたぶんこれは今、やってくれてるな。

どうやら2時間ほどかかるみたいだ。これはすごいな。
ーーー
SSL_ERROR_SYSCALL, errno 54
このエラーが出て止まっていた。ダウンロードに失敗したみたいなのでもう一度やり直す。
ダウンロードの途中でパソコンがスタンバイに入ってしまったのがまずかったのかな。

2回目で成功した。
ーーー
Homesteadの設定ファイルをダウンロードする。
Github.com/laravel/homestead.gitからクローンする。

Homesteadフォルダに移動してbash init.shを実行する。
これで初期化が実行されたみたいです。
bashはLinuxコマンドで、init.shは、よくわからないけど初期化に関わる何かだと思う。この辺りもブラックボックスでよくない。
ーーー
homestead.yamlの編集をします。
仮想環境の設定みたいなので、自分の環境に合わせて設定をすればいいと思う。
foldersはソースコードを置いておく場所を設定。sitesは、ブラウザで仮想環境にアクセスするときのアドレスとその参照先を設定する。
ーーー
etc/hostsにホストを追加する。
192.168.10.10 homestead.test
ネームサーバと同じ動きになる。
ーーー
vagrantを起動してみたらまたhomesteadのダウンロードが始まった。
おそらく、gitでダウンロードした設定ファイルのhomesteadのバージョンが最初にダウンロードしたhomesteadのバージョンよりも古かったのではないでしょうか。
ーーー
homesteadの古いやつがたぶんダウンロード完了したので、vagrantにログインして、新しいlaravelを作ってみた。
作ってみたところwarningが出ました。なぜ?
homesteadフォルダにあるhomestead.yamlの設定を確認してみよう。

えらい。homestead.yamlのsitesの設定を間違っていた。修正したら「Laravel」って画面に表示されたすごい!できた。
ーーー
できたと思ったらまだだった。
ここから、Laradockというものを入れるためにDockerというものを入れないといけないみたいだ。こんなにたくさん入れないといけないものなのか?
HomesteadはLaravelの環境だと思ってた。Virtualboxを仮想環境を動かすための何かプラットフォームみたいなもの。vagrantはHomesteadを操作するためのもの。
すでに3つ入れているのに、まださらにDockerというものとLaradockというものを入れないといけない。こんな5つも入れないと動かないものなのか。もうちょっとどうにかならんのか。

と思ったら違った。Homesteadでやる場合と、Laradockでやる場合と2種類の方法があるよということだった。すまん。