CodeIgniterを教える時のメモ
☆ちょっと自信が無いので、まだ参考程度に。このままやって上手くいく確証なし。
最初
# application とか system が入ってるディレクトリ = /path/to/your_application_dir mkdir /path/to/your_application_dir/application/temp chown -R ftsh.apache /path/to/your_application_dir chmod g+w /path/to/your_application_dir/application/temp
ドキュメントルートの.htaccess
#.htaccess ## common/ と test.php を良く使うので。 <IfModule mod_rewrite.c> RewriteEngine on RewriteCond $1 !^(index\.php|images|robots\.txt|common|test.php) RewriteRule ^(.*)$ index.php/$1 [L] </IfModule>
application/config/config.php とか autoload.php とか
<?php // 空白にしたままだと formのURLがIPアドレスになる $config['base_url'] = 'https://example.com/path/to/ci'; /*** * application/config/config.php */ // 空白にしておかないとURLが微妙 $config['index_page'] = ''; // 言語 $config['language'] = 'japanese'; // securityライブラリを使うための設定 $config['encryption_key'] = '(キー文字列:32文字)'; // sessionライブラリを使うための設定 $config['sess_driver'] = 'files'; $config['sess_cookie_name'] = 'ci_session'; $config['sess_expiration'] = 7200; $config['sess_save_path'] = APPPATH.'temp/'; // filesの場合必須。好みの場所に。webサーバが書き込みできるようにpermission設定する $config['sess_match_ip'] = FALSE; $config['sess_time_to_update'] = 300; $config['sess_regenerate_destroy'] = FALSE; // cookieの設定 $config['cookie_prefix'] = ''; $config['cookie_domain'] = '(適宜あわせる)'; $config['cookie_path'] = '/(httpd.confで設定したアプリケーションのAlias部に合うように)'; $config['cookie_secure'] = FALSE; // httpsプロトコル下で使用するアプリの場合はTRUE必須。 $config['cookie_httponly'] = FALSE; // ciのcookieをクライアントのJavascriptで使えないようにしたい場合はTRUE // XSS対策 : 常に自動で POST および COOKIE データをフィルタしたい場合 $config['global_xss_filtering'] = FALSE; // 常時有効にしたければTRUE,ガイドには"相当量のリソースを使うからね?"という感じで留意するように書かれている。 // CSRF対策 $config['csrf_protection'] = TRUE; // CSRF対策は原則有効に $config['csrf_token_name'] = 'csrf_token'; // 好みで $config['csrf_cookie_name'] = 'csrf_cookie'; // 好みで $config['csrf_expire'] = 7200; $config['csrf_regenerate'] = TRUE; $config['csrf_exclude_uris'] = array(); // 指定の URI を CSRF 保護からホワイトリストに登録することができます (例えば外部からコンテンツを POST されることを期待する API エンドポイント) 。 「 csrf_exclude_uris 」configパラメータを編集することで、これらの URI を追加することができます: // ------------------------------------------------------------- ?> <?php // 暗黙的な導入 - ライブラリとかモデルとか // application/config/autoload.php $autoload['libraries'] = array('session','database','email','form_validation'); // *** emailライブラリは日本語使用のための修正必須と留意する。 // *** "qdmail"を別途取り込んで使う場合が多いので、詳しくは事例を参照。 // ほぼ確実に使うヘルパーを指定しておく $autoload['helper'] = array('ORIGINAL','security','url','form'); ?> <?php // データベース接続設定 // application/config/database.php $active_group = 'default'; $query_builder = TRUE; $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 ); ?> <?php // ルート - デフォルトコントローラの指定 // application/config/routes.php $route['default_controller'] = 'welcome'; $route['404_override'] = ''; $route['translate_uri_dashes'] = FALSE; ?> <?php // エントリポイント // html/index.php /* *--------------------------------------------------------------- * SYSTEM DIRECTORY NAME *--------------------------------------------------------------- * * This variable must contain the name of your "system" directory. * Set the path if it is not in the same directory as this file. */ $system_path = '../system'; /* *--------------------------------------------------------------- * APPLICATION DIRECTORY NAME *--------------------------------------------------------------- * * If you want this front controller to use a different "application" * directory than the default one you can set its name here. The directory * can also be renamed or relocated anywhere on your server. If you do, * use an absolute (full) server path. * For more info please see the user guide: * * https://codeigniter.com/user_guide/general/managing_apps.html * * NO TRAILING SLASH! */ $application_folder = '../application'; ?>
バリデーション
form_validation ライブラリで、xss_clean を使いたい時は、application/config/autoload.phpなんかでヘルパに securityを読み込ませておく
セッション使いたいときは、application/config/autoload.phpなんかでsessionライブラリをロードして、
application/config/config.phpのencryption_keyを設定したうえ同じファイル中の$config['sess_save_path'] = APPPATH . 'temp/';などと書き込める場所を適切に設定してやる。
エラー画面
application/views/errors/html/error_general.php
というのがあるので、適宜修正するとよい。
Error Handling — CodeIgniter 3.1.3 documentation