📘 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 접속 오류
  • 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 조회