--- tags: PHP, MySQL, full scratch, 2023-06-06, Udemy title: Udemy講座学習メモ(PHP,MySQL,Docker) --- Udemy講座学習メモ(PHP,MySQL,Docker) - :::info 📌**講座名 【PHP8.2対応】現役Webエンジニアが教えるPHP,MySQL,dockerを使用したフルスクラッチ開発** 📌購入日 2023-06-07 学習期間 2023-06-07~ ::: ## §1(#01) コースの紹介 ### 特徴  ### なぜ、フレームワークを使わないのか: <b>📌フレームワークを使うのに比べ、より「プログラムへの理解」ができるから</b> <b>📌リファクタリングが大切であり、プログラムへの理解がないとリファクタリングができないから</b> ### コースの流れ  --- ## §2 PHPの基礎 ### \#02 HelloWorldを表示しよう PHPを実行する環境を自前で準備するのは大変なので便利なオンラインPHP実行環境サービス「[3V4L](https://3v4l.org/)」を利用すると良い。 💓3V4Lサイトが素晴らしい、PHPのバージョンの違いを検証できるし、使い勝手もよい。特にダークモード設定が見やすい。 --- ## §3 環境構築 ### (#26) Dockerの起動 📌Docker公式のコンテナーライブラリ[Docker Hub](https://hub.docker.com/)がある >  #### - 1 検索窓にPHPと入力 >  #### - 2 検索結果の最初のカードをクリック >  #### - 3 コマンドライン(ひな形)を取得し整形 > > PHPの詳細ページが開く。下の方にスクロールすると「イメージバリエーション」がり、その下にイメージの様々な使い方が解説されている。 > 解説のさらに下の方にある「Apache without a Dockerfile(ApacheなしのDockerfile)」を参照する。 > > このままではターミナルにコピペしても使えない形式が含まれているので、テキストメモアプリで下記のように整形から使う ```bash= # 変更前---------- $ docker run -d -p 80:80 --name my-apache-php-app -v "$PWD":/var/www/html php:7.2-apache # 変更後---------- $ docker run -d -p 80:80 --name my-apache-php-app -v ${PWD}:/var/www/html php:7.2-apache ``` **注記:$"PWD"のダブルクオーテーションをひげ括弧{}に置き換える必要があります。** ※ひげ括弧または中括弧のことを「ひげ(マスタッシュmoustache)」呼ぶことも多いです。 📌AI を利用した Web向け copilot 「Bing」によるコマンドラインの解説 :::success - `docker run`は、Dockerイメージからコンテナを作成して実行するコマンドです。 - `-d`は、コンテナをバックグラウンドで実行するオプションです。 - `-p 80:80`は、ホストの80番ポートとコンテナの80番ポートをマッピングするオプションです。これにより、ホストの80番ポートにアクセスすると、コンテナの80番ポートに転送されます。 - `--name my-apache-php-app`は、コンテナにmy-apache-php-appという名前を付けるオプションです。これにより、コンテナを識別しやすくなります。 - `-v $[PWD]:/var/www/html`は、ホストのカレントディレクトリ(${PWD})とコンテナの/var/www/htmlディレクトリをマウントするオプションです。これにより、ホストとコンテナでファイルを共有できます。 - `php:7.2-apache`は、使用するDockerイメージの名前です。このイメージは、PHP 7.2とApache Webサーバーがインストールされたイメージです。 つまり、このコマンドは、PHP 7.2とApache Webサーバーがインストールされたコンテナをバックグラウンドで実行し、ホストの80番ポートとコンテナの80番ポートをマッピングし、ホストのカレントディレクトリとコンテナの/var/www/htmlディレクトリをマウントし、コンテナにmy-apache-php-appという名前を付けるということです。 ::: #### -4 実験用ディレクトを作成しindex.phpファイル設置 実験するには、まず実験用のディレクトリを作成する。下記のコードはサンプル例です。 ```bash= PS C:\Users\yuasy\source\> midir udemy #実験する場所を作る C:\Users\yuasy\source\> cd udemy #実験用ディレクトリにいづ ``` 次に実際にDockerで作った環境(コンテナ)内で実行するindex.phpをテキストエディタで作成します。下記のコードはVsCodeで作成したサンプルです。 ```php= <?php echo "HelloWorld"; ?> ```  #### -5 Dockerを起動 起動コマンド: ``` docker run -d -p 80:80 --name my-apache-php-app -v ${PWD}:/var/www/html php:7.2-apache```  :::info 【補足説明】 起動コマンドを一番最初に使ったときは数秒間かかるが、2回目以降はイメージのダウロードが不要になるので、瞬時に起動する。上図の例は2回目以降の起動です。 ::: #### -6 ブラウザでコンテナの稼働を確認  **index.phpを書き換えて動作を再確認**  #### -7 Dockerを停止  #### -8 Dockerを削除  <div style="background-color: ;width:100%;height:12rem;"> </div> --- ## 途中での考察---番外編だけど重要 📌 今までの作業はWindowsのpowershellで行ったが、swl2(ubuntu)で、実行できるか実験していなかったので、やっておきたい。 📌 また[★この記事](https://asameshicode.com/vite-tailwindcss/)も魅力的なので、時間を見つけて体験してみたい。 ### wsl2(ubuntu)で実験してみました 結論:OK ✅ ~~ただし、ターミナルから``` $ sudo dockerd```を実行してubuntu用のDockerを起動しておく必要がある~~ ✅この実験をやってから、PowerShellに戻ってdocker runしたら、エラーが出て全く使えなくなってしまい、沼ハマり状態になりました。 ###    📌 そこで、重要なことが分かりました 📌 【解決法(Windows11Proで確認済み)】Docker for Desktopをアンインストールしたあと、最新版の同インストーラーをダウンロードして起動したときに下図のダイアログが出るので、「Configuration」の直下のチェックボックスがチェックされていることを確認してから、OKボタンを押すことです。 **これで、DockerデーモンはWindows上のPowerShellとWSL2ターミナルの両方で正常動作します。**  #### WindowsとDockerとwsl2などの知識が得られる動画教材発見! ※下の絵をクリックすると動画教材にジャンプします。 [](https://youtu.be/0SkmKxGxCuc) <div style="background-color: ;width:100%;height:12rem;"> </div> --- ### (#28) docker-compose ## § 4 SQLでデータ操作してみよう ### (#43) トランザクション  
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up