Lavavel+vueでサイト構築①

Lavavel+vueでサイト構築①

2020年7月5日
学習
Pocket

https://qiita.com/rope19181/items/10da72374839630af83b

こちらをリスペクトして、開発環境を構築していきます。

ほぼ、そのままで行けましたが、エラーが一部発生したので以下に記載します。

project
├ docker
│  ├ db
│  │ ├ data
│  │ ├ my.conf
│  │ └ sql
│  │
│  ├ nginx
│  │  └ default.conf
│  │  
│  └ php
│    ├ Dockerfile
│    └ php.ini  
├ myapp
└ docker-compose.yml

docker-compos up -d –buildで、以下のエラーが発生しました。

Dockerfile内で、まず、php7.2-fpm => php7.4-fpmに変更したためのエラーのようです。

configure: error: Package requirements (libzip >= 0.11) were not met:

No package 'libzip' found

Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.

Alternatively, you may set the environment variables LIBZIP_CFLAGS
and LIBZIP_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.
ERROR: Service 'php' failed to build: The command '/bin/sh -c apt-get update   && apt-get install -y zlib1g-dev mariadb-client   && docker-php-ext-install zip pdo_mysql' returned a non-zero code: 1

Dockerfileの以下の行を修正します。

  && apt-get install -y zlib1g-dev mariadb-client \
↓
  && apt-get install -y libzip-dev mariadb-client \

再度、buildをします。

以下のエラーが発生しました。

Could not open input file: composer-setup.php
ERROR: Service 'php' failed to build: The command '/bin/sh -c php composer-setup.php' returned a non-zero code: 1

ぐぐるとすぐに出てきたので、以下の対応を追加

composerのページに行き、そこにある以下の赤枠部分をコピーして

Dockerfileの同様の部分に貼付け、各行の頭に、”RUN”を追加する。

(よく読むと、本家のサイトに、コピペすることと書いてありました。)

こちらは、ハッシュ値が変わったことによるエラーのようでした。(最新版を反映する)

Lavavel+vueでサイト構築①
RUN php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
RUN php -r "if (hash_file('sha384', 'composer-setup.php') === 'e5325b19b381bfd88ce90a5ddb7823406b2a38cff6bb704b0acc289a09c8128d4a8ce2b\
bafcd1fcbdc38666422fe2806') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_E\
OL;"
RUN php composer-setup.php
RUN php -r "unlink('composer-setup.php');"

上記の修正して、buildを行い、エラーがでずに完了することを確認します。

docker-compose up -d --build
Lavavel+vueでサイト構築①

Laravelプロジェクトの作成

phpコンテナに入ります。

docker-compose exec php bash

新規プロジェクトを作成(Laravel6を入れます)

pwd
/var/www/ #/var/www/で以下のコマンドを実行
composer create-project --prefer-dist laravel/laravel=6.* . 
Lavavel+vueでサイト構築①

Laravelプロジェクトの環境設定

laravelプロジェクト内の.envやconfig/detabase.phpのデータベースの設定docker-compose.ymlに設定した値に変更します。

(編集は、Docker内ではなくローカル環境で行います。)

myapp/.env, myapp/config/database.phpを編集します。

# docker-compose.ymlの設定
  db:
    image: mysql:5.7
    container_name: db-host
    environment:
      MYSQL_ROOT_PASSWORD: root
      MYSQL_DATABASE: database
      MYSQL_USER: docker
      MYSQL_PASSWORD: docker
      TZ: 'Asia/Tokyo'
#.envファイル
[Before]
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=

[After]
DB_CONNECTION=mysql
DB_HOST=db-host
DB_PORT=3306
DB_DATABASE=database
DB_USERNAME=docker
DB_PASSWORD=docker
#config/database.php
[Before]
            'host' => env('DB_HOST', '127.0.0.1'),
            'database' => env('DB_DATABASE', 'forge'),
            'username' => env('DB_USERNAME', 'forge'),
            'password' => env('DB_PASSWORD', ''),


[After]
            'host' => env('DB_HOST', 'db-host'),
            'database' => env('DB_DATABASE', 'database'),
            'username' => env('DB_USERNAME', 'docker'),
            'password' => env('DB_PASSWORD', 'docker'),

表示確認

以下に、アクセスし、トップページが表示されることを確認。

http://localhost/

Lavavel+vueでサイト構築①

migrateとphpMyAdminの表示確認

phpコンテナに入り、migrateを実行します。

php artisan migrate
Lavavel+vueでサイト構築①

phpMyAdmin

http://localhost:8080/

databaseデータベースに、4つのテーブルができていればOKです。

Lavavel+vueでサイト構築①

ここまでで、開発環境の構築は完了です。

今後は、作成しようとしているサイトの構築を進めていきます。