'codeIgniter'에 해당하는 글 22건

URLs

Programming/CodeIgniter 2011. 11. 9. 19:36

1. URI Segment

CodeIgniter URL은 default 값으로 'Query String' 방식이 아닌 'Segment' 방식을 사용합니다.

Query String - mydomain.com/products/shoes.php?sandals=123
Segment      - mydomain.com/index.php/products/shoes/sandals/123

Segment 방식에서
products는 application/controllers/products.php 파일을 요청한 것이고,
shoes는 products.php 파일 안에 public function 으로 지정된 함수를 요청한 것이고,
나머지 sandals, 123 등은 함수에 전달되는 매개변수 정도로 예상할 수 있습니다.

그럼 products.php 파일 코드는 다음의 형식을 가질 것입니다.

$ vi application/controllers/products.php
<?php
class Products extends CI_Controller {

    public function shoes($sandals, $id)
    {
        echo $sandals;
        echo $id;
    }
}
?>

위 예에서는 mydomain.com/index.php/products 로 명시하여 컨트롤러를 호출했지만 mydomain.com 까지만 명시한다면, routes.php 파일에서 명시된 default Controller 를 호출하게 됩니다.

$ vi application/config/routes.php
$route['default_controller'] = 'Products';


2. Remove Index.php

CodeIgniter 의 세그먼트 형식에서 index.php 파일은 .htaccess 파일을 사용하여 제거하지 않으면 URL에 포함됩니다.

mydomain.com/index.php/news/article/my_article

.htaccess 파일은 index.php 파일이 위치한 어플리케이션의 root 에 작성합니다.
아파치에서 rewrite 모듈이 적재되어 있어야 합니다.

$ vi .htaccess
RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]

URI에 index.php, images, robots.txt 로 시작하지 않는다면 index.php/... 주소로 처리하라는 설정입니다.

 - Request URL  : mydomain.com/news/article/my_article
 - Result URL     : mydomain.com/index.php/news/article/my_article

httpd.conf 파일이나 httpd-vhost.conf 파일에서 htaccess 를 사용할 호스트에 AllowOverride 를 All 로 명시해 줍니다.

<VirtualHost *:80>
    DocumentRoot "/home/www"
    ServerName www.oops4u.com
    <Directory />
        AllowOverride All
    </Directory>

</VirtualHost>

아파치 데몬을 재실행하고 URL에서 index.php를 제외하고 테스트 해 봅니다.

WRITTEN BY
손가락귀신
정신 못차리면, 벌 받는다.

,

CodeIgniter는 작은 용량의(약2.2M)의 강력한 PHP 프레임워크입니다.
다양한 PHP 버전, 환경과 호환되며, 제한적인 코드 규칙을 준수하지 않아도 됩니다.

1. CodeIgniter 서버 요구사항 (2.0.3버전)

PHP version 5.1.6 or 그 이상 버전
DB 지원 - MySQL (4.1+), MySQLi, MS SQL, Postgres, Oracle, SQLite, and ODBC

2. 다운로드 / 압축해제

# wget http://codeigniter.com/download.php
# unzip CodeIgniter-2.0.3.zip

3. 어플리케이션 프로젝트 root에 복사

# cp -a CodeIgniter_2.0.3/* /home/www/

4. root 디렉토리 / 파일 확인

$ cd /home/www
$ ls
application index.php license.txt system user_guide


- application : MVC를 비롯한 class(error/cache/사용자 정의 library), 기타 환경설정 포함
- system : DB 정보와 base class/library class 포함
- index.php : CodeIgniter 구동에 필요한 설정 파일.
   (application/system 디렉토리 경로 설정 등... 보안상 이 디렉토리들은 웹에서 접근할 수 없는 경로로 빼는것이 가장 좋음.)

5. Base URL 세팅

$ vi application/config/config.php

$config['base_url'] = 'http://www.oops4u.com';

6. Database 세팅

$ vi application/config/database.php
$db['default']['username'] = 'oops';
$db['default']['password'] = 'mypassword';
$db['default']['database'] = 'oops4u';

7. 설치 확인

http://mydomain.com/index.php



WRITTEN BY
손가락귀신
정신 못차리면, 벌 받는다.

,