CodeIgniterをDockerで構築!docker-composeを使った環境構築完全ガイド
生徒
PHPのフレームワークであるCodeIgniterを使ってWeb開発を始めたいのですが、環境構築が難しそうで不安です。
先生
初めての環境構築は誰でも緊張するものですね。そんな時に役立つのがDockerというツールですよ。
生徒
Dockerを使うと、何がそんなに楽になるのでしょうか?
先生
難しい設定ファイルを毎回書かなくても、docker-composeという仕組みを使えば、パソコンの中に仮想的な専用の部屋を簡単に作れるんです。一緒に見ていきましょう!
1. Dockerとdocker-composeの基本を学ぼう
プログラミングの世界で「環境構築」というのは、自分のパソコンという土地に、プログラムを動かすための建物や設備を整える作業のことです。もしパソコンを「部屋」と例えるなら、Web開発をするには「Webサーバー」や「PHP」という家具が必要です。
通常、これらを一つずつインストールするのは大変ですが、Docker(ドッカー)という技術を使うと、必要なものがすべて揃った「箱」をそのまま持ち込むことができます。この「箱」をコンテナと呼びます。そして、複数のコンテナ(PHPやデータベースなど)をまとめて、一つの指示書で動かせるようにしたのがdocker-compose(ドッカーコンポーズ)です。これを使うことで、初心者でも迷わずにCodeIgniterの開発環境を整えることができます。
2. プロジェクト用のフォルダを作成しよう
まずは、パソコンの中に自分のプログラムを置くための専用の基地を作りましょう。適当な場所にフォルダを一つ作ってください。名前は何でも良いですが、今回はわかりやすく「my-codeigniter-app」という名前にします。
このフォルダを開いたら、まずは環境の設計図を書くために「docker-compose.yml」という名前のファイルを新規作成します。この「.yml」という拡張子は、設定内容を記述するための形式で、Dockerはこのファイルを読むことで、どのような設定でサーバーを立ち上げればよいかを判断します。
3. docker-compose.ymlに設定を書き込もう
それでは、docker-compose.ymlの中に、PHPとWebサーバーの設定を書いていきます。ここでは、PHPの実行環境である「PHP-FPM」と、Webサーバーである「Nginx(エンジンエックス)」を準備する記述をします。Nginxは、ユーザーからのアクセスを処理してWebサイトを表示させる、いわば「受付係」のような役割を持つソフトです。
version: '3.8'
services:
web:
image: nginx:alpine
ports:
- "8080:80"
volumes:
- ./app:/var/www/html
php:
image: php:8.2-fpm
volumes:
- ./app:/var/www/html
このように記述することで、ポート番号8080を指定してアクセスすれば、パソコン上の8080番にブラウザからアクセスするだけで、準備したプログラムが表示されるようになります。
4. CodeIgniterのプログラムを配置しよう
次に、CodeIgniter本体を準備します。先ほど作成したフォルダの中に「app」という名前のフォルダを作ってください。これが、実際にプログラムのコードを書き込んでいく場所になります。CodeIgniterの公式サイトから最新版をダウンロードして、解凍した中身をこの「app」フォルダに配置します。
CodeIgniterは、MVCモデルという考え方で構成されています。MVCモデルとは、画面を表示する担当(View)、計算やルールを決める担当(Controller)、データを管理する担当(Model)を分けることで、プログラムを整理整頓しやすくする仕組みのことです。この構成を守ることで、大規模なWebサイト開発でも混乱せずに作業ができます。
5. コンテナを起動して動作確認をしよう
設定が終わったら、いよいよ起動です。コマンドプロンプトやターミナルという、キーボードで操作する黒い画面を開き、作成したフォルダまで移動します。そこで以下のコマンドを入力します。
docker-compose up -d
このコマンドを入力すると、Dockerが自動的に必要なソフトをダウンロードし、環境を構築してくれます。完了したら、ブラウザのアドレスバーに「http://localhost:8080」と入力してみましょう。CodeIgniterのようこそ画面が表示されれば成功です!エラーが出る場合は、ファイル構成やポート番号の設定が合っているか確認してください。
6. 初めてのページを表示するコードを書いてみよう
無事に環境が動いたら、次は自分だけのページを作ってみましょう。CodeIgniterでは「コントローラー」というファイルを作ることでページが増やせます。「app/Controllers/Home.php」を開いて、少しコードを書き換えてみましょう。
public function index()
{
echo "<h1>こんにちは、CodeIgniter!</h1>";
echo "<p>これは私の初めてのページです。</p>";
}
このコードを保存して、もう一度ブラウザを更新してみてください。画面に文字が表示されましたね。これがWeb開発の第一歩です。ここから、条件分岐をさせたり、データベースから情報を引っ張ってきたりと、様々な機能を追加していくことができます。
プログラミングでは、一つひとつ小さな成功体験を積み重ねることが非常に大切です。環境構築で挫折してしまってはもったいないので、Dockerのように「動く環境」を先に作ってしまう手法は、とても理にかなっています。ぜひ、この環境を使って自分だけのオリジナルWebアプリケーション開発を楽しんでください。