지난번에 AWS의 EC2를 통해서 인스턴스를 생성해 보았다. 생성한 인스턴스 내부에 LAMP환경을 세팅하고 Laravel 환경을 구축하는 시간을 가져보자.
sudo apt update // 시스템 패키지 최신 상태로 업데이트
sudo apt install apache2 // Apache 설치
sudo apt install php // PHP 설치
sudo apt install libapache2-mod-php // Apache에서 PHP 실행을 가능케 하는 명령어
sudo systemctl restart apache2 // Apache 재시작
sudo apt install composer // 컴포저 설치
// Composer를 통한 Laravel 설치
sudo composer create-project laravel/laravel {프로젝트명}
// (설치된 Laravel 모듈 내부에서 실행) composer.json 내부의 Laravel 필수 패키지 설치
sudo composer install
아파치 웹서버에서의 기본 사이트 설정 파일인 /etc/apache2/sites-available/000-default.conf에서 기본 도큐멘트 루트인 /var/www/html에서 설치한 Laravel 모듈의 /public으로 변경한다.
<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/html/{프로젝트명}/public
<Directory /var/www/html/{프로젝트명}/public>
Options FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
위의 설정을 변경한 후, 아파치 서버를 재시작
sudo systemctl restart apache2 // Apache 재시작
file_put_contents(/storage/framework/cache/data/17/33/5247191135932981e3a563c57d63dfcc0d02b604): failed to open stream: No such file or directory {"exception":"[object]
Laravel 페이지를 표시하기 위해 IP를 실행 시키면, 위와 같은 디렉토리 권한 에러가 발생한다. 해당 에러를 해결하기 위해서는 Laravel 캐시, 파일 저장소의 권한을 아래와 같이 변경해 줄 필요가 있다.
sudo chown -R $USER:www-data storage
sudo chown -R $USER:www-data bootstrap/cache
chmod -R 775 storage
chmod -R 775 bootstrap/cache