LINUX

ubuntu 18.04 + laravel + nginx 로 환경 설정하기

나나나나나나나ㅏ나난ㄴ나ㅏ나나 2020. 6. 11. 18:55
728x90

환경

  • ubuntu 20.04
  • php 7.4
  • nginx

팀장님이 아마존 aws ec2를 이용해서 새로운 ec2를 만들어 보라구 했다! 

그래서 아마존 aws ec2에서 새로운 인스턴스를 만들고 환경설정을 했다 기록 안하고있다가 기록하고 있냐는 말에 놀래서 오랜만에 기록중,..😞

 

1. 우분투 os 업그레이드 및 업데이트하기

항상 최신버전으로 맞춰줘야한다고 했다!

sudo apt update
sudo apt upgrade

 

2.  nginx 설치

nginx 를 설치하기전에 간단히 nginx가 뭔지 알고 넘어가자(실제로 물어봐서 당황했던 거ㅠㅠㅠ)

 

Nginx? 

Apache처럼 웹서버 환경을 만들어주는 소프트웨어!

따라서 Apache 를 따로 설치 할 필요 없다!

 

Nginx는 간단하게 설치할 수 있다.

sudo apt-get install nginx

설치가 잘 됬는지 확인하려면 ip 주소로 들어가보면 된다

설치가 잘 됬으면 welcome 문구가 뜨면서 기본적인 index 페이지가 뜬다!

 

3. php 도구 설치

 

먼저 php 를 설치한다.

 

sudo apt-get install php7.4

 

그다음에  php 관련 모듈들을 설치해준다

 

sudo apt install php-fpm

sudo apt install php-mysql php-zip php-gd
sudo apt install php-mbstring php-xml
sudo apt-get install php-curl

 

참고

https://sjwiq200.tistory.com/69

 

[Ubuntu] PHP + Nginx 설정하기

nginx랑 친해져보려고 하는 중이라 해당 사항을 포스팅합니다! 우선 다음 명령어를 입력해줍니다. apt-get update nginx를 설치해줍니다~! apt-get install nginx 다음 명령어로 nginx가 잘 돌아가고 있는지 확

sjwiq200.tistory.com

4. git

git install 로 깃을 설치한뒤 내 프로젝트를 clone 해서 가져온다.

위치는 /var/www/밑으로!

sudo apt-get install git

 

5. composer

프로젝트 디렉토리로 가서 composer install 을 해주는데 composer 모듈들이랑 버전 충돌이 났다.

그래서 composer.json을 삭제 한 후 다시 해주었다. 

이 과정에서 memory_limit 오류가 발생했다. 

2020/06/04 - [SERVER/LARAVEL] - php 메모리 부족 오류(수정)

 

php 메모리 부족 오류(수정)

환경 mac Os Catalina php 7.4 composer 1.9.1 PHP Fetal error: Allowed memory size of 1610612736 bytes exhausted (tried to allocate 4096 bytes) in phar:///usr/local/bin/composer.phar/src/Composer/Dep..

become-a-developer.tistory.com

여기를 참고하면 된다! 

이렇게 수정해도 안된다면 아마존에서 인스턴스 유형을 변경해야된다 8ㅅ8

 

6. nxigx + laravel 연동

/etc/nxigx/stie-avliable/default에서 다음과 같이 수정해준다

server {
    listen 80;
    server_name example.com;
    root your/drectory/public;

    add_header X-Frame-Options "SAMEORIGIN";
    add_header X-XSS-Protection "1; mode=block";
    add_header X-Content-Type-Options "nosniff";

    index index.php;

    charset utf-8;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    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/php7.4-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
        include fastcgi_params;
    }

    location ~ /\.(?!well-known).* {
        deny all;
    }
}

 

7. laravel storage 권한 문제 

위까지 하고 나니 권한문제가 발생했다.

권한 문제는 다음과 같이 처리하면된다!

mkdir -p bootstrap/cache
chown -R www-data:www-data bootstrap/cache
mkdir -p storage/logs
mkdir -p storage/framework/cache
mkdir -p storage/framework/sessions
mkdir -p storage/framework/views
chown -R www-data:www-data storage

그러면 권한 문제까지 완료하면 끄읏!!

 

간단한거같은데 반나절이걸려버린 ㅠㅠㅠㅠㅠㅠㅠㅠ 그럼 안뇽🙋🏻‍♀️

 

 

참고

https://sjwiq200.tistory.com/47?category=786738

https://sjwiq200.tistory.com/32

https://laravel.kr/docs/5.5/deployment

+팀장님 / 사수분 머리속

728x90