CodeIgniterのDocker環境構築入門!初心者でも失敗しない開発環境の作り方
生徒
PHPのフレームワーク「CodeIgniter」を使ってWebサイトを作りたいのですが、環境構築が難しそうで不安です。
先生
CodeIgniterは軽量で高速なので初心者にも最適です。今回はDockerを使って、簡単に開発環境を構築する方法を解説しますね。
生徒
Dockerって聞いたことはありますが、具体的に何をするものなんですか?
先生
Dockerは、パソコンの中に仮想的な「箱」を作って、その中に必要なツールを詰めて動かす技術です。これを使えば、誰のパソコンでも同じ環境をすぐに用意できますよ。
1. Dockerとは何か?開発環境構築の基本を解説
Dockerとは、アプリケーションを動かすための環境をパッケージ化して、どこでも同じように動作させるためのツールです。プログラミングの学習において、もっとも挫折しやすいポイントが「環境構築」です。パソコンに直接PHPやデータベースをインストールすると、設定が複雑になり、他の作業に影響が出ることがあります。
Dockerを使うと、パソコン本体を汚すことなく、独立したスペースで開発ができます。例えば、料理をするときに「キッチンを汚さずに、専用のコンロと鍋だけを設置する」ようなイメージです。これがDockerの最大のメリットであり、現代の開発現場では必須のスキルとなっています。
2. 必要な準備とDocker Desktopのインストール
まずは、パソコンにDockerを動かすための「Docker Desktop」というソフトをインストールしましょう。これはDockerを視覚的に管理できる便利なアプリです。公式サイトからダウンロードして、画面の指示に従うだけでインストールできます。
インストールが完了したら、ターミナル(WindowsならコマンドプロンプトやPowerShell、Macならターミナル)を開き、docker --versionと入力して、バージョンが表示されるか確認してください。これが正常に表示されれば、Dockerを動かす準備は万端です。
3. プロジェクトフォルダと設定ファイルの作成
次に、プロジェクト用のフォルダを作成します。このフォルダの中に、Dockerを動かすための設定ファイルを配置していきます。まずは、docker-compose.ymlというファイルを作成しましょう。これはDockerで複数の箱(コンテナ)を一括管理するための指示書です。
この指示書には、「PHPを動かすための箱」と「データベースを動かすための箱」をどうやって作るかを記述します。これにより、コマンドひとつで開発環境全体を立ち上げることが可能になります。
version: '3.8'
services:
app:
image: php:8.2-apache
volumes:
- .:/var/www/html
ports:
- "8080:80"
この設定ファイルでは、PHP8.2とApacheというWebサーバーを組み合わせた環境を指定しています。ポート番号を8080に設定したので、後ほどブラウザでアクセスする際に使用します。
4. Dockerコンテナの起動と確認
設定ファイルができたら、いよいよ環境を立ち上げます。ターミナルで作成したフォルダに移動し、以下のコマンドを実行してください。このコマンドにより、指示書に基づいた環境が自動的に構築されます。
docker-compose up -d
コマンドが終わると、Docker Desktop上に「app」というコンテナが表示されているはずです。これが立ち上がれば、ブラウザのアドレスバーに「localhost:8080」と入力してみましょう。真っ白な画面、もしくはPHPのテスト画面が表示されれば成功です。これで、あなたのパソコンがWebサーバーとして動き始めました。
5. CodeIgniterの導入とプロジェクト設定
環境が整ったので、次はCodeIgniterをインストールします。CodeIgniterは「Composer」というPHPのプログラム管理ツールを使ってインストールするのが一般的です。まずは、作成したコンテナの中に入り、必要なファイルをダウンロードします。
コンテナに入るにはdocker-compose exec app bashというコマンドを使います。箱の中に入ったら、CodeIgniterのプロジェクトを生成するコマンドを実行します。
composer create-project codeigniter4/appstarter my-app
これで「my-app」というフォルダの中に、CodeIgniterの必要な機能が一通り入ります。フレームワークを使うことで、データベースとの連携や、セキュリティの対策などを効率的に行うことができます。初心者こそ、このような便利なツールを積極的に活用すべきです。
6. 簡単なプログラムで動作確認
最後に、実際にコードを書いてWebページが表示されるか確認しましょう。CodeIgniterでは「コントローラー」というファイルが司令塔の役割を果たします。試しに、現在の時刻を表示する簡単なプログラムを作ってみます。
class Home extends BaseController {
public function index() {
$time = date('Y-m-d H:i:s');
echo "現在の時刻は " . $time . " です。";
}
}
このようにプログラムを書くと、ブラウザでアクセスした瞬間に、その時の時刻が表示されます。これだけで、自分の環境で動的なWebアプリケーションが作れるようになったことが実感できるはずです。Dockerを使うことで、この環境を壊す心配をせずに、何度でもプログラムを書き換えて実験できます。エラーが出ても、コンテナを一度消して作り直せばすぐに元通りになるのがDocker開発の最大の魅力です。ぜひこの手順を参考に、PHP開発の第一歩を踏み出してください。