JJONG`sFACTORY
반응형
 

EC2 세팅

가장 먼저 프리티어로 EC2를 개설했다.

데이터 베이스 들도 따로 구축 해 주고 싶긴 한데... 비용 문제상 EC2 내부에 구축 하기로 했다.

일단 SSH로 접속 후, apt를 update, upgrade 진행을 먼저 했다.

 

이후 nginx를 먼저 설치해 주었다.

bash
apt-get install nginx

정상적으로 설치된 걸 확인 후, 개발 환경과 맞추어 PHP를 설치!

로컬에서 8.2 버전을 사용 중이라 해당 PHP 버전으로 설치 해 주었다.

bash
add-apt-repository ppa:ondrej/php apt-get install php8.2

이후 서버 코드를 clone 해 주고

.env를 세팅,

이 때 .env의 APP_DEBUG는 false값으로 지정 해 주어야 한다.

composer를 설치 했다.

bash
apt-get install composer

이후 php ext쪽 설정을 진행하고

bash
apt-get install php8.2-[extName]

mongoDB의 ext는 pecl을 이용하여 설치를 진행 해야 하기 때문에

bash
apt-get install php-pear apt-get install php-dev pecl install mongodb echo "extension=mongodb.so" >> `php --ini | grep "Loaded Configuration" | sed -e "s|.*:\s*||"` apt-get install php-mongodb

위와 같이 진행 해 주고,

bash
composer install

정상적으로 성공 되었다!

 

이제 nginx의 설정을 변경 해 보자.

그 전에 일단 php-fpm을 설치 해야 한다.

bash
apt-get install php8.2-fpm

설치하면 경로는 /var/run/php 에 설치 된다.

이후

/etc/nginx/sites-available/default 파일을 아래와 같이 수정 한다.

bash
server { listen 80 default_server; listen [::]:80 default_server; root /[project-path]/public; # Add index.php to the list if you are using PHP index index.php; server_name _; charset utf-8; location / { try_files $uri $uri/ /index.php?$query_string; # try_files $uri $uri/ =404; } 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.2-fpm.sock; fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name; include fastcgi_params; } location ~ /\.(?!well-known).* { deny all; } }

권한 관련 오류가 발생하면 laravel 프로젝트의 루트 폴더에서 아래 두 명령어를 실행해 준다.

bash
chown -R www-data:www-data bootstrap/cache chown -R www-data:www-data storage

 

정상적으로 배포가 되었당~~

다음에는 EC2 내부 Mysql 세팅 및 내부로 세팅 진행 하였을 때의 보안 설정,

Oauth 설정을 이어서 해야겠다.

반응형