LaravelとVSCodeの勉強をかねてGitHubからCloneをダウンロードしました。
Cloneをインストールしたら、使ってみたいですよね。
ということで私が入れたGitHubのKC135Q/laravel-message-boardのcloneをローカル環境でサーバを起動してブラウザで使えるところまでを目標に書いていきます。
Laravel Cloneをローカルサーバで起動したい
まずCloneデータに「.env」があるか確認する。
Cloneのデータは.envがなかったり、.env_exampleなどリネームされているようです。
今回は.env_exampleがありました。とりあえずそのまま使ってみます。
これでもしかして行けるのかしら、と以下コマンドでサーバを起動させてみます。
php artisan serve
■ 返答
Fatal error: require(): Failed opening required……………
そんなにあまくないよね。ファイルが開かないらしい。
意味がわからないけど、おまじないのつもりで以下実行。
composer dump-autoload
再度サーバー起動。
composer dump-autoloadFatal error: Uncaught Error: Class ‘Illuminate\Foundation\Application’ not found
エラーが変わった。以下のコマンド実行
composer update –no-scripts
再度サーバー起動。
お。起動した。
参考サイト : Fatal error: Uncaught Error: Class ‘Illuminate\Foundation\Application’ not found | Qitta
そんな簡単には使わせてもらえなさそう。
cloneデータの修正
.env_exampleを.envに変え再度サーバー起動。
めっちゃエラー。でも画面にエラーが表示されるようになった。
RuntimeException in Encrypter.php line 43: The only supported ciphers are AES-128-CBC and AES-256-CBC with the correct key lengths.
ciphersを確認。
ファイルパス:./config/app.php
‘cipher’ => ‘AES-256-CBC’,
一応なってる。2択なのでもう一つの方に書き換える。
‘cipher’ => ‘AES-128-CBC’,
変化なし。
キャッシュクリアしてみる。
php artisan config:clear
変化なし。
.envのappキーを作成する。
php artisan key:generate
お画面が変わった。
データベースの設定とテーブルの作成
画面のListクリックしてみる。
また、エラー。
QueryException in Connection.php line 770: SQLSTATE[HY000] [1045] Access denied for user ‘homestead’@’localhost’ (using password: YES) (SQL: select * from messages)
データベース使ってたのか。.envにデータベースの設定をします。
MySQLの設定方法は以前書いたので、そちらをご覧ください。
設定がおわったら、database/migrationsにデータがあることを確認し、以下コマンドでテーブルを作成します。
php artisan migrate
もし以下のようなエラーがでたら。
Migrating: 2014_10_12_000000_create_users_table
Illuminate\Database\QueryException
SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes (SQL: alter table users add unique users_email_unique(email))
以下略
このエラーの場合はLaravelにmysqlを設定してテーブルを作成・取得してみた!超初心者のLaravelの勉強のMySQLのバージョンが5.7.7未満ならを参照ください。
またエラー。
[Illuminate\Database\QueryException] SQLSTATE[42S01]: Base table or view already exists: 1050 Table ‘users’ already exists (SQL: create table users (id int unsigned not null auto_increment primary key, name varchar(255) not null, email varchar(255) not null, password varchar(255) not null, remember_token varchar(100) null, created_at timestamp null, updated_at timestamp null) default character set utf8 collate utf8_un icode_ci)
[PDOException]
SQLSTATE[42S01]: Base table or view already exists: 1050 Table ‘users’ already exists
already existだし気にしなくて良いのかなと思いつつ、listをクリックするとエラー。
SQLSTATE[42S02]: Base table or view not found: 1146 Table ‘message_board.messages’ doesn’t exist (SQL: select * from `messages`)
messagesテーブルがないとのこと。
そういえばalready existくらうと他のテーブル作ってくれないんだっけ。一回別のエラーがでて(1個目)変にテーブルが作られてしまったようです。
こちらもすでに体験済みだったので以下コマンドを実施 。
php artisan migrate:fresh
あれ、できない。
[Symfony\Component\Console\Exception\CommandNotFoundException]
Command “migrate:fresh” is not defined.
どうしようもなかったので、MySQLでテーブルを消すことにした。
//ログイン
mysql -u plife -p;
// DB複数ある場合は指定
mysql> use message_board
// Drop tableでテーブル削除
mysql> DROP TABLE users;
再度 php artisan migrateを実施。
無事テーブルが作成された。
Migrated: 2014_10_12_000000_create_users_table
Migrated: 2014_10_12_100000_create_password_resets_table
Migrated: 2016_11_20_182338_create_messages_table
動作確認
あらためてサーバー起動。
やっとそれっぽい画面でたー。
試しに入力して送信を押してみました。
メッセージが入りました。Cloneすごいですね。動いたので中身確認しながらLaravelの勉強をしたいと思います。
これからGitHubからいろいろClone作って勉強できそうです。