📘 Day 18 (2025.07.12.SAT) - 백업(95), 로그인 기능(프레임워크)

💽 95번 백업
1. 하드디스크 장착 여부
sda -> /
sdb -> /home
sdc -> /backup
/etc/fstab으로 연결

tar cvzf home.tar.gz ./
→ home 디렉토리 전체를 압축해서 tar로 만듦.
→ 기존 하드 디스크 a에 있던 걸 b로 옮겨줌.
2. 계정 정보 확인
cat /etc/passwd
3. 계정 디렉토리 확인
cd /home/geumsol/public_html

chmod 711 $HOME
chmod 755 /home/본인계정/public_html
4. 파일 복구
5. 데이터베이스 계정 추가
mysql -u root -p

create database geumsol;
CREATE USER 'geumsol'@'localhost' IDENTIFIED BY '123456';
GRANT ALL PRIVILEGES ON geumsol.* TO 'geumsol'@'localhost';
flush privileges;

관리자용 (workbench)
CREATE USER 'geumsol'@'192.168.0.207' IDENTIFIED BY '123456';
GRANT ALL PRIVILEGES ON geumsol.* TO 'geumsol'@'192.168.0.207';
flush privileges;
6. Apache 설정

useradd geumsol
cd geumsol/
nano /etc/httpd/conf.d/userdir.conf
nano /etc/httpd/conf.d/hosting.conf
<VirtualHost *:80>
    DocumentRoot /home/geumsol/public_html
    ServerName backup.geumsol.kr
    ServerAdmin geumsol@backup.geumsol.kr
    ErrorLog logs/error.log
    CustomLog logs/access.log combined
</VirtualHost>
systemctl restart httpd

http://192.168.0.95/~geumsol/
backup.geumsol.kr
🛠️ 유틸 설치 및 rsync
sudo yum install -y lrzsz
sudo yum install -y net-tools
sudo yum install -y unzip

100 → 95 rsync로 파일 넘기기
기존에 있던 거 지우고 새로 덮어서 자동화시키기
🚧 미션

접근하는 IP가 내부에서 들어가면 외부용만 보이게,
외부에서 접근하면 내부용만 보이게 하기

⚙️ CI4 프레임워크와 기존 페이지 연결

기존 페이지(100번)와 똑같이 띄우기, 라우팅 설정

http://ci4.geumsol.kr/intro/profile → profile 안보이게 하기
http://ci4.geumsol.kr/index.php → index.php 안 뜨게 하기
Home/controllers에서 index를 먼저 읽고 view를 읽어서 index.php가 출력됨

라우팅 설정 (app/Config/Routes.php)

$routes->get('/', 'Home::index');
$routes->get('/intro', 'Home::intro');

DB 연결 (app/Config/Database.php)

'hostname' => 'localhost',
'username' => 'geumsol',
'password' => '123456',
'database' => 'geumsol',
app/Controllers/Auth.php 생성
app/Views/templates/header.php, footer.php 생성 후 메인 서버 파일 복붙
css 깨짐 해결: ci4/public/static/assets, css, js 폴더 생성하여 파일 넣기
🔐 로그인 처리

POST 데이터 저장, GET/POST 동시 처리

$routes->match(['get','post'],'/auth/login', 'Auth::login');
로그인 입력 안내 코드
▲ 로그인에 입력하지 않으면 입력하라고 알려주는 코드 (login.php)

Auth.php 로그인 처리 코드
▲ Auth.php - 로그인 처리 코드 (15~22행)
🧱 테이블 생성 (워크벤치)
CREATE TABLE users (
    id int(6) not null auto_increment,
    fisrt_name varchar(15),
    last_name varchar(15),
    username varchar(15),
    password varchar(32),
    avatar varchar(70),
    last_login TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    failed_login INT(3),
    PRIMARY KEY (id)
);

✔️ 테스트용 입력 날짜: 2025-07-11 00:00:00