📘 Day 36 (2025.08.02.SAT) - CI4 생성(174), 프레임워크 학습
🛠️ 계정 및 초기 설정
root
ls
adduser ci4geumsol
cd public_html
unzip codeigniter
nano /etc/apache2/sites-available
<VirtualHost *:80>
DocumentRoot /home/ci4geumsol/public_html/CI4
ServerName ci4.geumsol.kr
ServerAdmin ci4.geumsol@ci4geumsol.kr
ErrorLog /home/ci4geumsol/public_html/logs/error.log
CustomLog /home/ci4geumsol/public_html/logs/access.log combined
</VirtualHost>
systemctl restart apache2
chmod 711 $HOME
chmod 755 /home/ci4geumsol/public_html
chmod 755 /home/ci4geumsol
🌐 DocumentRoot 수정
DocumentRoot를 /public까지 포함하도록 수정
systemctl restart apache2로 변경사항 반영
⚙️ CI4 기본 구조 이해
- 엔진 = 시스템 디렉터리 → 직접 수정하지 않음
- 작업은 app 디렉터리 내에서 수행
🔁 CI4 vs Flask
- 둘 다 라우팅 중심 구조
- CI4:
app/Config/Routes.php에서 라우팅 설정
- 중요한 라우팅은 숨겨져 있음
📝 일기장 만들기
1. Routes → Controller → View 흐름
create() 함수는 GET/POST로 구분
- 버튼 클릭은 GET, 저장은 POST
routes → controller → view(Home.php)
2. 페이지 만들기: read.php
3. 설정 변경
app/Config/App.php
public string $baseURL = 'http://ci4.geumsol.kr/';
public string $indexPage = '';
4. 데이터베이스 설정
app/Config/Database.php
'username' => 'geumsol',
'password' => '123456',
'database' => 'geumsol',
5. 테이블 생성
CREATE TABLE diary (
id INT AUTO_INCREMENT PRIMARY KEY,
memo TEXT NOT NULL,
regdate DATETIME DEFAULT CURRENT_TIMESTAMP
);
🔒 FTP 접속 오류
🪛 .env 설정
ci4geumsol@IP174:~/public_html/CI4$ ls -al
-rw-r--r-- 1 ci4geumsol ci4geumsol 2381 Aug 2 10:46 env
cp env .env
nano .env
CI_ENVIRONMENT = development
📥 컨트롤러 GET/POST 작업
- 글 작성 시 POST → DB 저장
- 목록 출력 시 GET → DB 조회