作成日:2020-09-28, 更新日:2020-09-28
基本
まったく分かっていない状態で作業を行う。
やりたいこと
XAMPPの代わりにDockerってヤツを使う
→分からないままDockerってヤツはインスト済み(Docker(+Win)をインスト)
初期目標
ありがちな「ハローワールド」を表示
最終目標
環境にしろ諸々の構成を理解するコト
流れ
1.環境の素を取得
2.インストール
1.環境の素を取得
・「GitHub: Docker-LAMP」からZIPでDL
・任意の場所で解凍
2.インストール
CMDより、解凍先のフォルダにカレントを移して「docker-compose」でインスト。
※laravelもインストされている感じっぽいけど・・・ドコにインストされたかは不明
インスト後は「http://localhost/index.php」にアクセスすれば表示される
「server」フォルダの中にhtml、PHPファイル(or HTMLファイル)を置けば良い感じ
→「ハローワールド」を記載したHTMLファイルをおいて「http://localhost/〇〇〇.html」にアクセスすればOK
▼解凍先のPATHが「C:\Docker-LAMP」の場合
> cd C:\Docker-LAMP > docker-compose up -d
「docker-compose」が使えるか確認
▼バージョンが表示されるなら使える
C:\Users\〇〇〇> docker-compose -v docker-compose version 1.27.2, build 18f557f9
エラーがでたとき
人によっては色々なエラーが出るそうだ。
・「docker」を起動していない状態で「docker-compose」のコマンド実行したとき
・MySQLの問題
・composer-setup.phpの問題
・・・他にもあるそうだ
私の場合は下記のような感じ。
MySQLの問題
▼出力されたエラー
E: Package 'mysql-client' has no installation candidate ERROR: Service 'php' failed to build : The command '/bin/sh -c apt-get update && apt-get install -y zlib1g-dev mysql-client && docker-php-ext-install zip pdo_mysql' returned a non-zero code: 100
→2020年9月時点ではmysql-clientはmariadb-clientに統合済み
解決法
「docker\php」内にある「Dockerfile」というファイルを開いて「mysql-client」を「mariadb-client」に変更。
composer-setup.phpの問題
▼出力されたエラー
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
解決法
▼「docker\php」内にある「Dockerfile」というファイルを開いて下記のハッシュ値のトコを書き換える
RUN php -r "if (hash_file('sha384', 'composer-setup.php') === 'ハッシュ値') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
▼ハッシュ値は公式を確認
・公式:Download Composer
各ファイル
「/docker-compose.yml」と「Dockerfile」の二つがインスト時に重要な役割があるっぽい
インスト時の環境
・「/docker-compose.yml」が各種環境
※phpMyAdminの設定があるけど・・・使うには別途phpMyAdminをインストする必要があるかも? 面倒ならAdminerのファイルを置けば解決。
▼接続先
HOST(container_name) | mysql_host |
---|---|
ID(MYSQL_USER) | docker |
PW(MYSQL_PASSWORD) | docker |
DB(MYSQL_DATABASE) | test_database |
インスト時の実行内容
・「/docker/php」内の「Dockerfile」という名のファイル
※PHPのバージョン指定もこのファイルっぽい
HTMLやPHPファイルを置く場所
・「/server」フォルダ内
※「/docker-compose.yml」を修正すれば別名にできそうな予感
PHPやMySQLの設定
・「/docker」フォルダ内
※「/docker-compose.yml」を修正、元ファイルを置けば色々と使えるようになりそうな気はする
※「nginx」がWEBサーバにあたる
不明点
ひとまず放置している不明点
phpMyAdmin
・CMDで「>docker images」を実行する「phpMyAdmin」がいる
・「phpMyAdmin」にアクセスするURLが分からない
laravel
・インスト時にlaravelの何かをDLしてたっぽい
・DLしたファイルたちがドコにいるのか不明(そもそもフレームワークのlaravelと同じモノなのかも不明)
localhost/tutorial
・「http://localhost」にアクセスすると「http://localhost/tutorial/」にリダイレクトされている
・その設定はドコでしているのか不明