LoginSignup
0
0

More than 1 year has passed since last update.

laradock環境構築のエラーと解決策

Last updated at Posted at 2021-06-15

laradockで環境構築したらエラーの見本市かな?というくらいにエラーが出たのでその時のエラーと解決策をまとめました。

色んなエラーが出たので参考までにどうぞ!

プロジェクトフォルダをVScode等で書き換えようとするとエラーになる

でもvimだったら変更できる、という方は権限の問題です。
workspaceのソースコードのあるディレクトリで、権限を確認してください

/var/www/app$ ls -l
/var/www/app$ ls -l
total 1600
drwxr-xr-x 14 root root   4096 Jun  3 10:27 app
-rw-r--r--  1 root root   1686 Jun  3 10:27 artisan
drwxr-xr-x  3 root root   4096 Jun  3 10:27 bootstrap
-rw-r--r--  1 root root   2153 Jun  3 10:27 composer.json
-rw-r--r--  1 root root 313747 Jun  3 10:27 composer.lock
drwxr-xr-x  2 root root   4096 Jun  3 10:27 config
drwxr-xr-x  5 root root   4096 Jun  3 10:27 database
-rw-r--r--  1 root root   1275 Jun  3 10:27 package.json
(省略)

このような感じでrootになっていたら全てのファイルをlaradockに変える必要があります。

これで解決

/var/www# chown -R laradock:laradock /var/www

/var/www以下の権限をlaradockに変更することで、コンテナ外のVScodeからでも保存できます。

root@09e56af218da:/var/www/source# ls -l
total 1604
drwxr-xr-x 14 laradock laradock   4096 Jun  3 10:27 app
-rw-r--r--  1 laradock laradock   1686 Jun  3 10:27 artisan
drwxr-xr-x  3 laradock laradock   4096 Jun  3 10:27 bootstrap
-rw-r--r--  1 laradock laradock   2153 Jun  3 10:27 composer.json
-rw-r--r--  1 laradock laradock 313747 Jun  3 10:27 composer.lock
drwxr-xr-x  2 laradock laradock   4096 Jun  3 10:27 config
drwxr-xr-x  5 laradock laradock   4096 Jun  3 10:27 database
-rw-r--r--  1 laradock laradock   1275 Jun  3 10:27 package.json
(省略)

良い感じ!

しかしこのようになっている人は、コンテナに入るコードが違っている可能性があります。laradockユーザーでコンテナに入ってください。

$ docker-compose exec --user=laradock workspace bash

MySQLのインストールバージョンを間違えた&Permission deniedで.laradock/data/mysqlが消せない

人間、間違えてはいけない時こそ間違えるんですよねぇ(遠い目)

ほんとは5.7がよかったのにやってしまった

$ docker-compose exec mysql mysql --version
mysql  Ver 8.0.23 for Linux on x86_64 (MySQL Community Server - GPL)

$ cat .env | grep DATA_PATH_HOSTで探した場所にdockerの情報がはいっていて、これを消さないとここから過去のデータを引き継いでしまいます。
Dockerさんすごい賢い

$ cat .env | grep DATA_PATH_HOST
DATA_PATH_HOST=~/.laradock/data

$ rm -rf ~/.laradock/data/mysqlこれができなかったら
$ sudo rm -rf ~/.laradock/data/mysqlこっちで消し去ってください。

$ docker rmi laradock_mysql
$ docker rm (mysqlコンテナID)
$ docker ps -a

mysqlコンテナもイメージも消し去り、それを確認してください
そして今度は、laradockの.envファイルを正しく修正してください。

その後もう一度mysqlコンテナを立ち上げて、バージョンを確認してください。

$ docker-compose up -d mysql
$ docker-compose exec mysql mysql --version
mysql  Ver 14.14 Distrib 5.7.31, for Linux (x86_64) using  EditLine wrapper

作るDBの名前を間違えた

$ docker-compose up -d mysql
$ docker exec -it laradock_mysql_1 bash
# mysql -u root -p
Enter password: 
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| default            |
| dev_db_1           |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
6 rows in set (0.00 sec)

DB作ったし、内容確認…
dev_db_1じゃないの、違う名前がいいの…

そんな時も解決方法は上記MySQLのバージョンを間違えた場合と同じようにイメージとdataを消し去ってから再度コンテナを作り直して下さい。

Fatal error: require(): Failed opening required '/project/vendor/autoload.php' (include_path='.:') in /project/artisan on line 18

いざlaravel動かすぞ〜と思った矢先、動かせない

そんな時はこれで解決

/var/www/app# $ composer install

git cloneしたアプリだとvenderがないのでエラーが起こるようです。

インストールできたらOK!

Package manifest generated successfully.
87 packages you are using are looking for funding.
Use the `composer fund` command to find out more!

SQLSTATE[HY000]: General error: 1017 Can't find file: './app/migrations.frm' (errno: 13 - Permission denied)

マイグレーションしようとしたらこんなエラーが

SQLSTATE[HY000]: General error: 1017 Can't find file: './app/migrations.frm' (errno: 13 - Permission denied)

こちらも権限がないため書き込みができない状態になっています。

自分のMySQLディレクトリの権限がどうなってるか確認しましょう

$ docker exec -it laradock_mysql_1 bash
# cd var
# cd lib
# cd mysql
/var/lib/mysql# ls
auto.cnf    ca.pem           client-key.pem  ib_buffer_pool  ib_logfile1  ibtmp1  performance_schema  public_key.pem   server-key.pem  app
ca-key.pem  client-cert.pem  default         ib_logfile0     ibdata1      mysql   private_key.pem     server-cert.pem  sys

データベースの内容と諸々のファイルがでてきたらここのディレクトリです。

/var/lib/mysql# ls -l
total 188484
-rw-r----- 1 1000 1000       56 Jun  3 09:47 auto.cnf
-rw------- 1 1000 1000     1676 Jun  3 09:47 ca-key.pem
-rw-r--r-- 1 1000 1000     1112 Jun  3 09:47 ca.pem
-rw-r--r-- 1 1000 1000     1112 Jun  3 09:47 client-cert.pem
-rw------- 1 1000 1000     1680 Jun  3 09:47 client-key.pem
drwxr-x--- 2 1000 1000     4096 Jun  3 09:47 default
-rw-r----- 1 1000 1000     1359 Jun  3 09:47 ib_buffer_pool
-rw-r----- 1 1000 1000 50331648 Jun  3 10:24 ib_logfile0
省略

全部が1000になっていますね、これを全てmusqlに変更しましょう。

これで解決

# chown -R mysql:mysql /var/lib/mysql

権限を確認

# ls -l
total 188484
-rw-r----- 1 mysql mysql       56 Jun  3 09:47 auto.cnf
-rw------- 1 mysql mysql     1676 Jun  3 09:47 ca-key.pem
省略

これでいけそうですね。

mysqlコンテナから抜けてworkspaceコンテナからapp直下にはいり、migrateを実行してください

docker exec -it laradock_workspace_1 bash
# php artisan migrate

webページを開くと、No application encryption key has been specified.となる

workspaceコンテナの内部で、APP KEYを作成してください。

# php artisan key:generate
Application key set successfully.
# php artisan config:cache
Configuration cache cleared!
Configuration cached successfully!

参考

【Laravel】Laradockで複数プロジェクトを動かす手順

https://laradock.io/getting-started/#B

Laradock環境MySQLで新しいDBを追加する

Laradock で mysql がうまく動作しない時は ( mysqlコンテナが起動しない、migration 出来ない)

[MySQL]権限の確認と付与

hostsファイルの場所 Windows10

No application encryption key has been specified.となったときの対応方法

MySQL, copying tables files gives rise to “ERROR 1017 (HY000): Can't find file:” even though its there there

ERROR 1017 (HY000): Can’t find file: ‘./….frm’ (errno: 13) – MySQL error. How to fix?

mysqlを5.5 -> 5.6にバージョンアップしたら、Can't find file: './mysql/plugin.frm' (errno: 13 - Permission denied)で起動こける

既にあるLaradock環境をそのままに複数のLaradock環境を構築する(Windows)

docker-composeとdockerコマンドまとめ

Laradock nginxでの404 not found

Laravelのエラー:Fatal error: require(): Failed opening required '/project/vendor/autoload.php' (include_path='.:') in /project/artisan on line 18

LaradockでLaravel+Docker環境構築(mac)

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0