サーチ…


備考

CodeIgniterはPHPで書かれたMVCフレームワークです。

これは他のMVCフレームワークに比べて軽量ですが、他のフレームワークの一部であるかもしれない認証システムが組み込まれていないなど、機能が少なくて済みます。

CodeIgniterは、コードの命名と構造に関する特定の標準を強制しないため、MVCを使い始めた人にとっては、優れたフレームワークの選択肢です。他のフレームワークに含まれる幅広い機能が必要ない大規模なプロジェクトにも適しています。

バージョン

バージョン発売日
バージョンベータ1.0 2006-02-28
バージョン2.0.0 2011-01-28
バージョン2.2.0 2014-06-02
バージョン3.0.0 2015-03-30
バージョン3.1.3 2017-01-09
バージョンは3.1.4です 2017-03-20
バージョンは3.1.5です 2017-06-19

インストールとセットアップ

Windows環境

  1. XAMPPまたはWAMPをインストールする
  2. Codeigniter.comからパッケージをダウンロードして解凍する
  3. サーバースペース内のすべての文書を抽出する(htdocsまたはwwwディレクトリ)

Mac環境

  1. MAMPをインストールする
  2. Codeigniter.comからパッケージをダウンロードして解凍する
  3. サーバースペース内のすべてのドキュメントを抽出する(htdocs)

Linux環境

  1. Codeigniter.comからパッケージをダウンロードして解凍する
  2. 解凍したフォルダを/ var / www(WAMP内)またはxampp / htdocs(XAMPP)に置きます。

GitHub

git clone https://github.com/bcit-ci/CodeIgniter.git


システムに正しく従うと、以下の画面が表示されます。

ここに画像の説明を入力


ベースURL

  1. application/config/config.php移動しapplication/config/config.php
  2. $config['base_url'] = 'http://localhost/path/to/folder';としてベースURLを定義し$config['base_url'] = 'http://localhost/path/to/folder';

URLからindex.phpを削除する

Apacheの設定
  1. ルートに行く

  2. htaccessファイルを作成する

  3. その中に以下のコードを追加する

    RewriteEngine on
    RewriteCond $1 !^(index\.php|assets|image|resources|robots\.txt)
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php/$1 [L,QSA]
    

注:.htaccessコードはホスティングサーバーによって異なります。いくつかのホスティングサーバー(例:Godaddy)では余分なものを使用する必要があり?上記のコードの最後の行にあります。該当する場合は、次の行が最後の行に置き換えられます。

RewriteRule ^(.*)$ index.php?/$1 [L,QSA]
Nginxの設定
  1. nginx設定ファイルを開きます(デフォルトでは/etc/nginx/sites-available/default

  2. その中に以下のコードを追加する

    server {
       server_name domain.tld;
    
       root /path-to-codeigniter-folder; //you codeigniter path
       index index.html index.php;
    
       # set expiration of assets to MAX for caching
       location ~* \.(ico|css|js|gif|jpe?g|png)(\?[0-9]+)?$ {
            expires max;
            log_not_found off;
       }
    
       location / {
            # Check if a file or directory index file exists, else route it to index.php.
            try_files $uri $uri/ /index.php;
       }
    
       location ~* \.php$ {
            fastcgi_pass 127.0.0.1:9000;
            include fastcgi.conf;
       }
    }
    

データベース構成

  1. application/config/database.php移動しapplication/config/database.php
  2. 次の構成変数を設定します。
    • ホスト
    • ユーザー名
    • パスワード
    • データベース名

デフォルトコントローラーを設定する

  1. application/config/routes.php移動しapplication/config/routes.php
  2. コントローラー名で以下の構成変数値を設定します。
    • default_controller

オートロードライブラリとヘルパー

  1. application/config/autoload.php移動しapplication/config/autoload.php
  1. $autoload['libraries'] = array('database', 'session');ような自動ロード値を設定し$autoload['libraries'] = array('database', 'session');
  2. $autoload['helper'] = array('url', 'file', 'form', 'html', 'text');ようなヘルパーの値を設定し$autoload['helper'] = array('url', 'file', 'form', 'html', 'text');

1つのCIシステムで複数のアプリケーションを実行する

Codeigniterは、CIコアファイルを複製することなく、複数のプロジェクトを実行するように設定できます。

CIアプリケーション側を分割することで可能です。たとえば、 front-endback-endコンテンツ管理システム(CMS)アプリケーションを含むWebサイトのプロジェクトを考えてみましょう。この場合、CIフォルダ構造は次のようになります。


フォルダ構造:

├── Codeigniter
│   ├── applications
│   │   ├─ front-end
│   │   │   ├── views
│   │   │   ├── models
│   │   │   ├── controllers
│   │   │   ├── config
│   │   │   └── ...
│   │   ├─ back-end
│   │   │   ├── views
│   │   │   ├── models
│   │   │   ├── controllers
│   │   │   ├── config
│   │   │   └── ...
│   │   │
│   ├── system
│   │   ├── core
│   │   ├── database
│   │   ├── helpers
│   │   └── ...
│   │   
│   ├── index.php
└   └── backend.php

applicationsフォルダでは、 front-endback-end front-end 2つのフォルダを作成し、これらの2つのフォルダの下にapplicationsすべてのデフォルトコンテンツをコピーしました。

また、 index.phpファイルをrootフォルダの下にbackend.phpとしてbackend.php

次に、アプリケーションのこの2つのインスタンスで動作するようにCIを設定します。


Codeigniterの設定

オープンのindex.phpbackend.phpファイルや更新application_folder confgファイル:

//index.php
$application_folder = 'applications/front-end';

//backend.php
$application_folder = 'applications/back-end';

上記の設定が完了すると、CIは1つのCIシステムで2つのアプリケーションを実行できる状態になります。

example.com/Codeigniter/index.phpリクエストによりfront-endアプリが開きexample.com/Codeigniter/index.php

example.com/Codeigniter/backend.phpリクエストによりback-endアプリが開きexample.com/Codeigniter/backend.php

CodeIgniterファイルの場所を隠してセキュリティを強化する

CodeIgniterには、 システムアプリケーションという 2つの主要なディレクトリがあります 。システムフォルダには、CodeIgniterの中核部分が含まれています。アプリケーションフォルダには、モデル、コントローラ、ビュー、その他の関連ライブラリを含む、アプリケーション固有のすべてのコードが含まれます。

CodeIgniterのインストール手順では、アプリケーションを保護するためにシステムフォルダとアプリケーションフォルダの両方をWebルートの上に配置し、ブラウザから直接アクセスできないようにする必要があります。デフォルトでは、.htaccessファイルは各フォルダに含まれており、直接アクセスを防止するのに役立ちますが、Webサーバーの構成が変更された場合や.htaccessに準拠していない場合は、パブリックアクセスから完全に削除することをお勧めします。

├── CodeIgniter 
│   ├── application
│   ├── system
│   ├── wwwroot
│   │   ├── index.php

システムフォルダとアプリケーションフォルダを移動した後、メインのindex.phpファイルを開き、 $system_path$application_folder変数を設定します。好ましくは/www/MyUser/system'パス(例: ' /www/MyUser/system'ます。しかし、相対パスは機能するはずです。

Linux / Apacheの場合:

$application_folder = './application';
$system_path = './system';

Windows / IISの場合:

$application_folder = '../application/';
$system_path = '../system/';


Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow