Laravel Deployment
라라벨 프레임워크를 아파치 서버에 배포할 때 삽질한 기록을 남긴다.
- 어플리케이션 루트 디렉토리를 배포할 웹 루트상에 복사한다.
- 배포할 서버가 단독 서버일 경우에는 어플리케이션의 설정에 맞게 변경하면 되지만 웹 호스팅(공유 호스팅)일 경우에는 기본적으로 웹 루트가 설정이 되어 있으므로 웹 루트를 어플리케이션의 웹 루트로 인식할 수 있도록 링크를 생성한다.
– 서버상의 경로는 /home/username/www 라고 가정할 경우 www 디렉토리의 이름을 변경하고 복사한 라라벨 어플리케이션의 public 디렉토리를 www로 링크를 생성한다.$ mv $HOME/www $HOME/www_bak $ ln -s $HOME/laravel/public $HOME/www
- mod_rewite가 비활성화 되어 있을 경우 mod_rewirte를 활성화 시킨다.
$ sudo a2enmod rewrite $ sudo service apache2 restart
- apache2의 경우 제공하는 어플리케이션의 디렉토리 구성 옵션 중 AllowOverride 속성 값이 None이 기본 값이므로 All로 변경한다.
(/etc/apache2/apache2.conf 또는 /etc/apache2/sites-available/site.domain.conf 파일에 정의되어 있을 수 있다.) - apache2는 www-data 계정을 사용하기 때문에 기존 유저가 권한을 가지고 있을 경우 권한문제 때문에 오류가 발행한다.
그렇기 때문에 laravel/storage 디렉토리의 권한을 변경한다.$ sudo chmod -R 664 $HOME/laravel/storage
이상이 현재까지 삽질하면서 찾아낸 내용이다.