カテゴリ: CodeIgniter 更新日: 2026/07/29

CodeIgniterをAWSへデプロイ!初心者向けのCI/CD環境構築と公開手順

CodeIgniterをAWS環境へデプロイする構成例
CodeIgniterをAWS環境へデプロイする構成例

先生と生徒の会話形式で理解しよう

生徒

PHPのフレームワークであるCodeIgniterでWebアプリを作ったのですが、これをAWSを使ってインターネット上に公開する方法がわかりません。

先生

自分で作ったプログラムをAWSのようなクラウド環境に載せることをデプロイと呼びます。まずは全体の流れをつかむことが大切ですよ。

生徒

CI/CDという言葉もよく聞くのですが、これも関係があるのでしょうか?

先生

もちろんです。効率よく安全にデプロイするために欠かせない仕組みです。一緒に学んでいきましょう。

1. CodeIgniterとAWSの基本を知ろう

1. CodeIgniterとAWSの基本を知ろう
1. CodeIgniterとAWSの基本を知ろう

CodeIgniterはPHPというプログラミング言語で動く、軽量で使いやすいWebアプリケーション開発のための骨組み(フレームワーク)です。このアプリを世界中の人がアクセスできるようにするには、サーバーというコンピューターが必要です。

AWS(Amazon Web Services)は、Amazonが提供する巨大な仮想サーバー群です。デプロイとは、開発したプログラムをサーバーに移して動かせる状態にすることを指します。パソコンのファイルをUSBメモリにコピーする作業を、インターネット越しにサーバーに対して行うイメージです。

2. CI/CDの仕組みで自動化を実現する

2. CI/CDの仕組みで自動化を実現する
2. CI/CDの仕組みで自動化を実現する

CI/CDは、プログラムを修正するたびに自動でテストし、サーバーへ反映させるための仕組みです。CIは継続的インテグレーション、CDは継続的デリバリーを意味します。

手作業でファイルをアップロードしていると、ミスをしてWebサイトが真っ白になることがあります。自動化することで、ボタン一つで安全に、そして短時間で更新ができるようになります。初心者の方でも、今のうちからこの考え方に触れておくことで、プロの開発者への近道になります。

3. AWS環境へデプロイする基本構成

3. AWS環境へデプロイする基本構成
3. AWS環境へデプロイする基本構成

AWSでWebサイトを公開する際、最もシンプルで学習に最適なのはEC2という仮想サーバーを使う方法です。EC2は、自分のパソコンを24時間動かし続けるための専用の機械を借りるようなものです。

以下は、CodeIgniterのプロジェクトでデータベース設定を行うためのファイル例です。環境ごとに設定を分けることが、AWSデプロイの第一歩となります。


$db['default'] = array(
    'dsn'   => '',
    'hostname' => 'localhost',
    'username' => 'root',
    'password' => 'secret_password',
    'database' => 'my_database',
    'dbdriver' => 'mysqli',
);

4. Webサーバーの設定と環境構築

4. Webサーバーの設定と環境構築
4. Webサーバーの設定と環境構築

AWS上でCodeIgniterを動かすには、ApacheやNginxといったWebサーバーソフトが必要です。これらは、ブラウザから来た依頼をプログラムに渡す受付係のような役割をします。

以下のコードは、Apacheの設定ファイルでCodeIgniterの公開ディレクトリを指定する際によく使われる記述です。プログラムが正しく動くためには、この設定が不可欠です。


<VirtualHost *:80>
    ServerName example.com
    DocumentRoot /var/www/html/public
    <Directory /var/www/html/public>
        AllowOverride All
    </Directory>
</VirtualHost>

5. 自動化のためのデプロイスクリプト

5. 自動化のためのデプロイスクリプト
5. 自動化のためのデプロイスクリプト

CI/CDを意識するなら、Gitという管理ツールと連携させます。Gitは、プログラムの変更履歴を保存するノートのようなものです。AWS上でこのGitの内容を自動で取り込むようにします。

手動でコマンドを入力する代わりに、以下のような簡単なシェルスクリプトを用意しておくと便利です。これはサーバーにログインして、プログラムを最新の状態に更新する命令セットです。


#!/bin/bash
cd /var/www/html
git pull origin main
php spark migrate
echo "Deployment successful!"

6. セキュリティと安全な運用のためのヒント

6. セキュリティと安全な運用のためのヒント
6. セキュリティと安全な運用のためのヒント

AWSへのデプロイにおいて、最も大切なのはセキュリティです。特にデータベースのパスワードや秘密鍵は、絶対にプログラムの中に直接書かないようにしてください。

環境変数といって、プログラムの外側に秘密情報を保存する場所を作り、そこから読み込むのがプロの流儀です。以下のPHPコードは、設定値が存在するか確認してから読み込む安全な書き方の例です。


$db_pass = getenv('DB_PASSWORD');
if (!$db_pass) {
    die('環境変数が設定されていません');
}

デプロイは最初の一歩が一番大変ですが、一度仕組みを整えてしまえば、以後の作業は驚くほど楽になります。AWSの管理画面にはたくさんのボタンがあって驚くかもしれませんが、まずはEC2サーバーを一台立ち上げて、そこに自分の作ったPHPファイルを置いてみることから始めてみてください。

カテゴリの一覧へ
新着記事
New1
Laravel
Laravelのルートとコントローラを対応付ける方法(名前付きルート)を初心者向けに解説
New2
Symfony
Symfonyで画像やファイルをアップロードする時のバリデーション完全ガイド!初心者でもわかる入力チェックの基本
New3
Laravel
Laravelで言語切替UIを作る!多言語対応(ローカリゼーション)実践ガイド
New4
CodeIgniter
CodeIgniterでローカル開発環境を構築する方法!初心者向け完全ガイド
人気記事
No.1
Java&Spring記事人気No1
CodeIgniter
CodeIgniterのキャッシュ管理を完全ガイド!初心者でもわかるメリットと注意点
No.2
Java&Spring記事人気No2
Symfony
Symfony学習に役立つおすすめドキュメント・教材・リソース一覧【初心者向け】
No.3
Java&Spring記事人気No3
Laravel
Laravelのプロジェクト構造を理解しよう!初心者向けディレクトリ解説
No.4
Java&Spring記事人気No4
CodeIgniter
CodeIgniterとは?特徴・できること・他PHPフレームワークとの違いを完全解説
No.5
Java&Spring記事人気No5
Laravel
Laravelローカリゼーション入門!言語の取得と切り替え(App::getLocale / setLocale)を徹底解説
No.6
Java&Spring記事人気No6
Laravel
Laravelのルーティングの基本構文と書き方をやさしく解説!初心者でも理解できるWebルートの仕組み
No.7
Java&Spring記事人気No7
Laravel
Laravelの条件分岐とループ処理をBladeで書く方法
No.8
Java&Spring記事人気No8
Symfony
TwigのHTMLエスケープとrawフィルタの使い方を完全解説!初心者にもわかるテンプレート表示のコツ