0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Laravelをローカルに展開する(過去の記事の間違いを指摘しつつ)

Last updated at Posted at 2021-06-26

LaravelをローカルのPCに展開する。
導入するサービスは
WEBサーバー:Nginx
DBサーバー:MySQL
DBクライアントツール:phpMyAdmin

環境は、
MAC OS Catalina ver.10.15.7 (19H1217)
Docker for MACはインストール済み。
laradock % docker --version
Docker version 20.10.6, build 370c289

参考にしたサイトは
https://tadaken3.hatenablog.jp/entry/laradock-laravel

作業用のディレクトリを作成し、そこでgithubからクローンする。

Docker用のディレクトリを作ってあるので、その下に
mkdir lara-heroku-test3
でディレクトリを作る。
中に入って、
lara-heroku-test3 % git clone https://github.com/laradock/laradock.git
で、ファイルを展開する。
すると、
lara-heroku-test3 % ls -al
total 0
drwxr-xr-x 3 hnakase staff 96 6 27 01:32 .
drwxr-xr-x 16 hnakase staff 512 6 27 01:24 ..
drwxr-xr-x 101 hnakase staff 3232 6 27 01:37 laradock
と、ディレクトリが出来ているので、中に入る。
他のサイトには、
% cp env-example .env
と書いてあるのだが、
laradock % cp env-example .env
cp: env-example: No such file or directory
で見つからない。
https://readouble.com/laravel/5.7/ja/configuration.html
を見ると、.env.exampleがある、と記載がある。名称が変わったか?
で、コピーをすると、ファイルが出来た。

laradock % cp .env.example .env
laradock % ls -al .env*
-rw-r--r-- 1 hnakase staff 32781 6 27 01:47 .env
-rw-r--r-- 1 hnakase staff 32781 6 27 01:32 .env.example

.envファイルの編集は、
'# .env
'# Choose storage path on your machine. For all storage systems

  • DATA_PATH_HOST=~/.laradock/data
  • DATA_PATH_HOST=.laradock/data

と、

'# .env
'### MYSQL '#################################################
MYSQL_VERSION=5.7.22 # versionを固定
MYSQL_DATABASE=homestead #データベース名を変更
MYSQL_USER=homestead #ユーザー名を変更
MYSQL_PASSWORD=hogehoge #パスワードを変更
MYSQL_PORT=3306
MYSQL_ROOT_PASSWORD=root
MYSQL_ENTRYPOINT_INITDB=./mysql/docker-entrypoint-initdb.d
の2箇所。
mysqlのデータを記録するディレクトリの変更と、
mysqlへのログイン情報の変更。

で、次は、docker-composeでコンテナを立ち上げる。
過去にビルドされていない時は、warningを出しながら、
ちゃんとbuildしてくれる。
docker-compose up -d nginx mysql phpmyadmin

初めてのコマンドだと、数分かかります。

で、
WARNING: Image for service nginx was built because it did not already exist. To rebuild this image you must use docker-compose build or docker-compose up --build.
Creating laradock_docker-in-docker_1 ... done
Creating laradock_mysql_1 ... done
Creating laradock_workspace_1 ... done
Creating laradock_phpmyadmin_1 ... done
Creating laradock_php-fpm_1 ... done
Creating laradock_nginx_1 ... done
laradock %

となったら完了。docker dashboardで起動を確認すると良い。

https://localhost/
で、
404 not found
nginx
と表示されたらOK。

https://localhost:8080
で,
phpmyadminツールが立ち上がる、と書いてあるが、
「このページは動作していません」
だと!?
Docker Dashboardで確認すると、
スクリーンショット 2021-06-27 2.17.02.png
あれ〜、laradock_phpmyadmin_1のポート番号が8081になってる!

で、
http://localhost:8081
でアクセス成功。

次、laravel_workspace_1の起動を確認して、
laradock % docker-compose exec --user=laradock workspace bash
laradock@ed2c876cc7b9:/var/www$
で、workspaceのコンテナに入る。
workspaceコンテナ内でcomposerを使いLaravelのプロジェクトを作成。

laradock@ed2c876cc7b9:/var/www$ composer create-project laravel/laravel src
Creating a "laravel/laravel" project at "./src"
Installing laravel/laravel (v8.5.20)

  • Downloading laravel/laravel (v8.5.20)
  • Installing laravel/laravel (v8.5.20): Extracting archive
    Created project in /var/www/src

@php -r "file_exists('.env') || copy('.env.example', '.env');"
Loading composer repositories with package information
https://repo.packagist.org could not be fully loaded (curl error 7 while downloading https://repo.packagist.org/p2/symfony/string.json: Failed to connect to repo.packagist.org port 443: Connection refused), package information was loaded from the local cache and may be out of date

[Composer\Downloader\TransportException]
curl error 7 while downloading https://repo.packagist.org/p2/symfony/string.json: Failed to connect to repo.packagist.org port 4
43: Connection refused

create-project [-s|--stability STABILITY] [--prefer-source] [--prefer-dist] [--prefer-install PREFER-INSTALL] [--repository REPOSITORY] [--repository-url REPOSITORY-URL] [--add-repository] [--dev] [--no-dev] [--no-custom-installers] [--no-scripts] [--no-progress] [--no-secure-http] [--keep-vcs] [--remove-vcs] [--no-install] [--ignore-platform-req IGNORE-PLATFORM-REQ] [--ignore-platform-reqs] [--ask] [--] [] [] []

laradock@ed2c876cc7b9:/var/www$

何だこのエラーは?
と調べてみると、IPv6での接続がNGらしい。
https://blog.kubou.net/2019/04/09/231536/
に記載があった。
そこで、MACのネットワーク設定を開き、TCP/IPのタブで、
IPv6の設定:リンクローカルのみ
を選択して適用。
laradock@ed2c876cc7b9:/var/www$ rm -rf src
で、srcを削除して(削除しないとsrcが空じゃない、とエラーがでる)

laradock@ed2c876cc7b9:/var/www$ composer create-project laravel/laravel src
Discovered Package: facade/ignition
Discovered Package: fideloper/proxy
Discovered Package: fruitcake/laravel-cors
Discovered Package: laravel/sail
Discovered Package: laravel/tinker
Discovered Package: nesbot/carbon
Discovered Package: nunomaduro/collision
Package manifest generated successfully.
74 packages you are using are looking for funding.
Use the composer fund command to find out more!

@php artisan key:generate --ansi
Application key set successfully.
laradock@ed2c876cc7b9:/var/www$
完了。

laradock@ed2c876cc7b9:/var/www$ cd src
で、srcディレクトリに入って、
laradock@ed2c876cc7b9:/var/www/src$ vi .env
で.envファイルを編集。
'#.env
DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=hogehoge
で、データベースに関する情報を更新して、保存。

引き続き、
laradock@ed2c876cc7b9:/var/www/src$ php artisan migrate
Migration table created successfully.
Migrating: 2014_10_12_000000_create_users_table
Migrated: 2014_10_12_000000_create_users_table (47.84ms)
Migrating: 2014_10_12_100000_create_password_resets_table
Migrated: 2014_10_12_100000_create_password_resets_table (39.11ms)
Migrating: 2019_08_19_000000_create_failed_jobs_table
Migrated: 2019_08_19_000000_create_failed_jobs_table (39.60ms)
laradock@ed2c876cc7b9:/var/www/src$ php artisan key:generate
Application key set successfully.
laradock@ed2c876cc7b9:/var/www/src$
で完了。
exitでコンテナを抜けて、laravelの.envを編集。
'############################'
'# General Setup'
'############################'

'### Application Path'
'# Point to your application code, will be available at /var/www.'

APP_CODE_PATH_HOST=../src/

で、保存したら、
nginxを再起動。
laradock % docker-compose up -d nginx
Docker Compose is now in the Docker CLI, try docker compose up

Recreating laradock_docker-in-docker_1 ... done
Recreating laradock_workspace_1 ... done
Recreating laradock_php-fpm_1 ... done
Recreating laradock_nginx_1 ... done
hnakase@HironoMacBook-Pro laradock %

これで、
https://localhost/
にアクセスすると、Laravelのindexページが表示されて完了。

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?