반응형
EC2 세팅
가장 먼저 프리티어로 EC2를 개설했다.
데이터 베이스 들도 따로 구축 해 주고 싶긴 한데... 비용 문제상 EC2 내부에 구축 하기로 했다.
일단 SSH로 접속 후, apt를 update, upgrade 진행을 먼저 했다.
이후 nginx를 먼저 설치해 주었다.
apt-get install nginx
정상적으로 설치된 걸 확인 후, 개발 환경과 맞추어 PHP를 설치!
로컬에서 8.2 버전을 사용 중이라 해당 PHP 버전으로 설치 해 주었다.
add-apt-repository ppa:ondrej/php
apt-get install php8.2
이후 서버 코드를 clone 해 주고
.env를 세팅,
이 때 .env의 APP_DEBUG는 false값으로 지정 해 주어야 한다.
composer를 설치 했다.
apt-get install composer
이후 php ext쪽 설정을 진행하고
apt-get install php8.2-[extName]
mongoDB의 ext는 pecl을 이용하여 설치를 진행 해야 하기 때문에
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
위와 같이 진행 해 주고,
composer install
정상적으로 성공 되었다!
이제 nginx의 설정을 변경 해 보자.
그 전에 일단 php-fpm을 설치 해야 한다.
apt-get install php8.2-fpm
설치하면 경로는 /var/run/php 에 설치 된다.
이후
/etc/nginx/sites-available/default 파일을 아래와 같이 수정 한다.
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 프로젝트의 루트 폴더에서 아래 두 명령어를 실행해 준다.
chown -R www-data:www-data bootstrap/cache
chown -R www-data:www-data storage
정상적으로 배포가 되었당~~
다음에는 EC2 내부 Mysql 세팅 및 내부로 세팅 진행 하였을 때의 보안 설정,
Oauth 설정을 이어서 해야겠다.
반응형
'프로그래밍 일지 > 명빵' 카테고리의 다른 글
[개인프로젝트] EC2 Next.js App 배포 (Ubuntu + next.js + pm2 + nginx + Route53 + Ec2 LB) (0) | 2023.03.21 |
---|---|
[개인프로젝트] EC2 Mysql, MongoDB Setting 및 data transper (0) | 2023.03.20 |
[개인프로젝트] 공개모집 태그 로직 정리 및 임시 통신 (SSR) 처리(교집합, 부분집합, Combination 처리) (0) | 2023.03.20 |
[개인프로젝트] next.js 퍼블리싱 / Layout / Component / propType 처리 (0) | 2023.03.20 |
[개인프로젝트] 명일방주 정보 조회용 프론트엔드 세팅 (Next.js + SCSS) (0) | 2023.03.16 |