アナログCPU:5108843109

ゲームと音楽とプログラミング(酒と女とロックンロールのノリで)

('ω') < イザユケエンジニャー

CodeIgniter入門 #2:軽く改造してみる

CodeIgniter入門シリーズ カテゴリーの記事一覧 - アナログCPU:5108843109

今回やること

  • デフォルトのディレクトリ構造を変えてみる
  • データベースに接続する

ドキュメントルートのダイエット

やっぱドキュメントルート以下に丸々入ってるのが気持ち悪いので外に出しておくことにしました。

ドキュメントルート用のディレクトリを用意して、そこにindex.php.htaccessを移動させます。
名前は何でも良いのですが、個人的に使っているさくらサーバーがwwwなのでそうしておきます。
で、wwwと同じ階層にcodeigniterディレクトリを作り、そっちにapplicationとsystemを移動させました。

こういう感じです。構造も好みでOK。

こうしておけば外部からはwww以下しかアクセスされないので、
applicationやsystemディレクトリ以下のアクセス対策用index.htmlは消しても差支えないと思います。

で、移動したindex.phpの中にapplicationディレクトリやsystemディレクトリへのパスが書かれているので、そこを直します。
今回の例だと以下のような感じ。

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

また、XAMPPのhttpd.confなども必要に応じて書き換えておきます。

アクセスを試してみて動けばOK。

いらないディレクトリとファイルを消す

codeigniter(=application, system), www以外のディレクトリやファイルは全て削除しても大丈夫…かもしれません。
とりあえず動きました。
不安なら残しておくなり別のところに退避させておくなり。最悪またダウンロードしてこればOKだと思います。

前項で書いた通り、ドキュメントルート外のindex.htmlもごっそり消して問題なさそうです。
わざわざ消すほどでもないかもしれませんが、なかなか鬱陶しいし…。

あとはapplication以下に空のディレクトリが多いけど何なんだろう。消してもいいのかな。
気になるけどとりあえず残しておきます。

データベースの接続設定をする

データベースとユーザーを用意します。(省略)
今回はMySQLlocalhost内に「sandbox」データベースと「user」ユーザー、「pass」というパスワード…ということにします。

codeigniter/application/config/database.php 内の設定を変更します。

$db['default'] = array(
	'dsn'	=> '',
	'hostname' => 'localhost',
	'username' => '',
	'password' => '',
	'database' => '',
	'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(),
	'save_queries' => TRUE
);

変更点を抜粋するとこんな感じです。

	'username' => 'user',
	'password' => 'pass',
	'database' => 'sandbox',
	'char_set' => 'utf8mb4',
	'dbcollat' => 'utf8mb4_general_ci',
);

接続できたかどうか確認するには、コントローラ内の適当なメソッド内(もちろんview呼び出しより前)に以下を追記してアクセスしてみます。

$this->load->database('default');

「追記前と何も変わらなければ」とりあえずOKです。
試しにユーザー名やデータベース名などを存在しないものに変えてリロードしてみてエラーになれば尚良しです。

参考資料
データベースへの接続 — CodeIgniter 3.2.0-dev ドキュメント