v1.0 📅 2026-03-05 📂 인프라

Lensnara SCM — 서버 마이그레이션 가이드

작성일: 2026-03-05 | 기존 서버: 192.168.1.80


1. 현재 설치된 기술스택 (실측 기준)

시스템 인프라

항목 버전 설치 방식
OS Ubuntu 24.04.4 LTS (x86_64) Native
Nginx 1.28.2 apt (mainline)
PHP 8.5.3 (cli, NTS) ondrej/php PPA
PHP-FPM php8.5-fpm systemd 서비스
MariaDB 12.2.2 stable apt (공식 repo)
Redis 8.6.1 apt (공식 repo)
Node.js 24.14.0 NodeSource 또는 nvm
NPM 11.9.0 Node.js 내장
Composer 2.9.5 글로벌 설치

애플리케이션 스택

항목 버전
Laravel 12.52.0
Filament 5.2.1
Livewire 4.1.4
Tailwind CSS 4.2.0
Laravel Sanctum 4.3.1
Filament Shield 4.1.0
Filament Blueprint 2.1.0
Spatie Activity Log 4.11.0
Maatwebsite Excel 3.1.67
Laravel DomPDF 3.1.1
Laravel Trend 0.4.0

PHP 확장 모듈 (필수)

bcmath, curl, dom, exif, fileinfo, ftp, gd, gettext, 
igbinary, intl, json, mbstring, mysqli, mysqlnd, openssl, 
pcntl, pdo_mysql, pdo_sqlite, posix, readline, redis, 
session, sockets, sodium, sqlite3, tokenizer, xml, 
xmlreader, xmlwriter, xsl, zip, zlib, opcache

Nginx 설정 (sites-available/default)

server {
    listen 80;
    listen [::]:80;
    server_name _;
    root /home/lensnara/git/lensnara_scm/public;

    add_header X-Frame-Options "SAMEORIGIN";
    add_header X-XSS-Protection "1; mode=block";
    add_header X-Content-Type-Options "nosniff";

    index index.html index.htm index.php;
    charset utf-8;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location = /favicon.ico { access_log off; log_not_found off; }
    location = /robots.txt  { access_log off; log_not_found off; }

    error_page 404 /index.php;

    location ~ \.php$ {
        fastcgi_pass unix:/var/run/php/php8.5-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
        include fastcgi_params;
    }

    location ~ /\.(?!well-known).* {
        deny all;
    }
}

.env 핵심 설정

APP_URL=http://192.168.1.90

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=lensnara
DB_USERNAME=lensnara
DB_PASSWORD=dock2030!@

SESSION_DRIVER=redis
QUEUE_CONNECTION=redis
CACHE_STORE=redis
REDIS_CLIENT=phpredis
REDIS_HOST=127.0.0.1
REDIS_PORT=6379

systemd 서비스 목록

mariadb.service     — MariaDB 12.2.2 database server
nginx.service       — nginx high performance web server
php8.5-fpm.service  — The PHP 8.5 FastCGI Process Manager
redis-server.service — Advanced key-value store

2. AI Agent용 서버 설치 프롬프트

아래 프롬프트를 AI agent에게 전달하면 새 서버에 동일한 환경을 구성할 수 있습니다.


# Lensnara SCM 웹 서비스 설치 프롬프트

## 역할
당신은 Linux 서버 엔지니어입니다.
새로운 Ubuntu 서버에 Laravel 기반 웹 애플리케이션(Lensnara SCM)을 설치하여 웹에서 접속 가능하도록 세팅해 주세요.

## 전제 조건
- OS: Ubuntu 24.04 LTS (최신)가 설치되어 있음
- home 디렉토리는 기존 서버(192.168.1.80)에서 전체 복사 완료
- 프로젝트 경로: `/home/lensnara/git/lensnara_scm`
- DB 덤프 파일: `/home/lensnara/git/lensnara_scm/db/lensnara_dump_20260305.sql`
- 이 프로젝트는 Laravel 12 + Filament v5 + Livewire v4 기반 SCM 시스템
- Docker를 사용하지 않음 (Native 설치)
- 새 서버 IP: `192.168.1.90`

## 설치해야 할 패키지 및 버전 (정확히 이 버전 이상)

### 1단계: 시스템 패키지
- Nginx 1.28 이상 (mainline 버전)
- MariaDB 12.2 이상 (mariadb.org 공식 repo)
- Redis 8.6 이상 (redis.io 공식 repo)

### 2단계: PHP 8.5 설치
- PPA: `ondrej/php` (또는 동등)
- 패키지: php8.5-fpm, php8.5-cli
- 필수 확장:
  php8.5-bcmath php8.5-curl php8.5-dom php8.5-gd php8.5-igbinary
  php8.5-intl php8.5-mbstring php8.5-mysql php8.5-redis php8.5-xml
  php8.5-xsl php8.5-zip php8.5-opcache php8.5-readline php8.5-sqlite3
  php8.5-pcntl php8.5-sockets php8.5-fileinfo php8.5-exif

### 3단계: Node.js 24.x LTS
- NodeSource 공식 설치 또는 nvm 사용
- npm은 Node.js에 내장

### 4단계: Composer 2.9 이상
- `curl -sS https://getcomposer.org/installer | php`
- `sudo mv composer.phar /usr/local/bin/composer`

## 서비스 설정

### Nginx 설정
`/etc/nginx/sites-available/default` 파일을 아래와 같이 설정:

server { listen 80; listen [::]:80; server_name_; root /home/lensnara/git/lensnara_scm/public;

add_header X-Frame-Options "SAMEORIGIN";
add_header X-XSS-Protection "1; mode=block";
add_header X-Content-Type-Options "nosniff";

index index.html index.htm index.php;
charset utf-8;

location / {
    try_files $uri $uri/ /index.php?$query_string;
}

location = /favicon.ico { access_log off; log_not_found off; }
location = /robots.txt  { access_log off; log_not_found off; }

error_page 404 /index.php;

location ~ \.php$ {
    fastcgi_pass unix:/var/run/php/php8.5-fpm.sock;
    fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
    include fastcgi_params;
}

location ~ /\.(?!well-known).* {
    deny all;
}

}


### MariaDB 설정
```bash
# MariaDB root로 접속
sudo mariadb

# DB 및 사용자 생성
CREATE DATABASE lensnara CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'lensnara'@'localhost' IDENTIFIED BY 'dock2030!@';
GRANT ALL PRIVILEGES ON lensnara.* TO 'lensnara'@'localhost';
FLUSH PRIVILEGES;
EXIT;

# 덤프 파일로 DB 복원
mariadb -u lensnara -p'dock2030!@' lensnara < /home/lensnara/git/lensnara_scm/db/lensnara_dump_20260305.sql

파일 권한

sudo chown -R www-data:www-data /home/lensnara/git/lensnara_scm/storage
sudo chown -R www-data:www-data /home/lensnara/git/lensnara_scm/bootstrap/cache
sudo chmod -R 775 /home/lensnara/git/lensnara_scm/storage
sudo chmod -R 775 /home/lensnara/git/lensnara_scm/bootstrap/cache

애플리케이션 설정 (프로젝트 디렉토리에서 실행)

cd /home/lensnara/git/lensnara_scm

# .env 설정 — 아래 값으로 수정
# APP_URL=http://192.168.1.90
# DB_DATABASE=lensnara
# DB_USERNAME=lensnara
# DB_PASSWORD=dock2030!@

# 의존성 설치
composer install --no-dev --optimize-autoloader
npm install && npm run build

# 캐시 생성
php artisan config:cache
php artisan route:cache
php artisan view:cache
php artisan filament:cache-components

# 스토리지 링크
php artisan storage:link

# (DB는 위 MariaDB 설정 단계에서 덤프로 이미 복원됨)

서비스 시작 및 활성화

sudo systemctl enable --now nginx
sudo systemctl enable --now php8.5-fpm
sudo systemctl enable --now mariadb
sudo systemctl enable --now redis-server

검증

  1. 브라우저에서 http://192.168.1.90 접속
  2. /admin/login 페이지 정상 로딩 확인
  3. [email protected] / dock2030 로그인 테스트
  4. /plan 문서 허브 페이지 확인
  5. 카테고리/상품/재고 등 데이터가 정상적으로 보이는지 확인 (덤프 복원 검증)

주의사항


---

> **참고**: 이 문서는 기존 서버(192.168.1.80)의 2026-03-05 기준 실측 데이터입니다.
← 문서 목록으로