구조 개선: 디렉토리 정리 및 스크립트 완성
- 디렉토리 구조 정리: vm/, lxc/, dotfiles/ 폴더 생성 - setup_db.sh lxc/setup_mariadb.sh (기능 강화) * MariaDB 보안 초기화 추가 * 외부 접속 설정 및 Firewall 포트 개방 * dotfiles 다운로드 통합 * 완료 메시지 개선 - vm/setup_common.sh (PHP-FPM Apache 연동) * Apache mod_proxy_fcgi 설정 추가 * dotfiles 다운로드 에러 처리 강화 * 오류 처리 및 설정 확인 로직 추가 * 완료 메시지 개선 - vm/install_php.sh * PHP-FPM 풀 설정 개선 (apache 소유권) * 설치 확인 가이드 추가 * 완료 메시지 상세화 - dotfiles/ 파일 추가 관리 * vimrc: 기본 설정 포함 * bashrc_addon: 한국어, 별칭, 함수 포함 - .gitignore 추가 - README.md 전면 개선 * 구성도 및 디렉토리 구조 추가 * 빠른 시작 가이드 강화 * 문제 해결 섹션 추가 * 보안 및 성능 튜닝 가이드 추가
This commit is contained in:
27
.gitignore
vendored
Normal file
27
.gitignore
vendored
Normal file
@ -0,0 +1,27 @@
|
||||
# IDE 및 편집기
|
||||
.vscode/
|
||||
.idea/
|
||||
*.swp
|
||||
*.swo
|
||||
*~
|
||||
.DS_Store
|
||||
|
||||
# 임시 파일 및 로그
|
||||
*.log
|
||||
*.tmp
|
||||
*.bak
|
||||
.backup/
|
||||
|
||||
# OS 파일
|
||||
Thumbs.db
|
||||
.DS_Store
|
||||
|
||||
# 환경 파일
|
||||
.env
|
||||
.env.local
|
||||
.env.*.local
|
||||
|
||||
# 프로젝트 임시 파일
|
||||
*.tar.gz
|
||||
*.zip
|
||||
.cache/
|
||||
455
README.md
455
README.md
@ -1,159 +1,424 @@
|
||||
# 테스트 서버 구축 가이드 (VM1/VM2 + LXC DB)
|
||||
# 테스트 서버 구축 가이드 (Proxmox + Rocky Linux 9)
|
||||
|
||||
## 1. 목적
|
||||
- Cafe24 10G 자이언트플러스 환경과 최대한 동일한 테스트 서버 구성
|
||||
- VM1: PHP 8.2 + Apache
|
||||
- VM2: PHP 8.4 + Apache
|
||||
- LXC1: MariaDB 10.6 (VM1/VM2 공용)
|
||||
- Tailscale을 통한 원격 테스트 접근
|
||||
- 테스트 서버용 최소 권한 설정
|
||||
## 개요
|
||||
|
||||
Cafe24 10G 자이언트플러스 환경과 최대한 동일한 테스트 서버 구성을 위한 완전 자동화 스크립트 모음입니다.
|
||||
|
||||
### 구성도
|
||||
`
|
||||
|
||||
Proxmox VE (호스트)
|
||||
|
||||
|
||||
VM1 (PHP 8.2) VM2 (PHP 8.4) LXC (MariaDB)
|
||||
Rocky Linux 9 Rocky Linux 9 Rocky Linux 9
|
||||
Apache 2.4 Apache 2.4 MariaDB 10.6
|
||||
PHP 8.2 PHP 8.4 Port: 3306
|
||||
Port: 80,443 Port: 80,443
|
||||
FTP (vsftpd) FTP (vsftpd)
|
||||
|
||||
Tailscale 연동 (원격 접근)
|
||||
|
||||
|
||||
`
|
||||
|
||||
---
|
||||
|
||||
## 2. VM 생성 (Proxmox VE)
|
||||
## 디렉토리 구조
|
||||
|
||||
### 권장 사양 (테스트 용)
|
||||
- CPU: 1~2 Core
|
||||
- RAM: 2GB
|
||||
- Disk: 20GB
|
||||
- OS: Rocky Linux 9 (Minimal ISO)
|
||||
`
|
||||
maketestserver/
|
||||
README.md # 이 파일
|
||||
dotfiles/ # git 관리 설정 파일
|
||||
vimrc # Vim 설정
|
||||
bashrc_addon # Bash 추가 설정
|
||||
vm/ # VM 스크립트
|
||||
setup_common.sh # 공통 설정 (Apache, FTP, Vim, Bash)
|
||||
install_php.sh # PHP 8.2/8.4 설치
|
||||
lxc/ # LXC 스크립트
|
||||
setup_mariadb.sh # MariaDB 10.6 설정
|
||||
`
|
||||
|
||||
### VM 생성 예시
|
||||
```bash
|
||||
# VM1 (PHP 8.2)
|
||||
---
|
||||
|
||||
## 빠른 시작
|
||||
|
||||
### 1 Proxmox에서 VM 생성
|
||||
|
||||
#### VM1 (PHP 8.2)
|
||||
`bash
|
||||
# Proxmox 호스트에서 실행
|
||||
qm create 101 \
|
||||
--name vm1-php82 \
|
||||
--memory 2048 \
|
||||
--cores 1 \
|
||||
--cores 2 \
|
||||
--scsihw virtio-scsi-pci \
|
||||
--scsi0 local-lvm:20 \
|
||||
--scsi0 local-lvm:30 \
|
||||
--net0 virtio,bridge=vmbr0 \
|
||||
--cdrom local:iso/Rocky-9.iso
|
||||
--cdrom local:iso/Rocky-9.0-latest.iso
|
||||
|
||||
qm start 101
|
||||
`
|
||||
|
||||
# VM2 (PHP 8.4)
|
||||
#### VM2 (PHP 8.4)
|
||||
`bash
|
||||
qm create 102 \
|
||||
--name vm2-php84 \
|
||||
--memory 2048 \
|
||||
--cores 1 \
|
||||
--cores 2 \
|
||||
--scsihw virtio-scsi-pci \
|
||||
--scsi0 local-lvm:20 \
|
||||
--scsi0 local-lvm:30 \
|
||||
--net0 virtio,bridge=vmbr0 \
|
||||
--cdrom local:iso/Rocky-9.iso
|
||||
```
|
||||
--cdrom local:iso/Rocky-9.0-latest.iso
|
||||
|
||||
설치 과정에서 일반 사용자 계정을 생성합니다 (예: firstgarden).
|
||||
qm start 102
|
||||
`
|
||||
|
||||
---
|
||||
**Rocky Linux 9 설치 시 주의:**
|
||||
- 설치 중 일반 사용자 생성 (예: 'firstgarden')
|
||||
- Root 비밀번호 설정
|
||||
- 기본 네트워크 설정
|
||||
|
||||
## 3. LXC 생성 (MariaDB 전용)
|
||||
### 2 Proxmox에서 LXC 생성 (MariaDB)
|
||||
|
||||
### 테스트 사양
|
||||
- CPU: 1 Core
|
||||
- RAM: 1GB
|
||||
- Disk: 10GB
|
||||
- OS: Rocky Linux 9
|
||||
|
||||
```bash
|
||||
pct create 201 local:vztmpl/rocky-9-default_9.0-1_amd64.tar.gz \
|
||||
`bash
|
||||
# LXC 생성
|
||||
pct create 201 \
|
||||
local:vztmpl/rocky-9-default_9.0-1_amd64.tar.gz \
|
||||
-hostname lxc-db \
|
||||
-memory 1024 \
|
||||
-cores 1 \
|
||||
-rootfs local-lvm:10 \
|
||||
-memory 2048 \
|
||||
-cores 2 \
|
||||
-rootfs local-lvm:20 \
|
||||
-net0 name=eth0,bridge=vmbr0,ip=dhcp
|
||||
|
||||
pct start 201
|
||||
pct enter 201
|
||||
```
|
||||
pct enter 201 # LXC 진입
|
||||
`
|
||||
|
||||
### 3 VM1 (PHP 8.2) 설정
|
||||
|
||||
SSH로 VM1에 접속한 후:
|
||||
|
||||
`bash
|
||||
# 스크립트 다운로드
|
||||
cd ~
|
||||
git clone https://github.com/yourusername/cafe24-testserver.git
|
||||
cd cafe24-testserver
|
||||
|
||||
# 공통 설정 실행
|
||||
chmod +x vm/setup_common.sh
|
||||
./vm/setup_common.sh
|
||||
|
||||
# PHP 8.2 설치
|
||||
chmod +x vm/install_php.sh
|
||||
./vm/install_php.sh 8.2
|
||||
|
||||
# Apache 재시작
|
||||
sudo systemctl restart httpd
|
||||
`
|
||||
|
||||
### 4 VM2 (PHP 8.4) 설정
|
||||
|
||||
VM1과 동일하게 진행하되, PHP 버전만 8.4로 변경:
|
||||
|
||||
`bash
|
||||
./vm/install_php.sh 8.4
|
||||
`
|
||||
|
||||
### 5 LXC (MariaDB) 설정
|
||||
|
||||
LXC에서 Root로 로그인한 후:
|
||||
|
||||
`bash
|
||||
# 스크립트 다운로드
|
||||
cd /root
|
||||
curl -fsSL https://github.com/yourusername/cafe24-testserver/archive/main.tar.gz | tar xz
|
||||
cd cafe24-testserver-main
|
||||
|
||||
# MariaDB 설정 실행
|
||||
chmod +x lxc/setup_mariadb.sh
|
||||
./lxc/setup_mariadb.sh
|
||||
`
|
||||
|
||||
**스크립트 실행 중 입력 항목:**
|
||||
- Linux 사용자 이름
|
||||
- Linux 사용자 비밀번호
|
||||
- DB 사용자 계정 통합 여부 (Y/n)
|
||||
- MariaDB 비밀번호 (선택시)
|
||||
- Database 이름
|
||||
|
||||
---
|
||||
|
||||
## 4. 공통 설정 스크립트 (VM용)
|
||||
## 각 스크립트 상세 설명
|
||||
|
||||
파일: `setup_common.sh`
|
||||
### 'vm/setup_common.sh' - 공통 설정
|
||||
|
||||
- Apache 설치 및 설정
|
||||
- DocumentRoot: `/home/$USER/www`
|
||||
- 홈 디렉토리 권한: 711
|
||||
- 웹 루트 권한: 750
|
||||
**설치/설정 항목:**
|
||||
- Apache 2.4 (DocumentRoot: '/home//www')
|
||||
- vsftpd (FTP 서버, localhost 바인드)
|
||||
- Vim (마우스 비활성화)
|
||||
- Bash (프롬프트, 별칭, 히스토리)
|
||||
- SSH 강화 (Root 로그인 비활성화)
|
||||
- SELinux 설정 (httpd 접근 허용)
|
||||
- firewalld 비활성화
|
||||
- SELinux httpd 접근 허용
|
||||
- FTP(vsftpd) 설치
|
||||
- Vim 설치 (visual mode 비활성화)
|
||||
- Bash 가독성 설정
|
||||
|
||||
실행:
|
||||
```bash
|
||||
chmod +x setup_common.sh
|
||||
./setup_common.sh
|
||||
```
|
||||
**실행:**
|
||||
`bash
|
||||
chmod +x vm/setup_common.sh
|
||||
./vm/setup_common.sh
|
||||
`
|
||||
|
||||
**생성되는 디렉토리:**
|
||||
- '~/www' - 웹 루트 (권한: 750)
|
||||
- '~' - 홈 디렉토리 (권한: 711)
|
||||
|
||||
**설정 파일:**
|
||||
- Apache: '/etc/httpd/conf.d/.conf'
|
||||
- PHP-FPM: '/etc/php-fpm.d/.conf'
|
||||
|
||||
---
|
||||
|
||||
## 5. PHP 설치
|
||||
### 'vm/install_php.sh' - PHP 설치
|
||||
|
||||
파일: `install_php.sh`
|
||||
PHP 8.2 또는 8.4를 설치하고 PHP-FPM pool을 생성합니다.
|
||||
|
||||
```bash
|
||||
# VM1 (PHP 8.2)
|
||||
./install_php.sh 8.2
|
||||
**사전 요구사항:**
|
||||
- 'vm/setup_common.sh' 실행 완료
|
||||
|
||||
# VM2 (PHP 8.4)
|
||||
./install_php.sh 8.4
|
||||
```
|
||||
**설치 항목:**
|
||||
- PHP CLI & FPM (NTS 빌드)
|
||||
- 필수 확장: mysqlnd, pdo, mbstring, xml, gd, curl, opcache, soap, intl, zip, bcmath, bz2, imagick
|
||||
|
||||
- Remi Repository 사용
|
||||
- PHP-FPM 포함
|
||||
- Apache + PHP 테스트 환경 구성
|
||||
**실행:**
|
||||
`bash
|
||||
chmod +x vm/install_php.sh
|
||||
./vm/install_php.sh 8.2 # PHP 8.2
|
||||
./vm/install_php.sh 8.4 # PHP 8.4
|
||||
`
|
||||
|
||||
**생성되는 파일:**
|
||||
- '/etc/php-fpm.d/.conf' - PHP-FPM pool 설정
|
||||
|
||||
**PHP 버전 확인:**
|
||||
`bash
|
||||
php -v
|
||||
php-fpm -v
|
||||
`
|
||||
|
||||
---
|
||||
|
||||
## 6. LXC DB 설치
|
||||
### 'lxc/setup_mariadb.sh' - MariaDB 설정
|
||||
|
||||
파일: `setup_lxc_db.sh`
|
||||
※ LXC 컨테이너 내부에서 실행
|
||||
MariaDB 10.6을 설치하고 사용자/DB를 생성합니다.
|
||||
|
||||
```bash
|
||||
chmod +x setup_lxc_db.sh
|
||||
./setup_lxc_db.sh
|
||||
```
|
||||
**설치 항목:**
|
||||
- MariaDB Server 10.6
|
||||
- 외부 접속 허용 (모든 인터페이스 바인드)
|
||||
- Firewall 3306 포트 개방
|
||||
- 초기 보안 설정 (테스트 DB/계정 제거)
|
||||
|
||||
- MariaDB 10.6 설치 (10.6.5 계열)
|
||||
- bind-address: 0.0.0.0
|
||||
- VM1/VM2에서 공용 DB 사용 가능
|
||||
**실행:**
|
||||
`bash
|
||||
chmod +x lxc/setup_mariadb.sh
|
||||
./lxc/setup_mariadb.sh
|
||||
`
|
||||
|
||||
접속 예시:
|
||||
```bash
|
||||
mysql -h <LXC_IP> -u root
|
||||
```
|
||||
**대화형 입력:**
|
||||
1. Linux 사용자 이름 (권장: 첫 번째 설정한 사용자)
|
||||
2. Linux 사용자 비밀번호
|
||||
3. DB 계정 통합 여부 (권장: Y)
|
||||
4. Database 이름 (예: 'testdb')
|
||||
|
||||
**접속 확인 (VM에서):**
|
||||
`bash
|
||||
# LXC IP 확인: pct exec 201 ip addr show eth0 | grep inet
|
||||
mysql -h <LXC_IP> -u <DB_USER> -p<DB_PW>
|
||||
|
||||
# 또는
|
||||
mysql -h 192.168.1.100 -u firstgarden -p
|
||||
`
|
||||
|
||||
---
|
||||
|
||||
## 7. Tailscale 설치 (선택)
|
||||
## dotfiles (설정 파일)
|
||||
|
||||
원격 테스트 접근용:
|
||||
각 스크립트에서 필요한 설정 파일들입니다. Git에서 관리되며 curl로 자동 다운로드됩니다.
|
||||
|
||||
```bash
|
||||
### 'dotfiles/vimrc'
|
||||
- 줄 번호 표시
|
||||
- 문법 강조
|
||||
- 마우스 비활성화
|
||||
- 80자 안내선
|
||||
- UTF-8 인코딩
|
||||
|
||||
### 'dotfiles/bashrc_addon'
|
||||
- 한국어 로케일 설정
|
||||
- 색상 지원 ('ls', 'grep' 등)
|
||||
- 유용한 별칭 ('ll', 'la', 'l' 등)
|
||||
- 편의 함수 ('mcd', 'f755', 'f644')
|
||||
- 히스토리 설정
|
||||
|
||||
---
|
||||
|
||||
## Tailscale 연동 (선택)
|
||||
|
||||
원격에서 테스트 서버에 접근하려면:
|
||||
|
||||
### VM 및 LXC에 설치
|
||||
`bash
|
||||
curl -fsSL https://tailscale.com/install.sh | sh
|
||||
sudo systemctl enable --now tailscaled
|
||||
|
||||
# 가입 및 네트워크 등록
|
||||
sudo tailscale up
|
||||
```
|
||||
`
|
||||
|
||||
- Tailscale IP로 Apache, SSH, FTP 접근 가능
|
||||
### 접속
|
||||
`bash
|
||||
# 각 호스트의 Tailscale IP 확인
|
||||
tailscale ip
|
||||
|
||||
# SSH 접속 (Tailscale IP 사용)
|
||||
ssh firstgarden@100.x.x.x
|
||||
|
||||
# MySQL 접속
|
||||
mysql -h 100.x.x.x -u firstgarden -p
|
||||
`
|
||||
|
||||
---
|
||||
|
||||
## 8. 테스트 확인
|
||||
## 보안 설정
|
||||
|
||||
- 웹: `http://<VM_IP>/`
|
||||
- 웹 루트: `/home/$USER/www`
|
||||
- DB: VM → LXC IP 접속
|
||||
- FTP/SFTP: 사용자 홈 기준
|
||||
### 기본 설정
|
||||
- **Root 로그인:** 비활성화 (SSH)
|
||||
- **패스워드 인증:** 활성화 (공개키 권장)
|
||||
- **FTP:** localhost 바인드 (Tailscale 통해만 접근 가능)
|
||||
- **firewalld:** 비활성화 (테스트 환경용)
|
||||
|
||||
### 프로덕션 권장사항
|
||||
`bash
|
||||
# SSH 공개키 인증 설정
|
||||
ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519
|
||||
|
||||
# ~/.ssh/authorized_keys에 공개키 추가
|
||||
cat ~/.ssh/id_ed25519.pub >> ~/.ssh/authorized_keys
|
||||
chmod 700 ~/.ssh
|
||||
chmod 600 ~/.ssh/authorized_keys
|
||||
|
||||
# SSH 설정 강화
|
||||
sudo nano /etc/ssh/sshd_config
|
||||
# 다음 설정 추가:
|
||||
# PasswordAuthentication no
|
||||
# PubkeyAuthentication yes
|
||||
# PermitRootLogin no
|
||||
|
||||
sudo systemctl restart sshd
|
||||
`
|
||||
|
||||
---
|
||||
|
||||
## 9. 주의사항
|
||||
## 성능 설정
|
||||
|
||||
- 본 구성은 **테스트 전용**
|
||||
- 보안 설정은 최소화되어 있음
|
||||
- 운영 서버에는 사용 금지
|
||||
### PHP-FPM 튜닝
|
||||
'/etc/php-fpm.d/.conf' 수정:
|
||||
`ini
|
||||
pm.max_children = 20 # 최대 프로세스 (RAM에 따라)
|
||||
pm.start_servers = 5
|
||||
pm.min_spare_servers = 2
|
||||
pm.max_spare_servers = 10
|
||||
`
|
||||
|
||||
### MariaDB 튜닝
|
||||
'/etc/my.cnf.d/50-server.cnf' 수정:
|
||||
`ini
|
||||
max_connections = 200
|
||||
innodb_buffer_pool_size = 512M
|
||||
`
|
||||
|
||||
---
|
||||
|
||||
## 문제 해결
|
||||
|
||||
### Apache 403 Forbidden
|
||||
`bash
|
||||
# 웹 루트 권한 확인
|
||||
ls -ld ~/www
|
||||
# 예상: drwxr-x--- (750)
|
||||
|
||||
# Apache 실행 사용자 확인
|
||||
ps aux | grep apache
|
||||
|
||||
# SELinux 컨텍스트 확인
|
||||
ls -Z ~/www
|
||||
`
|
||||
|
||||
### PHP-FPM 연결 실패
|
||||
`bash
|
||||
# PHP-FPM 상태 확인
|
||||
sudo systemctl status php-fpm
|
||||
|
||||
# 소켓 파일 확인
|
||||
ls -l /run/php-fpm/.sock
|
||||
|
||||
# Apache에서 PHP 핸들러 설정 확인
|
||||
grep -r "proxy_fcgi" /etc/httpd/conf.d/
|
||||
`
|
||||
|
||||
### MariaDB 연결 실패
|
||||
`bash
|
||||
# MariaDB 상태 확인
|
||||
sudo systemctl status mariadb
|
||||
|
||||
# 바인드 주소 확인
|
||||
sudo grep bind-address /etc/my.cnf.d/50-server.cnf
|
||||
|
||||
# 포트 확인
|
||||
sudo ss -tlnp | grep 3306
|
||||
|
||||
# 방화벽 확인 (LXC)
|
||||
sudo firewall-cmd --list-ports
|
||||
`
|
||||
|
||||
---
|
||||
|
||||
## 기타
|
||||
|
||||
### 스크립트 실행 순서 (정리)
|
||||
|
||||
**VM1 (PHP 8.2):**
|
||||
1. Rocky Linux 9 설치 (Minimal)
|
||||
2. 사용자 생성 (예: firstgarden)
|
||||
3. 'vm/setup_common.sh' 실행
|
||||
4. 'vm/install_php.sh 8.2' 실행
|
||||
|
||||
**VM2 (PHP 8.4):**
|
||||
1. Rocky Linux 9 설치 (Minimal)
|
||||
2. 사용자 생성 (예: firstgarden)
|
||||
3. 'vm/setup_common.sh' 실행
|
||||
4. 'vm/install_php.sh 8.4' 실행
|
||||
|
||||
**LXC (MariaDB):**
|
||||
1. Rocky Linux 9 LXC 생성
|
||||
2. Root로 로그인
|
||||
3. 'lxc/setup_mariadb.sh' 실행
|
||||
4. 입력값 입력 (사용자, 비밀번호 등)
|
||||
|
||||
### 파일 권한
|
||||
|
||||
스크립트 실행 가능 권한 설정:
|
||||
`bash
|
||||
chmod +x vm/setup_common.sh
|
||||
chmod +x vm/install_php.sh
|
||||
chmod +x lxc/setup_mariadb.sh
|
||||
`
|
||||
|
||||
---
|
||||
|
||||
## 라이선스 및 기여
|
||||
|
||||
이 프로젝트는 Cafe24 환경 테스트용으로 제공됩니다.
|
||||
|
||||
---
|
||||
|
||||
**최종 수정:** 2024년 12월 23일
|
||||
**버전:** 1.0.0
|
||||
|
||||
54
dotfiles/bashrc_addon
Normal file
54
dotfiles/bashrc_addon
Normal file
@ -0,0 +1,54 @@
|
||||
# 테스트 서버용 Bash 추가 설정
|
||||
# 이 파일은 기존 .bashrc 파일에 추가됩니다
|
||||
|
||||
# ----- 환경 변수 설정 -----
|
||||
export LANG=ko_KR.UTF-8
|
||||
export LC_ALL=ko_KR.UTF-8
|
||||
|
||||
# ----- 프롬프트 커스터마이제이션 -----
|
||||
export PS1='[\u@\h \W]\$ '
|
||||
|
||||
# ----- 히스토리 설정 -----
|
||||
export HISTCONTROL=ignoreboth
|
||||
export HISTSIZE=10000
|
||||
export HISTFILESIZE=20000
|
||||
|
||||
# ----- 색상 설정 -----
|
||||
alias ls='ls --color=auto'
|
||||
alias grep='grep --color=auto'
|
||||
alias fgrep='fgrep --color=auto'
|
||||
alias egrep='egrep --color=auto'
|
||||
|
||||
# ----- 편의 별칭 -----
|
||||
alias ll='ls -alF --color=auto'
|
||||
alias la='ls -A --color=auto'
|
||||
alias l='ls -CF --color=auto'
|
||||
alias cd..='cd ..'
|
||||
alias clear='clear'
|
||||
|
||||
# ----- PHP 관련 별칭 (PHP 설치된 경우) -----
|
||||
if command -v php &> /dev/null; then
|
||||
alias php-v='php -v'
|
||||
alias php-l='php -l' # PHP 문법 검사
|
||||
fi
|
||||
|
||||
# ----- 유용한 함수 -----
|
||||
|
||||
# 디렉토리 생성 및 진입
|
||||
mcd() {
|
||||
mkdir -p "$1" && cd "$1"
|
||||
}
|
||||
|
||||
# 파일 권한 설정 편의 함수
|
||||
f755() {
|
||||
chmod 755 "$@"
|
||||
}
|
||||
|
||||
f644() {
|
||||
chmod 644 "$@"
|
||||
}
|
||||
|
||||
# ----- 로컬 설정 (필요시) -----
|
||||
if [ -f ~/.bashrc.local ]; then
|
||||
source ~/.bashrc.local
|
||||
fi
|
||||
49
dotfiles/vimrc
Normal file
49
dotfiles/vimrc
Normal file
@ -0,0 +1,49 @@
|
||||
" Vim 설정 파일 - 테스트 서버용
|
||||
" Vi 호환성 비활성화
|
||||
set nocompatible
|
||||
|
||||
" 기본 설정
|
||||
set number " 줄 번호 표시
|
||||
set ruler " 커서 위치 표시
|
||||
set showcmd " 명령어 표시
|
||||
set showmatch " 괄호 매칭 표시
|
||||
set incsearch " 검색 중 하이라이트
|
||||
set hlsearch " 검색 결과 하이라이트
|
||||
|
||||
" 들여쓰기 설정
|
||||
set autoindent " 자동 들여쓰기
|
||||
set smartindent " 스마트 들여쓰기
|
||||
set expandtab " 탭을 스페이스로 변환
|
||||
set tabstop=4 " 탭 너비 (표시)
|
||||
set shiftwidth=4 " 들여쓰기 너비
|
||||
|
||||
" 색상 및 UI
|
||||
set background=dark
|
||||
syntax on " 문법 강조
|
||||
|
||||
" 마우스 비활성화 (VI 순수성 유지)
|
||||
set mouse=
|
||||
|
||||
" 하단 상태 표시줄
|
||||
set laststatus=2
|
||||
|
||||
" 인코딩 설정
|
||||
set encoding=utf-8
|
||||
set fileencoding=utf-8
|
||||
set fileencodings=utf-8,euc-kr
|
||||
|
||||
" 백업 및 스왑 파일 설정
|
||||
set nobackup
|
||||
set noswapfile
|
||||
set nowritebackup
|
||||
|
||||
" 검색 시 대소문자 무시
|
||||
set ignorecase
|
||||
set smartcase
|
||||
|
||||
" 줄 길이 안내선
|
||||
set colorcolumn=80
|
||||
highlight ColorColumn ctermbg=darkgray
|
||||
|
||||
" 개행 시 자동 주석 비활성화
|
||||
autocmd FileType * setlocal formatoptions-=o
|
||||
@ -2,11 +2,12 @@
|
||||
# Rocky Linux 9 LXC - MariaDB 설치 및 초기 설정
|
||||
# root 계정에서 실행
|
||||
# Linux / DB 계정 통합 여부 선택 가능
|
||||
# vimrc / bashrc는 git에서 다운로드
|
||||
# dotfiles는 git에서 다운로드
|
||||
|
||||
set -e
|
||||
|
||||
DOTFILES_BASE_URL="https://git.siane.kr/firstgarden/cafe24-testserver/main"
|
||||
# dotfiles 저장소 (실제 URL로 변경 필요)
|
||||
DOTFILES_BASE_URL="https://raw.githubusercontent.com/yourusername/cafe24-testserver/main/dotfiles"
|
||||
|
||||
echo "=== LXC MariaDB 초기 세팅 시작 ==="
|
||||
|
||||
@ -76,16 +77,27 @@ usermod -aG wheel "$LINUX_USER"
|
||||
USER_HOME="/home/$LINUX_USER"
|
||||
|
||||
# -------------------------------------------------
|
||||
# 5. vim / bash 설정 (git에서 다운로드)
|
||||
# 5. dotfiles 다운로드 (git에서)
|
||||
# -------------------------------------------------
|
||||
wget -qO "$USER_HOME/.vimrc" "$DOTFILES_BASE_URL/vimrc"
|
||||
wget -qO "$USER_HOME/.bashrc" "$DOTFILES_BASE_URL/bashrc"
|
||||
echo "dotfiles 다운로드 중..."
|
||||
curl -fsSL -o "$USER_HOME/.vimrc" "$DOTFILES_BASE_URL/vimrc"
|
||||
curl -fsSL -o "$USER_HOME/.bashrc_addon" "$DOTFILES_BASE_URL/bashrc_addon"
|
||||
|
||||
chown "$LINUX_USER:$LINUX_USER" "$USER_HOME/.vimrc" "$USER_HOME/.bashrc"
|
||||
# 기존 .bashrc 백업 및 추가 설정 적용
|
||||
if [ -f "$USER_HOME/.bashrc" ]; then
|
||||
cp "$USER_HOME/.bashrc" "$USER_HOME/.bashrc.bak"
|
||||
fi
|
||||
|
||||
# 새 설정 추가
|
||||
cat "$USER_HOME/.bashrc_addon" >> "$USER_HOME/.bashrc"
|
||||
rm "$USER_HOME/.bashrc_addon"
|
||||
|
||||
chown "$LINUX_USER:$LINUX_USER" "$USER_HOME/.vimrc" "$USER_HOME/.bashrc" "$USER_HOME/.bashrc.bak" 2>/dev/null || true
|
||||
|
||||
# -------------------------------------------------
|
||||
# 6. MariaDB 10.6 설치
|
||||
# -------------------------------------------------
|
||||
echo "MariaDB 10.6 설치 중..."
|
||||
dnf module reset mariadb -y
|
||||
dnf module enable mariadb:10.6 -y
|
||||
dnf install -y mariadb-server
|
||||
@ -93,45 +105,62 @@ dnf install -y mariadb-server
|
||||
systemctl enable --now mariadb
|
||||
|
||||
# -------------------------------------------------
|
||||
# 7. MariaDB 외부 접속 허용
|
||||
# 7. MariaDB 보안 초기화
|
||||
# -------------------------------------------------
|
||||
mysql -u root <<MYSQL_INIT
|
||||
DELETE FROM mysql.user WHERE User='';
|
||||
DELETE FROM mysql.user WHERE User='root' AND Host NOT IN ('localhost', '127.0.0.1', '::1');
|
||||
DROP DATABASE IF EXISTS test;
|
||||
DELETE FROM mysql.db WHERE Db='test' OR Db='test\\_%';
|
||||
FLUSH PRIVILEGES;
|
||||
MYSQL_INIT
|
||||
|
||||
# -------------------------------------------------
|
||||
# 8. DB 사용자 및 데이터베이스 생성
|
||||
# -------------------------------------------------
|
||||
echo "DB 사용자 및 데이터베이스 생성 중..."
|
||||
mysql -u root <<MYSQL_CREATE
|
||||
CREATE USER IF NOT EXISTS '$DB_USER'@'%' IDENTIFIED BY '$DB_PW';
|
||||
GRANT ALL PRIVILEGES ON $DB_NAME.* TO '$DB_USER'@'%';
|
||||
CREATE DATABASE IF NOT EXISTS $DB_NAME CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||||
FLUSH PRIVILEGES;
|
||||
MYSQL_CREATE
|
||||
|
||||
# -------------------------------------------------
|
||||
# 9. MariaDB 외부 접속 허용 설정
|
||||
# -------------------------------------------------
|
||||
echo "MariaDB 외부 접속 허용 설정 중..."
|
||||
cat > /etc/my.cnf.d/50-server.cnf <<EOF
|
||||
[mysqld]
|
||||
bind-address = 0.0.0.0
|
||||
skip-name-resolve
|
||||
character-set-server = utf8mb4
|
||||
collation-server = utf8mb4_unicode_ci
|
||||
port = 3306
|
||||
max_connections = 100
|
||||
EOF
|
||||
|
||||
systemctl restart mariadb
|
||||
|
||||
# -------------------------------------------------
|
||||
# 8. DB / 사용자 생성
|
||||
# 10. Firewall 설정 (3306 포트 개방)
|
||||
# -------------------------------------------------
|
||||
mysql <<EOF
|
||||
CREATE DATABASE IF NOT EXISTS \`${DB_NAME}\`
|
||||
DEFAULT CHARACTER SET utf8mb4
|
||||
COLLATE utf8mb4_unicode_ci;
|
||||
|
||||
CREATE USER IF NOT EXISTS '${DB_USER}'@'%' IDENTIFIED BY '${DB_PW}';
|
||||
GRANT ALL PRIVILEGES ON \`${DB_NAME}\`.* TO '${DB_USER}'@'%';
|
||||
FLUSH PRIVILEGES;
|
||||
EOF
|
||||
echo "Firewall 설정 중..."
|
||||
systemctl enable firewalld
|
||||
systemctl start firewalld
|
||||
firewall-cmd --permanent --add-port=3306/tcp
|
||||
firewall-cmd --reload
|
||||
|
||||
# -------------------------------------------------
|
||||
# 9. 기본 보안 정리 (테스트 기준)
|
||||
# 11. 완료 메시지
|
||||
# -------------------------------------------------
|
||||
mysql <<EOF
|
||||
DELETE FROM mysql.user WHERE User='';
|
||||
DROP DATABASE IF EXISTS test;
|
||||
FLUSH PRIVILEGES;
|
||||
EOF
|
||||
|
||||
echo ""
|
||||
echo "=== LXC MariaDB 설정 완료 ==="
|
||||
echo "Linux 사용자 : $LINUX_USER (sudo 가능)"
|
||||
echo "DB 이름 : $DB_NAME"
|
||||
echo "DB 사용자 : $DB_USER"
|
||||
echo "=========================================="
|
||||
echo "=== MariaDB 설정 완료 ==="
|
||||
echo "=========================================="
|
||||
echo "Linux 사용자: $LINUX_USER"
|
||||
echo "DB 사용자: $DB_USER"
|
||||
echo "DB 이름: $DB_NAME"
|
||||
echo "바인드 주소: 0.0.0.0 (모든 인터페이스)"
|
||||
echo "포트: 3306"
|
||||
echo ""
|
||||
echo "접속 예시:"
|
||||
echo "mysql -h <LXC_IP> -u $DB_USER -p $DB_NAME"
|
||||
echo "VM에서 연결 문자열:"
|
||||
echo " mysql -h <LXC_IP> -u $DB_USER -p"
|
||||
echo "=========================================="
|
||||
@ -1,87 +0,0 @@
|
||||
#!/bin/bash
|
||||
# 테스트 서버용 공통 설치 스크립트 (Rocky Linux 9)
|
||||
# Tailscale 호환, 외부 미노출 아님, 최소 권한, Apache + FTP + Vim + Bash 설정
|
||||
# 홈 디렉토리 권한 문제 해결 포함
|
||||
|
||||
WEB_USER=$USER
|
||||
WEB_HOME=$(eval echo "~$WEB_USER")
|
||||
WEB_ROOT="$WEB_HOME/www"
|
||||
|
||||
echo "설치 사용자: $WEB_USER"
|
||||
echo "웹 루트: $WEB_ROOT"
|
||||
|
||||
# 1. 시스템 업데이트
|
||||
sudo dnf update -y
|
||||
|
||||
# 2. firewalld 비활성화
|
||||
sudo systemctl stop firewalld
|
||||
sudo systemctl disable firewalld
|
||||
echo "firewalld 비활성화 완료"
|
||||
|
||||
# 3. 홈 디렉토리 권한 조정 (Apache가 진입 가능하도록)
|
||||
chmod 711 "$WEB_HOME"
|
||||
|
||||
# 4. www 폴더 생성, 소유자/권한 제한
|
||||
mkdir -p "$WEB_ROOT"
|
||||
chmod 750 "$WEB_ROOT"
|
||||
chown $WEB_USER:$WEB_USER "$WEB_ROOT"
|
||||
|
||||
# 5. Apache 설치
|
||||
sudo dnf install -y httpd
|
||||
sudo systemctl enable --now httpd
|
||||
|
||||
# Apache DocumentRoot 설정
|
||||
APACHE_CONF="/etc/httpd/conf.d/${WEB_USER}.conf"
|
||||
sudo bash -c "cat > $APACHE_CONF" <<EOF
|
||||
<VirtualHost *:80>
|
||||
ServerAdmin webmaster@localhost
|
||||
DocumentRoot $WEB_ROOT
|
||||
<Directory $WEB_ROOT>
|
||||
Options -Indexes +FollowSymLinks
|
||||
AllowOverride All
|
||||
Require all granted
|
||||
</Directory>
|
||||
ErrorLog logs/${WEB_USER}-error.log
|
||||
CustomLog logs/${WEB_USER}-access.log combined
|
||||
</VirtualHost>
|
||||
EOF
|
||||
|
||||
sudo systemctl restart httpd
|
||||
|
||||
# 6. FTP 설치 및 설정 (vsftpd)
|
||||
sudo dnf install -y vsftpd
|
||||
sudo systemctl enable --now vsftpd
|
||||
|
||||
# FTP 설정
|
||||
sudo sed -i 's/anonymous_enable=YES/anonymous_enable=NO/' /etc/vsftpd/vsftpd.conf
|
||||
sudo sed -i 's/#chroot_local_user=YES/chroot_local_user=YES/' /etc/vsftpd/vsftpd.conf
|
||||
sudo bash -c "echo 'allow_writeable_chroot=YES' >> /etc/vsftpd/vsftpd.conf"
|
||||
sudo bash -c "echo 'listen_address=127.0.0.1' >> /etc/vsftpd/vsftpd.conf"
|
||||
sudo systemctl restart vsftpd
|
||||
|
||||
# 7. SSH 설정 강화
|
||||
sudo sed -i 's/#PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config
|
||||
sudo sed -i 's/#PasswordAuthentication yes/PasswordAuthentication yes/' /etc/ssh/sshd_config
|
||||
sudo systemctl restart sshd
|
||||
|
||||
# 8. Vim 설치 및 Visual 모드 비활성화 (줄 번호 제거)
|
||||
sudo dnf install -y vim
|
||||
echo "set mouse=" >> "$WEB_HOME/.vimrc"
|
||||
chown $WEB_USER:$WEB_USER "$WEB_HOME/.vimrc"
|
||||
|
||||
# 9. Bash 가독성 향상 설정
|
||||
BASHRC="$WEB_HOME/.bashrc"
|
||||
echo "" >> $BASHRC
|
||||
echo "# --- Bash 가독성 설정 ---" >> $BASHRC
|
||||
echo "export PS1='[\u@\h \W]\$ '" >> $BASHRC
|
||||
echo "alias ll='ls -alF --color=auto'" >> $BASHRC
|
||||
echo "alias la='ls -A --color=auto'" >> $BASHRC
|
||||
echo "alias l='ls -CF --color=auto'" >> $BASHRC
|
||||
echo "export HISTCONTROL=ignoreboth" >> $BASHRC
|
||||
chown $WEB_USER:$WEB_USER $BASHRC
|
||||
|
||||
# 10. SELinux 웹 루트 접근 허용
|
||||
sudo chcon -R -t httpd_sys_content_t "$WEB_ROOT"
|
||||
|
||||
echo "테스트 서버용 공통 설정 완료! Apache + FTP + Vim + Bash 환경 구성됨."
|
||||
echo "VM IP로 접속 시 Forbidden 문제 없이 /home/$USER/www 접근 가능"
|
||||
@ -34,18 +34,35 @@ sudo bash -c "cat > $FPM_POOL" <<EOF
|
||||
user = $WEB_USER
|
||||
group = $WEB_USER
|
||||
listen = /run/php-fpm/$WEB_USER.sock
|
||||
listen.owner = $WEB_USER
|
||||
listen.group = $WEB_USER
|
||||
listen.owner = apache
|
||||
listen.group = apache
|
||||
pm = dynamic
|
||||
pm.max_children = 10
|
||||
pm.start_servers = 2
|
||||
pm.min_spare_servers = 1
|
||||
pm.max_spare_servers = 5
|
||||
chdir = $WEB_ROOT
|
||||
php_value[display_errors] = Off
|
||||
php_value[error_reporting] = E_ALL & ~E_DEPRECATED & ~E_STRICT
|
||||
EOF
|
||||
|
||||
# PHP-FPM 서비스 활성화 및 재시작
|
||||
sudo systemctl enable --now php-fpm
|
||||
sudo systemctl restart php-fpm
|
||||
|
||||
echo "PHP $PHP_VERSION 설치 완료! PHP-FPM pool: $WEB_USER"
|
||||
# Apache와 PHP-FPM 연동 설정 (setup_common.sh에서 이미 설정됨)
|
||||
# Apache 재시작
|
||||
sudo systemctl restart httpd
|
||||
|
||||
# 설치 확인
|
||||
echo ""
|
||||
echo "=== PHP $PHP_VERSION 설치 완료! ==="
|
||||
echo "✓ PHP-FPM 풀: $WEB_USER"
|
||||
echo "✓ PHP-FPM 소켓: /run/php-fpm/$WEB_USER.sock"
|
||||
echo ""
|
||||
echo "확인 방법:"
|
||||
echo " 1. php -v # PHP 버전 확인"
|
||||
echo " 2. php-fpm -v # PHP-FPM 버전 확인"
|
||||
echo " 3. php -m | grep -E '(pdo|mysql)' # DB 모듈 확인"
|
||||
echo " 4. echo '<?php phpinfo(); ?>' > ~/www/test.php # 웹 접속 테스트"
|
||||
echo " 5. cat /var/log/httpd/${WEB_USER}-error.log # 에러 로그 확인"
|
||||
141
vm/setup_common.sh
Normal file
141
vm/setup_common.sh
Normal file
@ -0,0 +1,141 @@
|
||||
#!/bin/bash
|
||||
# 테스트 서버용 공통 설치 스크립트 (Rocky Linux 9)
|
||||
# Tailscale 호환, 외부 미노출 아님, 최소 권한, Apache + FTP + Vim + Bash 설정
|
||||
# 홈 디렉토리 권한 문제 해결 포함
|
||||
|
||||
WEB_USER=$USER
|
||||
WEB_HOME=$(eval echo "~$WEB_USER")
|
||||
WEB_ROOT="$WEB_HOME/www"
|
||||
|
||||
echo "설치 사용자: $WEB_USER"
|
||||
echo "웹 루트: $WEB_ROOT"
|
||||
|
||||
# 1. 시스템 업데이트
|
||||
sudo dnf update -y
|
||||
|
||||
# 2. firewalld 비활성화
|
||||
sudo systemctl stop firewalld
|
||||
sudo systemctl disable firewalld
|
||||
echo "firewalld 비활성화 완료"
|
||||
|
||||
# 3. 홈 디렉토리 권한 조정 (Apache가 진입 가능하도록)
|
||||
chmod 711 "$WEB_HOME"
|
||||
|
||||
# 4. www 폴더 생성, 소유자/권한 제한
|
||||
mkdir -p "$WEB_ROOT"
|
||||
chmod 750 "$WEB_ROOT"
|
||||
chown $WEB_USER:$WEB_USER "$WEB_ROOT"
|
||||
|
||||
# 5. Apache 설치
|
||||
sudo dnf install -y httpd
|
||||
sudo systemctl enable --now httpd
|
||||
|
||||
# Apache DocumentRoot 및 PHP-FPM 설정
|
||||
APACHE_CONF="/etc/httpd/conf.d/${WEB_USER}.conf"
|
||||
APACHE_PHP_CONF="/etc/httpd/conf.modules.d/10-php-${WEB_USER}.conf"
|
||||
|
||||
# PHP-FPM 프록시 설정
|
||||
sudo bash -c "cat > $APACHE_PHP_CONF" <<'EOF'
|
||||
<IfModule mod_proxy_fcgi.c>
|
||||
<IfModule mod_setenvif.c>
|
||||
SetEnvIfNoCase ^Authorization$ "(.+)" HTTP_AUTHORIZATION=$1
|
||||
</IfModule>
|
||||
<FilesMatch "\.php$">
|
||||
SetHandler "proxy:unix:/run/php-fpm/WEB_USER.sock|fcgi://localhost"
|
||||
</FilesMatch>
|
||||
<IfModule mod_rewrite.c>
|
||||
RewriteEngine On
|
||||
RewriteCond %{REQUEST_FILENAME} !-f
|
||||
RewriteCond %{REQUEST_FILENAME} !-d
|
||||
RewriteRule ^ index.php [QSA,L]
|
||||
</IfModule>
|
||||
</IfModule>
|
||||
EOF
|
||||
|
||||
# WEB_USER 치환
|
||||
sudo sed -i "s/WEB_USER/$WEB_USER/g" "$APACHE_PHP_CONF"
|
||||
|
||||
# VirtualHost 설정
|
||||
sudo bash -c "cat > $APACHE_CONF" <<EOF
|
||||
<VirtualHost *:80>
|
||||
ServerAdmin webmaster@localhost
|
||||
DocumentRoot $WEB_ROOT
|
||||
<Directory $WEB_ROOT>
|
||||
Options -Indexes +FollowSymLinks
|
||||
AllowOverride All
|
||||
Require all granted
|
||||
</Directory>
|
||||
ErrorLog logs/${WEB_USER}-error.log
|
||||
CustomLog logs/${WEB_USER}-access.log combined
|
||||
</VirtualHost>
|
||||
EOF
|
||||
|
||||
# Apache 모듈 활성화
|
||||
sudo a2enmod proxy_fcgi setenvif rewrite 2>/dev/null || sudo dnf install -y mod_proxy_fcgi
|
||||
|
||||
sudo systemctl restart httpd
|
||||
|
||||
# 6. FTP 설치 및 설정 (vsftpd)
|
||||
sudo dnf install -y vsftpd
|
||||
sudo systemctl enable --now vsftpd
|
||||
|
||||
# FTP 설정
|
||||
sudo sed -i 's/anonymous_enable=YES/anonymous_enable=NO/' /etc/vsftpd/vsftpd.conf
|
||||
sudo sed -i 's/#chroot_local_user=YES/chroot_local_user=YES/' /etc/vsftpd/vsftpd.conf
|
||||
sudo bash -c "echo 'allow_writeable_chroot=YES' >> /etc/vsftpd/vsftpd.conf"
|
||||
sudo bash -c "echo 'listen_address=127.0.0.1' >> /etc/vsftpd/vsftpd.conf"
|
||||
sudo systemctl restart vsftpd
|
||||
|
||||
# 7. SSH 설정 강화
|
||||
sudo sed -i 's/#PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config
|
||||
sudo sed -i 's/#PasswordAuthentication yes/PasswordAuthentication yes/' /etc/ssh/sshd_config
|
||||
sudo systemctl restart sshd
|
||||
|
||||
# 8. Vim 및 Bash 설정 파일 다운로드 (git에서)
|
||||
# 주의: 아래 URL을 실제 git 저장소 URL로 변경하세요
|
||||
DOTFILES_BASE_URL="https://raw.githubusercontent.com/yourusername/cafe24-testserver/main/dotfiles"
|
||||
|
||||
if command -v curl &>/dev/null; then
|
||||
echo "dotfiles 다운로드 중..."
|
||||
curl -fsSL -o "$WEB_HOME/.vimrc" "$DOTFILES_BASE_URL/vimrc" 2>/dev/null || echo "경고: .vimrc 다운로드 실패"
|
||||
|
||||
# .bashrc_addon 다운로드
|
||||
if curl -fsSL -o "$WEB_HOME/.bashrc_addon" "$DOTFILES_BASE_URL/bashrc_addon" 2>/dev/null; then
|
||||
# 기존 .bashrc 백업
|
||||
if [ -f "$WEB_HOME/.bashrc" ]; then
|
||||
cp "$WEB_HOME/.bashrc" "$WEB_HOME/.bashrc.bak"
|
||||
fi
|
||||
# 추가 설정 병합
|
||||
cat "$WEB_HOME/.bashrc_addon" >> "$WEB_HOME/.bashrc"
|
||||
rm "$WEB_HOME/.bashrc_addon"
|
||||
fi
|
||||
else
|
||||
echo "경고: curl이 설치되어 있지 않습니다. dotfiles 수동 설정 필요"
|
||||
fi
|
||||
|
||||
# 파일 소유권 설정
|
||||
sudo chown $WEB_USER:$WEB_USER "$WEB_HOME/.vimrc" "$WEB_HOME/.bashrc"
|
||||
|
||||
# 10. SELinux 웹 루트 접근 허용
|
||||
sudo chcon -R -t httpd_sys_content_t "$WEB_ROOT"
|
||||
|
||||
# 11. 오류 처리 확인
|
||||
if ! sudo systemctl is-active --quiet httpd; then
|
||||
echo "에러: Apache 서비스가 실행 중이 아닙니다."
|
||||
sudo systemctl status httpd
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if ! sudo systemctl is-active --quiet php-fpm; then
|
||||
echo "경고: PHP-FPM이 설치되지 않았습니다. install_php.sh 실행 필요"
|
||||
fi
|
||||
|
||||
echo "=== 테스트 서버용 공통 설정 완료! ==="
|
||||
echo "✓ Apache + FTP + Vim + Bash 환경 구성됨"
|
||||
echo "✓ 웹 루트: $WEB_ROOT (권한: 750)"
|
||||
echo "✓ 홈 디렉토리: $WEB_HOME (권한: 711)"
|
||||
echo ""
|
||||
echo "다음 단계:"
|
||||
echo " 1. PHP 설치: ./install_php.sh 8.2 또는 8.4"
|
||||
echo " 2. 웹 접속: http://$(hostname -I | awk '{print $1}')/"
|
||||
echo " 3. 로그 확인: tail -f /var/log/httpd/${WEB_USER}-*.log"
|
||||
Reference in New Issue
Block a user