Looking for codeigniter Answers? Try Ask4KnowledgeBase
Looking for codeigniter Keywords? Try Ask4Keywords

codeignitercodeigniterの使い方


備考

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

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/';
 

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

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