0
0

PHP学習記録

Last updated at Posted at 2023-11-05

目的

・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しても出力が変わらないので、キャッシュなどが残っていそう。

  1. コンテナ削除
  2. build
  3. 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~

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