작성일: 2026-03-05 | 기존 서버: 192.168.1.80
| 항목 | 버전 | 설치 방식 |
|---|---|---|
| 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 |
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
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;
}
}
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
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
아래 프롬프트를 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
http://192.168.1.90 접속/admin/login 페이지 정상 로딩 확인[email protected] / dock2030 로그인 테스트/plan 문서 허브 페이지 확인APP_URL=http://192.168.1.90 으로 설정lensnara / 사용자: lensnara / 비밀번호: dock2030!@db/lensnara_dump_20260305.sql)로 복원 — migrate 실행 금지sudo ufw allow 80/tcp
---
> **참고**: 이 문서는 기존 서버(192.168.1.80)의 2026-03-05 기준 실측 데이터입니다.