본문 바로가기
Programming/> Php

[Php] Codeigniter 초기 설정

by 니키ᕕ( ᐛ )ᕗ 2017. 5. 23.

http://palpit.tistory.com/553


- 여기가 설명이 더 잘되어있네



참조한 블로그가 있는데 미묘하게 맞지 않아서 부가 설명 붙여봄.


*CodeIgniter 설치

- 별거 없다. https://www.codeigniter.com/에서 최신 버전 다운받고 Apache의 Documentroot에 압축해제한다.


*CodeIgniter 설정

- 참조 : http://gyuha.tistory.com/259

- 위 블로그를 따라 했는데 PHP4버전이라 그런가 다른곳은 다 괜찮았는데 Model에서 에러가 났다. 지금으로선 php 문법을 몰라서 그러는데 생성자 호출방법이 변경된듯.. Model이 아니라 CI_Model로 상속 받고 부모 생성자 호출은 다음과 같이한다. 이러니까 에러가 나지 않는다~

class Model_sample extends CI_Model {
        function __construct() {
            parent::__construct();
        }
}

- 댓글보니 버전에 따른 에러가 많은가 봄.. 내가 한것.

-- ./application/models/model_user.php 추가

<?php
    class Model_user extends CI_Model {
        function __construct() {
            parent::__construct();
        }

        function getData() {
            $query = $this->db->get('user');

            if($query->num_rows() > 0) {
                return $query->result();
            } else {
                show_error('Database is empty');
            }
        }
    }
?>

-- ./application/controller/main.php 추가

<?php
    class Main extends CI_Controller {
        function index() {
            $this->load->model('model_user');

            $data['result'] = $this->model_user->getData();

            $this->load->view('main', $data);
        }
    }
?>

-- ./application/config/routes.php

<?php
   $route['default_controller'] = 'main'; // welcome->main
?>

-- ./application/config/config.php

<?php
   $config['base_url'] = 'http://localhost:9090/'; // '' -> 'http://localhost:9090/'
?>

-- ./application/views/main.php

<html>
<head>
</head>
<body>
<?php foreach($result as $row):?>
    <h3><?=$row->userid?></h3>
    <p><?=$row->name?></p>
    <br />
<?php endforeach;?>
</body>
</html>

-- ./application/config/autoload.php

<?php
   $autoload['libraries'] = array('database'); // array('') -> array('database')
?>

-- ./application/config/database.php

<?php
   $db['default'] = array(
	'dsn'	=> '',
	'hostname' => 'localhost',
	'username' => 'root',
	'password' => '1234',
	'database' => 'test',
	'dbdriver' => 'mysqli',
	....
)
?>

-- User table 

CREATE TABLE `user` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `userid` varchar(20) NOT NULL,
  `password` varchar(15) NOT NULL,
  `name` varchar(30) NOT NULL,
  `email` varchar(45) DEFAULT NULL,
  `regdate` datetime DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`),
  UNIQUE KEY `userid_UNIQUE` (`userid`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8



*Apache Rewrite 접근제한 설정

- http://iwithjoy.tistory.com/entry/%EC%95%84%ED%8C%8C%EC%B9%98-%EB%AA%A8%EB%93%88-modrewrite-%EC%84%A4%EC%A0%95

- 설정을 참조한 블로그의 방법대로 따라가는데 안에 들어가는 내용은 위의 블로그를 참조했다. 

- LoadModule rewrite_module modules/mod_rewrite.so 주석처리 되어있는 것을 해지해주고 phpinfo()로 rewrite 모듈 작동하는지 확인.

- 다만 url을 파라미터로 볼건 아니어서 RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]은 그냥 설정 참조블로그의 내용을 따름 .

'Programming > > Php' 카테고리의 다른 글

[Php] Apache 2.4 + php 5.6 설치  (0) 2017.05.23

댓글