質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

Q&A

解決済

1回答

1452閲覧

【Laravel5.5】Docker環境でマイグレーションしようとすると『syntax error, unexpected 'Schema'』のエラーが出てくる。

Knomono

総合スコア6

docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

0グッド

0クリップ

投稿2021/08/17 00:04

Laravelを試してみようと思い、Laravel 5.5 の参考書を購入してそれを見ながら学習しています。

Dockerの環境でやってみたいと考え、参考書にあるとおりにDocker-comporsでLaravelを扱える状態までは何とかできました。


しかし、ワークスペースのコンテナに入って『php artisan migrate』を実行すると、

In 2014_10_12_100000_create_password_resets_table.php line 16:

Parse error: syntax error, unexpected 'Schema' (T_STRING)

と、エラーが出てきます。

調べてみると、PHPのバージョンが8だと'Schema'が使えないのでバージョンを下げる必要がある。
などの情報があったのでバージョンを調べてみました。
イメージ説明

php... 7.3.27

laravel... 5.5.50

となっているのでおそらく大丈夫かな?と思います。


MySQLのDBが存在していない というのが原因だという記事も見つけ、この通りにDBを作成してDB名を変更しました。

イメージ説明
イメージ説明
イメージ説明
イメージ説明
しかし、『⑦mysqlのユーザー承認方式を変える』のところで

alter user 'test_user' identified with mysql_native_password by 'root';

を実行した結果、

実行:alter user 'test_user' identified with mysql_native_password by 'root';

→ ERROR 1227 (42000): Access denied; you need (at least one of) the CREATE USER privilege(s) for this operation

といったエラーが出てきたので何か違っているかもしれません。
結果、『migrations』というテーブルは作成されたのですが、『homestead』という名前のテーブルは作成されないままです...。
データベースを作る権限の付与を行って実行できていると思うのですが。
イメージ説明

最終的に、『migrations』という名前のテーブルは無事に作成されていますが、恐らく作成されるであろう『homestead』という名前のテーブルは作成されていない状況です。

イメージ説明


また、一旦Docker環境は諦めてHomestead環境でやってみようと考えてやってみたところ、同じエラーが発生しました。

そこで色々と試してみた結果、
コンソール画面にて『php -v』でバージョンを見ると『7.3』となっているのですが、
『Homestead.yaml』の『sites』の欄に記載されているphpのバージョンが『8』となっていることに気が付き、
その部分を『7.3』に変更して実行したところ、正常にマイグレーションする事が出来ました。

そこで、もしかしたらDockerfileに記載されているphpのバージョンが違う可能性が自分の中で浮上したのですが、
『dockerfile』という名前のファイルが複数存在していたりと、具体的にどの部分を確認すると良いのかわかりません。

もし、自分の予想通りDockerfileなどが怪しい場合はどのファイルを確認するとよいのでしょうか?


自分でも問題の原因をはっきりと理解できていないので要領を得ない質問となってしまいましたが、
助言いただけると幸いです。

序の質問なのですが、Laravel5.5をやっていますが LTS が バージョン6 とのことなので、
ある程度学習したら バージョン6 を学習しようと思い、そちらの参考書も買っていました。
ですが、最近 バージョン8 の参考書が発売されたり、1月に新しい LTS のバージョン9 がリリース予定などの情報を見ました。
現在、初心者はどのバージョンを学習するのがよいと思いますか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

現在、初心者はどのバージョンを学習するのがよいと思いますか?

8
質問に書かれているエラーのうち、8系にするだけで遭遇しないで済むエラーがあります
今からでも学習バージョン見直して最初からやり直す気力があるなら絶対に8にしましょう
php8.xとlaravel8.xです

syntax errorは文字通り構文エラー、phpとして正しい書き方ではないって意味です
ソースを良く見直しましょう 見た感じ途中のmが気になります

あなたが下記いずれかに該当すれば6系頑張りましょう

  • 既にプロで人材不足の6系プロジェクトに参画する
  • 新入社員で、6系のプロジェクトに参加する予定がある

laravelに限らず技術系書籍を買う時は著者の情報をよく確認しましょう
まともな能力のある著者なら、今時は著書以外にもネットで無償で情報を公開している人も多いです
どう判断して良いのか分からなければ、最悪でも気になった著書の作者が出している他の書籍も含めてamazonのレビューでも見て判断しましょう
基本的には入門書籍しか書けない程度の人の書籍は総じてゴミと思って構いません
書籍は入門書のみで個人ブログなどではマニアックに突っ込んだ内容を書いてる人もいるので、そういう人の書籍はNotゴミでしょう

投稿2021/08/17 01:14

hentaiman

総合スコア6389

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Knomono

2021/08/22 03:18

ドットインストールで Laravel8 があるようなので、とりあえずそれからやってみようと思います。 割と参考書を買って読んだりするのですが、今後著者を見る癖もつけようと思います。 回答ありがとうございました!
hentaiman

2021/08/23 08:01 編集

自分はphp系の書籍全く買わないのであまり積極的な紹介は出来ませんが、 (編集済み) また、完全に外れの著者は以下の書籍を書いてる奴です 金の無駄です、絶対に避けましょう https://www.amazon.co.jp/gp/product/B08625YD7H あんまり商品紹介とかしたくないので、ご確認頂いたらコメント頂いてもいいですか?書籍の情報を削除したいと思います 【追記】 確認コメントどうもありがとうございました 絶対に避けて欲しいゴミのような書籍を書いている作者の情報だけは残しておきます phpに限らず他の言語に関する書籍の内容もゴミなので絶対に避けて欲しい為です と言っても私の分かる範囲の言語にはなりますが、いくつか内容を確認した上でゴミ書籍と断言出来ます
Knomono

2021/08/22 05:03

現在この良いかもしれませんと紹介頂いている方の「5.5」のバージョンのを見てやっているのですが、 当時の5.5が最新である状態前提なので苦戦してました。 8の方は数か月前に出ているみたいなので買おうか考えていました。 書籍情報削除わかりました。 参考になりました。ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問