📘 Day 12 (2025.07.05.SAT) - 프레임워크
🖥️ 로컬 웹사이트 띄우기 (127.0.0.1)
- XAMPP Apache2 ON (Ubuntu2 80 포트 사용)
127.0.0.1로 접속 테스트
db.php: echo "Connected successfully"; 주석 처리
📂 read.php 구성
/packet/read.php 파일 생성 → index.php 내용 복붙 후 수정
에러 방지를 위해 id 체크
if (!isset($id)) {
$id = 100000;
} else {
$id = $_GET['id'];
}
form 내부에 hidden 필드 추가:
<input type="hidden" name="id" value="<?=$row['id']?>">
🛠️ server 테이블 생성 쿼리
CREATE TABLE server (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(30) NOT NULL,
df VARCHAR(30) NOT NULL,
free VARCHAR(30) NOT NULL,
port VARCHAR(30) NOT NULL,
user VARCHAR(30) NOT NULL,
cron VARCHAR(30) NOT NULL,
backup VARCHAR(50),
memo VARCHAR(50),
reg_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);
📚 프레임워크 개요
- 클래스 기반, 객체 생성 필요
- 생산성 ↑, 유지보수 용이
- 컨트롤러 중심 작동 (MVC 구조)
- 포트폴리오에 각 프레임워크의 장단점 정리 권장
🔧 DNS 설정
ci4.geumsol.kr → 192.168.0.100로 연결
후이즈에서 ci4.geumsol.kr 추가
📦 웹 서비스 구성
- main: 일반 웹
- ci4: 프레임워크(CodeIgniter)
- dvw: 웹 취약점
- 워드프레스, gnu: CMS
🛠️ auth 테이블 생성
CREATE TABLE auth (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
email VARCHAR(30) NOT NULL,
pswd VARCHAR(30) NOT NULL,
reg_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);
👥 회원가입 시 DB 저장
$conn: db 연결 객체 → 클래스에 주입 필요
$auth = new Auth($conn);
🧱 생성자 개념
생성자 = 클래스 이름과 동일한 함수
private $conn;
function __construct($conn) {
echo "데이터베이스와 연결합니다.";
$this->conn = $conn;
}
바깥에 있는 $conn을 생성자를 사용하여 안쪽으로 넣어줌
🏗️ CodeIgniter 폴더 구조 (MVC)
- Config: 환경설정
- Controllers: 기능 담당 클래스 (ex: Auth.php)
- Models: DB 담당
- Views: 화면 출력
- public: 이미지 등 공용 리소스
- 폴더 앞글자가 대문자: 클래스
👉 Django는 CVM 구조
📁 CI4 설치 준비
~/home/geumsol/public_html에 압축 해제
logs 폴더에 로그 파일 생성:
touch access.log
touch error.log
🔐 FTP 계정 추가
계정명: ci4geumsol
🔧 CI4 초기 설정 (Xshell)
경로 : ci4geumsol@IP100:~/public_html/ci4$
cp env .env
nano .env
권한 설정 (에러 없이 출력되게):
chmod 777 -R writable/
cd writable/
chmod 777 cache
chmod 777 -R writable/