目的
・PHP7技術者認定初級試験の合格を目指す。
参考教材
初めてのPHP(PHP7対応版)
開発環境についての記載がないので手探りで構築してみる。
環境
・Ubuntu 22.04LTS wsl2
・Docker
・php:7.4.33-zts-alpine3.16
Docker
php公式のイメージを使用する。
https://hub.docker.com/_/php
とりあえずpullしてみる。
$ docker pull php:7.4.33-zts-alpine3.16
$ docker run -it php:7.4.33-zts-alpine3.16
Interactive shell
php > echo 'Hellow World';
echo 'Hellow World';
Hellow World
phpのコードは実行できた。
pullしたimageは一旦削除。
Dockerfile作成
FROM php:7.4.33-zts-alpine3.16
COPY . /usr/src/myapp
WORKDIR /usr/src/myapp
CMD [ "php", "./index.php" ]
index.php
<?php
echo 'Hello World!';
$ docker build -t php:7.4.33-zts-alpine3.16 .
$ docker run -it php:7.4.33-zts-alpine3.16
Hello World!
これでDockerfileに記載したコマンドでphpファイルを実行できた。
index.php編集してもう一度runしても出力が変わらないので、キャッシュなどが残っていそう。
- コンテナ削除
- build
- run
で編集内容は反映された。
単純に1ファイル実行するだけならこれでいいみたい
$ docker run -it --rm --name my-running-script -v "$PWD":/usr/src/myapp -w /usr/src/myapp php:[tag] php your-script.php
ここまでで学習進められる状態にはなった。
単一ファイルは実行できるが、コンテナが閉じてしまい、ブラウザからアクセスできないので修正
使ってるイメージ
php:7.4.33-zts-alpine3.16
alpineはLinuxのディストリビューション
サーバ(apache)がはいってない...
php:7.4.33-apache-bullseyeに変更
apache導入後の環境
.
├── docker-compose.yml
└── php
├── index.php
version: '3'
services:
php_service:
# image: php:7.4.33-zts-alpine3.16
image: php:7.4.33-apache-bullseye
container_name: php_container
build:
context: './php/'
volumes:
- './php:/var/www/html'
ports:
- '8000:80'
docker-compose.yml
Docker備忘録
・php:7.4.33-zts-alpine3.16(名前:タグ)
・docker run -it php:7.4.33-zts-alpine3.16
--interactive , -i:アタッチしていなくても、標準入力を開き続ける
・-t:TTY
Dockerにおけるttyは、仮想端末を配置するコマンド
https://zenn.dev/hohner/articles/43a0da20181d34
・イメージ削除
docker rmi [imageID]
・コンテナ削除
dokcer rm [containerID]
・コンテナ確認
docker ps -a
・コンテナ起動時に毎回自動でコンテナを削除する
docker run --rm [イメージ]
・作業ディレクトリのマウント
docker run -v pwd
:pwd
-w pwd
-i -t ubuntu pwd
記録
学習期間 2023/11~