<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>PHP | POがITでラクする仕事術</title>
	<atom:link href="https://shoelab.jp/category/php/feed/" rel="self" type="application/rss+xml" />
	<link>https://shoelab.jp</link>
	<description>ノンプログラマーでも簡単！GASと無料ツールで業務効率化を実現</description>
	<lastBuildDate>Sun, 19 Oct 2025 21:29:43 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.8.3</generator>

<image>
	<url>https://shoelab.jp/wp-content/uploads/2024/02/cropped-e14debba4b651ab77c82b66fca4377bf-32x32.png</url>
	<title>PHP | POがITでラクする仕事術</title>
	<link>https://shoelab.jp</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>🧱 初心者向け｜DockerでつくるPHP開発環境（最小テンプレート付き）</title>
		<link>https://shoelab.jp/php/%f0%9f%a7%b1-%e5%88%9d%e5%bf%83%e8%80%85%e5%90%91%e3%81%91%ef%bd%9cdocker%e3%81%a7%e3%81%a4%e3%81%8f%e3%82%8bphp%e9%96%8b%e7%99%ba%e7%92%b0%e5%a2%83%ef%bc%88%e6%9c%80%e5%b0%8f%e3%83%86%e3%83%b3/</link>
		
		<dc:creator><![CDATA[イカP]]></dc:creator>
		<pubDate>Sun, 19 Oct 2025 03:00:00 +0000</pubDate>
				<category><![CDATA[PHP]]></category>
		<guid isPermaLink="false">https://shoelab.jp/?p=724</guid>

					<description><![CDATA[こんにちは、イカPOです。今日は Docker を使って PHP の開発環境をつくる 方法を紹介します。 AIによるコーディングが当たり前になった今、「バックエンド（見えない仕組み）をどう設計するか」がとても重要になって [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>こんにちは、イカPOです。<br>今日は <strong>Docker を使って PHP の開発環境をつくる</strong> 方法を紹介します。</p>



<p>AIによるコーディングが当たり前になった今、<br>「<strong>バックエンド（見えない仕組み）をどう設計するか</strong>」がとても重要になってきています。</p>



<p>でも、バックエンドってなんだか難しそう…と思う方も多いはず。<br>そこで今回は、最も手軽に学べるバックエンド言語「<strong>PHP</strong>」を題材に、<br><strong>自分のパソコンで動かせる最小の開発環境</strong> をつくってみましょう。</p>



<p>テンプレートはこちら</p>


<a rel="nofollow" target="_blank"  data-e-Disable-Page-Transition="true" class="download-link" title="" href="https://shoelab.jp/download/727/?tmstv=1761022322" id="download-link-727" data-redirect="false" >
	PHP開発環境最小テンプレート	(0 ダウンロード	)
</a>




<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>💬 注意：イカPOはPHP初心者です。<br>本記事は備忘録的にまとめているので、間違いがあればぜひ教えてください！</p>
</blockquote>



<hr class="wp-block-separator has-alpha-channel-opacity"/>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-2" checked><label class="toc-title" for="toc-checkbox-2">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">🧰 1. 事前準備</a><ol><li><a href="#toc2" tabindex="0">🐳 Docker Desktop をインストール</a></li><li><a href="#toc3" tabindex="0">🧩 VS Code（エディタ）を準備</a></li></ol></li><li><a href="#toc4" tabindex="0">📁 2. 作業用フォルダを作る</a></li><li><a href="#toc5" tabindex="0">⚙️ 3. 最小テンプレートを配置する</a><ol><li><a href="#toc6" tabindex="0">フォルダ構成</a></li><li><a href="#toc7" tabindex="0">🧾 docker-compose.yml</a><ol><li><a href="#toc8" tabindex="0">ポイント</a></li></ol></li><li><a href="#toc9" tabindex="0">🐘 Dockerfile</a><ol><li><a href="#toc10" tabindex="0">補足：</a></li></ol></li><li><a href="#toc11" tabindex="0">💬 public/index.php</a></li><li><a href="#toc12" tabindex="0">🧩 public/.htaccess</a></li></ol></li><li><a href="#toc13" tabindex="0">🚀 4. 起動してみよう</a><ol><li><a href="#toc14" tabindex="0">表示例</a></li><li><a href="#toc15" tabindex="0">よく使うコマンド</a></li></ol></li><li><a href="#toc16" tabindex="0">📘 主要3ファイルの説明</a><ol><li><a href="#toc17" tabindex="0">🧩 .htaccess（Apacheの設定ファイル）</a></li><li><a href="#toc18" tabindex="0">🧱 Dockerfile（PHP+Apache環境を構築する手順書）</a></li><li><a href="#toc19" tabindex="0">⚙️ docker-compose.yml（環境全体の構成設定）</a></li></ol></li><li><a href="#toc20" tabindex="0">📦 10. ファイル名やプロジェクト名を変えるとき</a><ol><li><a href="#toc21" tabindex="0">✅ プロジェクトを複製したい場合</a></li><li><a href="#toc22" tabindex="0">🧩 新しいPHPプロジェクトを作るとき</a></li><li><a href="#toc23" tabindex="0">❌ やってはいけないこと</a></li></ol></li><li><a href="#toc24" tabindex="0">🧭 11. まとめ</a></li><li><a href="#toc25" tabindex="0">▶ 次回予告</a><ol><ol><ol><ol><li><a href="#toc26" tabindex="0">🛡️ 免責文</a></li></ol></li></ol></li></ol></li></ol></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">🧰 1. 事前準備</span></h2>



<h3 class="wp-block-heading"><span id="toc2">🐳 Docker Desktop をインストール</span></h3>



<p>公式サイト：👉 <a rel="nofollow noopener" target="_blank" href="https://www.docker.com/ja-jp/">https://www.docker.com/ja-jp/</a></p>



<p>Docker Desktopとは、あなたのPCの中に「仮想の小さなサーバー（＝コンテナ）」をつくるツールです。<br>ApacheやPHPを個別インストールしなくても、同じ構成をすぐ再現できます。</p>



<h3 class="wp-block-heading"><span id="toc3">🧩 VS Code（エディタ）を準備</span></h3>



<p>Docker拡張とも相性が良く、設定もシンプル。<br>初心者に最もおすすめのエディタです。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><span id="toc4">📁 2. 作業用フォルダを作る</span></h2>



<p>Windowsの場合は、ユーザーディレクトリ配下がトラブル少なめです。<br>パスに日本語やスペースが無い場所を推奨します。</p>



<p>例：</p>



<pre class="wp-block-code"><code>C:\Users\あなたのユーザー名\Work\php-baseapp-min
</code></pre>



<p>このフォルダに、最小テンプレート一式を置きます。<br>この記事はすでにこの構成を前提にしています。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><span id="toc5">⚙️ 3. 最小テンプレートを配置する</span></h2>



<p>以下の構成が、今回使用する <strong>イカPOオリジナルの最小PHPテンプレート</strong> です。<br>（このひな形はイカPOが独自に作成したものです）</p>


<a rel="nofollow" target="_blank"  data-e-Disable-Page-Transition="true" class="download-link" title="" href="https://shoelab.jp/download/727/?tmstv=1761022322" id="download-link-727" data-redirect="false" >
	PHP開発環境最小テンプレート	(0 ダウンロード	)
</a>




<h3 class="wp-block-heading"><span id="toc6">フォルダ構成</span></h3>



<pre class="wp-block-code"><code>docker-compose.yml
Dockerfile
public/
 ├─ .htaccess
 └─ index.php
</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc7">🧾 docker-compose.yml</span></h3>



<pre class="wp-block-code"><code>version: '3.8'

services:
  web:
    build: .
    ports:
      - "8080:80"
    volumes:
      - ./public:/var/www/html
    container_name: php83-apache-min
    environment:
      APP_ENV: local
</code></pre>



<h4 class="wp-block-heading"><span id="toc8">ポイント</span></h4>



<ul class="wp-block-list">
<li><code>build: .</code> → カレントディレクトリの Dockerfile でビルド</li>



<li><code>container_name:</code> → コンテナ名（任意）</li>



<li><code>ports:</code> → ローカル8080 → コンテナ内80番（Apache）</li>



<li><code>volumes:</code> → <strong>ローカルpublicをコンテナのドキュメントルートへマウント</strong></li>



<li><code>environment:</code> → 環境変数。<code>getenv('APP_ENV')</code> で参照可能</li>
</ul>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>💡 public 内のファイルを編集すれば、<strong>ブラウザを更新するだけで変更を確認可能</strong>（自動リロードではなく手動更新で反映）。</p>
</blockquote>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc9">🐘 Dockerfile</span></h3>



<pre class="wp-block-code"><code>FROM php:8.3-apache
RUN a2enmod rewrite
WORKDIR /var/www/html
</code></pre>



<h4 class="wp-block-heading"><span id="toc10">補足：</span></h4>



<ul class="wp-block-list">
<li>ベース：<code>php:8.3-apache</code></li>



<li><code>a2enmod rewrite</code> → <code>.htaccess</code> のURL書き換え機能を有効化</li>



<li><code>WORKDIR</code> → コンテナの作業フォルダを <code>/var/www/html</code> に指定</li>
</ul>



<p>この3行で「PHP + Apache が動く最小のWebサーバー」が構築されます。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc11">💬 public/index.php</span></h3>



<pre class="wp-block-code"><code>&lt;?php
date_default_timezone_set('Asia/Tokyo');
echo "&lt;h1&gt;PHP Minimal Starter&lt;/h1&gt;";
echo "PHP version: " . phpversion() . "&lt;br&gt;";
echo "Time: " . date('Y-m-d H:i:s');
?&gt;
</code></pre>



<p>最小の「動いていることがわかる」サンプルです。<br>編集して保存し、ブラウザを再読み込みすれば即反映します。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc12">🧩 public/.htaccess</span></h3>



<pre class="wp-block-code"><code>RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php &#091;L]
</code></pre>



<p>存在しないURLをすべて <code>index.php</code> に転送するルールです。<br>これにより、PHP側でURLに応じた処理を記述できるようになります。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><span id="toc13">🚀 4. 起動してみよう</span></h2>



<p>Docker Desktopを起動して</p>



<p>ターミナルでプロジェクトフォルダへ移動し、次を実行👇</p>



<pre class="wp-block-code"><code>docker compose up -d
</code></pre>



<p>初回はベースイメージのダウンロードで少し時間がかかります。<br>完了したらブラウザで：</p>



<p>👉 <a rel="nofollow noopener" target="_blank" href="http://localhost:8080/">http://localhost:8080</a></p>



<p>を開きましょう。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc14">表示例</span></h3>



<pre class="wp-block-code"><code>PHP Minimal Starter
PHP version: 8.3.x
Time: 2025-10-18 12:34:56
</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc15">よく使うコマンド</span></h3>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>操作</th><th>コマンド</th></tr></thead><tbody><tr><td>停止</td><td><code>docker compose down</code></td></tr><tr><td>再起動（構成変更後）</td><td><code>docker compose up -d --build</code></td></tr><tr><td>ログ確認</td><td><code>docker compose logs -f web</code></td></tr></tbody></table></figure>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><span id="toc16">📘 主要3ファイルの説明</span></h2>



<p>ここからは、今回のテンプレートを動かすうえで欠かせない<br>3つの設定ファイルについて、具体的に説明します。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc17">🧩 .htaccess（Apacheの設定ファイル）</span></h3>



<p><code>.htaccess</code> は <strong>Apache サーバーの動作ルールをフォルダ単位で指定する設定ファイル</strong> です。<br>今回の Docker 環境では <code>/var/www/html</code>（＝<code>public/</code>）以下に配置され、<br>URLの書き換えやアクセス制御を行います。</p>



<pre class="wp-block-code"><code>RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php &#091;L]
</code></pre>



<p>これは「アクセスされたパスに実際のファイルやディレクトリがなければ、<br>すべて <code>index.php</code> に処理を渡す」という意味です。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>✅ <code>.htaccess</code> は <strong>「すべてのリクエストをPHPで受け止める」ための設定ファイル</strong> です。</p>
</blockquote>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc18">🧱 Dockerfile（PHP+Apache環境を構築する手順書）</span></h3>



<p><code>Dockerfile</code> は <strong>PHP と Apache が動く環境を構築するための設定ファイル</strong> です。<br>Dockerはこのファイルを読み込み、指定された環境を自動的に作ります。</p>



<pre class="wp-block-code"><code>FROM php:8.3-apache
RUN a2enmod rewrite
WORKDIR /var/www/html
</code></pre>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>行</th><th>内容</th></tr></thead><tbody><tr><td><code>FROM php:8.3-apache</code></td><td>PHP8.3 と Apache の公式Dockerイメージを使う</td></tr><tr><td><code>RUN a2enmod rewrite</code></td><td><code>.htaccess</code> のURL書き換え機能を有効化する</td></tr><tr><td><code>WORKDIR /var/www/html</code></td><td>コンテナ内の作業ディレクトリを設定</td></tr></tbody></table></figure>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc19">⚙️ docker-compose.yml（環境全体の構成設定）</span></h3>



<p><code>docker-compose.yml</code> は <strong>複数のコンテナ（サービス）をまとめて起動・管理する設定ファイル</strong> です。<br>今回は PHP サーバーのみですが、MySQLなどを追加する場合もこのファイルで管理します。</p>



<pre class="wp-block-code"><code>version: '3.8'

services:
  web:
    build: .
    ports:
      - "8080:80"
    volumes:
      - ./public:/var/www/html
    container_name: php83-apache-min
    environment:
      APP_ENV: local
</code></pre>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>項目</th><th>内容</th></tr></thead><tbody><tr><td><code>build:</code></td><td>同フォルダ内の <code>Dockerfile</code> を使って構築</td></tr><tr><td><code>ports:</code></td><td>ホストPCの8080番 → コンテナの80番を接続</td></tr><tr><td><code>volumes:</code></td><td>ローカル <code>public/</code> フォルダを <code>/var/www/html</code> にマウント</td></tr><tr><td><code>container_name:</code></td><td>コンテナ名（任意、変更可能）</td></tr><tr><td><code>environment:</code></td><td>PHP側から取得できる環境変数を設定</td></tr></tbody></table></figure>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><span id="toc20">📦 10. ファイル名やプロジェクト名を変えるとき</span></h2>



<p>Dockerは、<strong>フォルダ単位で環境を認識</strong>します。<br>そのため、フォルダ名やファイル名を変更しても動作しますが、<br>いくつかの注意点があります。</p>



<h3 class="wp-block-heading"><span id="toc21">✅ プロジェクトを複製したい場合</span></h3>



<ol class="wp-block-list">
<li>元のフォルダをコピーして、任意の新しい名前をつける <code>php-baseapp-min → php-todoapp</code></li>



<li>ファイル名（<code>docker-compose.yml</code>、<code>Dockerfile</code>）はそのままでOK</li>



<li>ただし、<strong><code>container_name:</code> は変更推奨</strong> 。同名のコンテナが重なると起動エラーになります。<code>docker-compose.ym</code>lは確認しましょう。</li>



<li>起動時は、新しいフォルダへ移動してから <strong><code>docker compose up -d</code> </strong>を実行すれば完了。</li>
</ol>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc22">🧩 新しいPHPプロジェクトを作るとき</span></h3>



<ol class="wp-block-list">
<li>新しいフォルダを作る（例：<code>php-loginapp</code>）</li>



<li>このテンプレートをコピーして配置</li>



<li><code>public/index.php</code> を必要な内容に変更</li>



<li><code>docker-compose.yml</code> 内の <code>container_name</code> を変更</li>
</ol>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>💡 Dockerは「フォルダ＝1プロジェクト」として扱うため、<br>同じテンプレートを何度でもコピーして新しい環境を作れます。</p>
</blockquote>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc23">❌ やってはいけないこと</span></h3>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>操作</th><th>理由</th></tr></thead><tbody><tr><td>docker-compose.yml を他の場所に移動する</td><td><code>build: .</code> の相対パスが壊れる</td></tr><tr><td>同名のコンテナを同時起動する</td><td>container_name が重複してエラーになる</td></tr><tr><td>public フォルダを削除する</td><td>Apache がルートを見失う</td></tr></tbody></table></figure>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><span id="toc24">🧭 11. まとめ</span></h2>



<ul class="wp-block-list">
<li>Dockerを使えば、数分でPHP環境を再現できる</li>



<li><code>docker compose up -d</code> で起動 → <code>http://localhost:8080</code> で確認</li>



<li><code>public</code> を DocumentRoot にすることで安全・シンプル</li>



<li><strong>フォルダ単位で複製・再利用できる（container_name は変更推奨）</strong></li>
</ul>



<p><strong>本記事のテンプレートはイカPOオリジナル設計</strong>です。改善点等あれば教えてください。</p>


<a rel="nofollow" target="_blank"  data-e-Disable-Page-Transition="true" class="download-link" title="" href="https://shoelab.jp/download/727/?tmstv=1761022322" id="download-link-727" data-redirect="false" >
	PHP開発環境最小テンプレート	(0 ダウンロード	)
</a>




<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><span id="toc25">▶ 次回予告</span></h2>



<p>次回は、この環境を使って<br><strong>シンプルなPHPアプリ（ログイン機能つき</strong>）を作っていきます。<br>お楽しみに🦑！</p>



<h6 class="wp-block-heading"><span id="toc26">🛡️ 免責文</span></h6>



<p>本記事は教育・情報提供を目的として作成しています。<br>内容の正確性には細心の注意を払っていますが、<br>動作環境やバージョンによる差異については保証できません。<br>実際の運用はご自身の責任で行ってください。</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
