仕事でCodeIgniter3を使うことになったので、備忘録を兼ねて。
間違いがあればご指摘いただければ…
ちなみにCodeIgniter4もありますが、安定版ってことでCodeIgniter3を選択。
CodeIgniterの日本語ユーザガイド
動作要件などは上記ユーザガイドを見てください。
(丸投げ)
CodeIgniterのインストール
公式サイトからダウンロードをしてください。
CIのダウンロードページはコチラから。
「Download」でCodeIgniter本体をダウンロード。
「Translations」で言語ファイルをダウンロードします。
ダウンロードしたらファイルを解凍してください。
CodeIgniter本体は、下記の4つだけあれば問題ないかと(license.txtはなくても動くとは思いますが、ライセンスのテキストなので)。
・application
・system
・index.php
・license.txt
初期設定
/application/config/config.php の26行目の $config[‘base_url’] を変更します。
基本的にサイトのドメインを設定します。
// 初期には空白になってますので、下記のように設定してもいいですが
$config['base_url'] = 'https://example.com/';
// 下記に変更してやると、テストサーバでも本番サーバでも臨機応変に設定されます。
$config['base_url'] = ((empty($_SERVER["HTTPS"])) ? "http://" : "https://") . $_SERVER['HTTP_HOST'];
日本語対応
解答した「translations」ディレクトリからjapaneseディレクトリを/application/language/内にコピー&ペースト。
// 79行目
$config['language'] = 'english';
// englishからjapaneseへ変更
$config['language'] = 'japanese';
これでフォームのエラーなどが日本語になります。
URLからindex.phpを取り除く
初期設定では、CodeIgniterのURLは下記のようになっています。
https://example.com/index.php/Controller/function/
これを回避するには、.htaccessに下記記述を設定します。
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
.htaccessは公開ディレクトリ(レンタルサーバだと「public_html」が多い?)に置きます。
公開ディレクトリにCodeIgniterのファイルを置きたくない場合
下記のように公開ディレクトリ(public_html)より上の階層にCodeIgniter本体を置く場合。
┳ application
┣ public_html(CSSや画像など)
┣ system
┗ license.txt
index.phpを公開ディレクトリに置き、100行目と117行目辺りを変更。
// 100行目
$system_path = '../system';
// 117行目
$application_folder = '../application';
1つ上の階層を見るようにしてあげると公開ディレクトリにCIの設置をしなくてよくなります。
データベース
データベースを設定する場合は、/application/config/database.phpを変更します。
必要な項目のみ設定してください。
データベースを使わないならこの設定はいりません。
$db['default'] = array(
'dsn' => '',
'hostname' => 'localhost',
'username' => '(DBへの接続ユーザ)',
'password' => '(DBのパスワード)',
'database' => '(DB名)',
'dbdriver' => 'mysqli',
'dbprefix' => '',
'pconnect' => FALSE,
'db_debug' => (ENVIRONMENT !== 'production'),
'cache_on' => FALSE,
'cachedir' => '',
'char_set' => 'utf8',
'dbcollat' => 'utf8_general_ci',
'swap_pre' => '',
'encrypt' => FALSE,
'compress' => FALSE,
'stricton' => FALSE,
'failover' => array(),
// 本番ではfalseにすると軽くなるそうです。聞いた話だと
'save_queries' => TRUE
);
とりあえず、初期の初期設定はこれぐらいでしょうか?
文字コードとかもありますが、UTF-8のままでいいでしょう。