Symfony 8을 cPanel에 배포하는 단계별 가이드
Table of Contents
- 소개
- 모든 것을 다시 확인하기
- 환경 변수 설정하기
- 벤더 설치/업데이트
- Symfony 캐시 비우기
- symfony/apache-pack 설치
- composer.json 공개 디렉터리 업데이트
- 자산 빌드하기
- Kernel.php 업데이트
- 프로젝트를 cPanel에 업로드하기
- 마무리 생각
소개
저는 Symfony를 처음 접했으며, 최근에 SSH 접근 권한이 없는 cPanel 기반 공유 호스팅 환경에 Symfony 앱을 배포했습니다.
가장 좋은 방법을 찾지 못했고, 대부분의 자료가 오래되었거나 비효율적이라 유용한 정보를 찾기 어려웠습니다.
배포 과정에서 500 Internal Server Error로 앱이 로드되지 않거나 정적 자산이 로드되지 않는 등 여러 오류를 겪었지만, 결국 해결했습니다. 이 경험을 바탕으로 같은 상황에 처한 Symfony 초보자들의 고통을 줄이고자 이 글을 작성했습니다.
자, 이제 시작해 보겠습니다.
대부분의 온라인 배포 가이드는 서버에서 Composer를 실행하고, 캐시를 비우며, 마이그레이션을 수행하고, Symfony 명령을 직접 실행할 수 있다고 가정합니다. 공유 호스팅 환경에서는 이러한 작업이 불가능한 경우가 많으므로, 여기서는 서버에 Composer가 설치되어 있지 않다고 가정하고 예시를 진행합니다.
1. 모든 것을 다시 확인하기
프로덕션용 빌드를 시작하기 전 가장 먼저 해야 할 일은 모든 것이 정상적인지 다시 한 번 확인하는 것입니다. 이는 매우 중요합니다.
예를 들어, 정적 이미지 자산이 잘못된 경로 때문에 로드되지 않는 문제를 겪었습니다. 개발 모드에서는 무시되었지만, 프로덕션에서는 asset('/images/')와 같이 사용하면 이미지가 로드되지 않았습니다. 올바른 경로는 asset('images/')와 같이 지정해야 합니다. 다른 자산을 정의한 방식을 확인한 뒤 이런 실수를 방지하세요.
2. 환경 변수 설정하기
이를 위해 기본적으로 등록되지 않은 dotenv:dump 명령을 사용합니다. 먼저 services.yaml에 등록해야 합니다:
# config/services.yaml