결론부터 말씀드리면, Synology Web Station에서도 Laravel 운영은 "가능"합니다. 하지만 Docker 방식에 비해 설정이 매우 까다롭고 제약이 많기 때문에 "불가능하다"고 느껴지거나, 실제로 제대로 작동하지 않는 경우가 많습니다.
Docker 컨테이너(Nginx+PHP-FPM)와 Synology Web Station(네이티브)의 결정적인 차이점 4가지를 통해 그 이유를 설명해 드리겠습니다.
1. Document Root (진입점) 설정의 차이
Laravel은 보안상 웹 서버의 진입점(Document Root)이 프로젝트 최상위 폴더가 아니라 /public 폴더여야 합니다.
- Docker: Nginx 설정(nginx.conf 또는 default.conf)에서 root /var/www/html/public;으로 직접 지정하여 컨테이너가 시작될 때부터 완벽하게 경로를 잡습니다.
- Web Station: 기본적으로 공유 폴더의 최상위(web/my-project)를 바라봅니다. Web Station의 "가상 호스트" 설정에서 수동으로 문서 루트를 /public 하위 폴더로 지정해주지 않으면, 시스템 파일(.env 등)이 노출되거나 index.php를 찾지 못해 403/404 에러가 발생합니다.
2. Nginx Rewrite Rules (URL 라우팅)
Laravel은 모든 요청을 index.php로 보내서 처리하는 Front Controller 패턴을 사용합니다. 이를 위해 Nginx 설정에 try_files $uri $uri/ /index.php?$query_string; 구문이 필수입니다.
- Docker: 설정 파일에 이 구문을 넣고 이미지를 빌드하면 끝입니다.
- Web Station:
- Synology의 내장 Nginx 설정 파일은 사용자가 직접 수정하기 어렵습니다 (수정해도 DSM 업데이트 시 초기화됨).
- Web Station GUI에는 이 구문을 넣을 수 있는 직관적인 메뉴가 없습니다.
- 해결책: 백엔드 서버를 Nginx가 아닌 Apache로 설정하여 .htaccess 파일을 사용하거나, 매우 복잡한 스크립트 설정을 거쳐야 합니다.
3. PHP 확장 모듈 및 버전 관리 (Extensions)
Laravel은 bcmath, intl, gd, zip 등 특정 PHP 확장이 반드시 필요합니다.
- Docker: Dockerfile에 RUN docker-php-ext-install ... 한 줄만 넣으면 필요한 모든 확장이 설치된 상태로 구동됩니다.
- Web Station:
- DSM에 설치된 PHP 버전별로 "PHP 설정" 메뉴에 들어가서 필요한 확장 모듈 체크박스를 일일이 켜줘야 합니다.
- 필요한 모듈이 Synology 패키지에 아예 없다면, 직접 컴파일해서 넣어야 하는데 이는 일반적인 NAS 사용 범위를 벗어납니다.
4. 권한 문제 (Permissions) 및 CLI 도구
Laravel은 storage와 bootstrap/cache 폴더에 쓰기 권한이 필요하며, composer나 php artisan 명령어를 자주 사용해야 합니다.
- Docker: 컨테이너 내부에서 권한을 마음대로 조정할 수 있고, docker exec를 통해 독립된 환경에서 명령어를 실행할 수 있습니다.
- Web Station:
- Synology의 http 그룹 유저에게 파일 쓰기 권한을 줘야 하는데, DSM File Station이나 터미널(ssh)에서 권한 설정이 꼬이는 경우가 많습니다.
- NAS 자체에 composer를 설치하고 경로를 잡는 과정이 번거롭습니다.
제안: Web Station에서 꼭 돌려야 한다면?
만약 Docker를 쓰지 않고 Web Station을 꼭 써야 한다면, 다음 설정을 따라야 합니다:
- 백엔드 서버 변경: Nginx 대신 Apache HTTP Server를 선택하세요. (Laravel의 .htaccess 파일이 작동하여 라우팅 문제를 해결해 줍니다.)
- 가상 호스트 설정: 문서 루트를 반드시 /volume1/web/프로젝트명/public으로 지정하세요.
- PHP 프로필: Web Station 설정에서 PHP 프로필을 만들고, Laravel이 요구하는 모든 확장 모듈(Extensions)을 활성화하세요.
결론적으로, 개발자시라면 Docker를 사용하시는 것이 정신 건강과 유지보수 측면에서 압도적으로 유리합니다.
반응형
'Synology 시놀로지' 카테고리의 다른 글
| Synology Docker + Laravel 권한 문제 완벽 정리 (0) | 2026.01.19 |
|---|---|
| Synology Docker로 Next.js 실행하기 (리버스 프록시) (0) | 2025.12.18 |
| 2개의 Synology 서버 공유폴더 동기화 > 단방향 (0) | 2025.04.09 |
| Synology rsync란? > 백업하기 (0) | 2025.04.09 |
| Synology NAS 백엔드서버 구축하기 (1) | 2025.04.07 |