LoginSignup
2
2

More than 1 year has passed since last update.

PHPをはじめからていねいに [Dockerによる環境構築・実行]

Posted at

PHPをはじめから丁寧に

要約


PHPをMac環境で書き始める事ができるように、
Dockerを用いて環境構築を行った。

Dockerを数十分で触ってみたい方や、PHPの概要を知りたい方へ向ける。

執筆時期


2023年3月-4月

使用環境


MacBook Air

チップ:Apple 1M
メモリ:8 GB
OS:Ventura 13.3.1

Docker desktop 4.17.0
Engine 20.10.23
Compose v2.15.1
Credential Helper v0.7.0
Kubernotes v1.25.4

PHP 8.2.5

背景


バックエンドのインターンシップを「控えている」、超初心者学生視点で
PHP未経験から自習した内容を、まとめてこちらにて紹介する。
Dockerを利用し、一行コードを実行できるまでを記載する。


PHPとは?

動的なWebページを生成できる、
サーバーサイドスクリプト言語です。

動的なWebページとは、ページを開いたときに
決まったページを表示する静的なWebページと対比され、
特定の時間にはこのような記述をする、
発言に応じて画面が変化する掲示板など
様々な

スクリプト言語とは、
ウェブサイトの構造を記述する言語で、
PHPはスクリプト言語の中でも
バックエンド側の言語だと言われています。

バックエンド側の技術とは、
サーバーを扱う言語のことを言います。
使用する方が直接訪れるわけではない、
システムの裏側を整備するような技術を言います。

よく使用される言語は、
C,C++
Python,PHP,Ruby
Java
などが挙げられます。

並行して利用されるものに、
フレームワークである
Ruby on Rails
CakePHP
Express

Webサイトの情報を送受信するApache、
データベース管理のための、MySQL
などが存在します。

触ったことのないものも多いのですが、
参考文献よりできるだけ多く記載させていただきました。

PHPの特徴

引用符を使ってみたい
大変わかりやすい文章がこちらにあり、引用させていただきます。
かごやのサーバー研究室様のブログよりの引用です。

PHPの処理はWebサーバー側で行われるのに対して、JavaScriptの処理はWebページを参照するユーザー(クライアント)側のブラウザで行われます。サーバーサイドのPHPはサーバー側にあるMySQLなどのデータベースと連携することが可能です。

仮想環境に関する理解


Anacondaによる仮想環境の構築をお勧めします。
あまり理解は進んでいないのですが、
導入したパッケージや使用している言語のバージョン自体を管理できます。

個人で学習していてわからなかった部分の一つですが、
実際に集団で開発を経験している友人曰く、
環境が違う人達同士で同じコードを共有しても動かない場合もかなり多く
READMEに書く事項のように、「これはpython3.8.8で動きます。」を

私は初心者ながらAnaconda-Navigatorへの理解を怠り
めちゃくちゃなローカル環境を構築してしまったので、
ぜひもし学び始めたレベルの方がこの記事を見てくだされば、
環境構築ということをめちゃくちゃ勉強されるか、
環境構築までは有料の講座やコーチを課金することをお勧めいたします。

高価なPCの中身をぐちゃぐちゃにしてしまうと、大変もったいないです。

Docker基礎


Dockerをダウンロード
アカウント作成
(公式ドキュメントが素晴らしいです。)
https://matsuand.github.io/docs.docker.jp.onthefly/get-started/overview/

mac環境を前提にお話しします。

一度起動したもののしっかりと一度再起動し、terminalがリセットされてしまいましたので、一緒に行いましょう。

まずはデスクトップアプリを起動してください。
少し時間がかかります。

全面表示していないとき、最も左のツールバーには、

  • Containers
  • Images
  • Volumes
  • Dev Environments
    (その他拡張機能Extentions)

が表示されています。

imagesは数百MB前後、Volumesは数MB程度となっています。

Terminalを利用し、以下のコマンドで、dockerを操作してゆきましょう。
(Mac備え付けのソフト)
(command+spaceでspotlight検索を起動し、
terminalと打ち込んでいただくと、起動します。)

docker pull php

これはDockerhubより、公式のPHPイメージをダウンロードしています。
Dockerhubとは、Dockerイメージを提供する公式リポジトリの一つであり、
特定の言語などに対応したDockerイメージがたくさん入っています。
Dockerイメージとは、Dockerコンテナを立ち上げるための道具がたくさん入っているものです。

これでDockerコンテナを起動する準備ができました。

次に、適当なディレクトリを作りましょう

mkdir php_practice

などで問題ないかと思います。(センスがありません。)
ついにコンテナを起動します。

docker run -it -v php_practice:/var/www/html php

と打ち込んでください。
これでコンテナが起動しました。
確認しにゆくと、
Containersにおいて、一つだけ色がついたコンテナが増えているのがわかります。
Imagesの一番上にもphpが追加されているのではないのでしょうか?

PHPのためのイメージがあって、コンテナ起動
という流れだと理解をしています。

ここでterminalには

php >

のような表示がなされているのではないでしょうか?
これはphpを対話的に実行する環境です。
コマンドラインでPHPスクリプトを実行する環境ではありません。

試しに

echo "Hello World";

と打ち込んでいただけると、Hello Worldと出力されるのがお分かりだと思います。
あくまでPythonやRを、terminalで起動した時の状態。
ということだと思われます。

それではPackageを入れてゆきましょう、、と言いたいところですが、
PHP自体への勉強がたりず今回は参考文献の記載にとどめさせていただきます。

直接コマンドを打ち込む方法もあるようですがあまり歓迎されません。
システムパッケージマネージャーやPECLを用いると良いようです。
少々勉強する時間をください。

php >と表示されたまま動けなくなってしまっているので、
終了したい場合はexitと打ち込んでください。

コンテナも同時に停止します。

ここまでくると、逆にコンテナを起動して、
コンテナの中のシェルでPHPが実行できるようになりたいです。

start docker コンテナ名

により、コンテナが起動します。大変軽いです。

次に
コンテナをクリックしてIDを取得しても、コンテナ名を入れてもいいのですが、

docker exec -it IDorコンテナ名 /bin/bash

により、コンテナの中でシェルが起動します、
こちらで

php -r "実行したいコード"

により単体で実行することができます。

あとがき

ご精読ありがとうございました!
記事を書き続けられるよう精進します。

/参考文献/

Progate PHP講座

2
2
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
2
2