Ubuntu18.04 Laravel 구축 환경 설정 (PHP7.3)

서버를 AWS에서 Cafe24로 변경하여 이전작업 중,

언젠가 또 이전 할 일이 있지 않을까.. 매번 구글링하기도 귀찮고 어려워서 쓰는 나만의 가이드


서버 스펙

  • cafe24 클라우드 서버

  • m2.large(4/ 4GB / 30GB)

  • Ubuntu 18.041. PHP 및 Laravel 필요 패키지 설치


Ubuntu 업그레이드 및 업데이트

항상 최신버전으로 맞추는 습관을 들이자.

sudo apt update
sudo apt upgrade

* 업그레이드 하는데에도 꽤 시간이 걸렸다.

PHP7.3 및 관련 패키지 설치

이전에 쓰던 laravel 버전이 7.3에 맞춰져 있었고, 8.0으로 넘어가면 지원하지 않는 패키지들이 있었기 때문에 

계속 php7.3버전을 쓰기로 결정

php 설치

sudo apt-get install php7.3

관련 패키지 설치

sudo apt-get install php7.3-mbstring
sudo apt-get install php7.3-curl
sudo apt-get install php7.3-mysql
sudo apt-get install php7.3-xml
sudo apt-get install php7.3-xmlrpc
sudo apt-get install php7.3-gd
sudo apt-get install php7.3-imagick
sudo apt-get install php7.3-zip
sudo apt-get install php7.3-dev libmcrypt-dev gcc make autoconf libc-dev pkg-config
sudo pecl install mcrypt-1.0.1

Composer 설치

Composer은 PHP의 종속성 관리자이며 모든 Laravel 구성 요소를 설치하는데 사용

(가끔 composer설치에 엄청 긴 코드들을 사용하는 경우가 있던데, 나는 이 코드 한줄로 해결!)

curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer

curl과 함께 설치프로그램을 다운로드하고 파일을 /usr/local/bin으로 이동시킨다.

설치 확인

composer --version

위 코드를 입력하면 현재 composer의 버전을 확인할 수 있다. 

composer이 설치 되어 있지 않으면 오류가 뜬다!

Git 설치 및 Clone

git을 install한 뒤, github에 올려져있던 코드를 clone해서 가져온다.

보통 위치는 /var/www/ 밑으로 가져온다.

sudo apt-get install git
git clone [REPO_URL] /var/www/

필수 파일 및 폴더 생성

.gitignore로 인해 git에 올려지지 않은 필수 파일들을 생성한다.

나는 이부분을 생성해주지 않아 한참을 헤멨다..ಥ_ಥ

.env파일

.env.example을 복사해서 .env 생성 후, 수정해준다.

cp .env.example .env
vi .env

vendor폴더

vendor은 composer의 의존성 폴더이다. 

composer install을 하여 이를 생성해 준다.

(composer.lock 파일에 지정된대로 종속성을 설치)

composer install

* package.json파일을 가지고 있다면 npm install도 실행 


이렇게 해주면 기본 설정은 끝!

다음 글에서 Laravel을 nginx를 사용하여 배포하는 법을 정리해야겠다.

* 추가 *
Laravel의 가장 흔한 오류인 권한문제 해결법
어떤 원리인지.. 어떻게 작동되는지 자세히는 알 수 없지만 아래 네 코드를 실행하면 웬만큼 해결된다.

chown -R www-data:www-data bootstrap/cache
chown -R www-data:www-data storage
chmod -R 777 storage
chmod -R 777 boostrap

(원리를 아신다면 알려주세요...ㅠㅠ)

좋은 웹페이지 즐겨찾기