콘텐츠로 건너뛰기

Laravel 첫 설치 하기

PHP 프레임워크인 라라벨(Laravel)을 예전부터 알고는 있었지만, 기존에 이용하던 코드이그나이터(Codeigniter)가 편리해서 별로 신경은 쓰지 않고 있었는데, 라라벨이 점점 많이 이용을 하고 있는 것을 알게 되었다. 그래서 설치를 해서 뭔가를 만들어보려고 한다.

라라벨을 이용하기위해서 설명 부터 찾아보기로 했다.

라라벨: https://laravel.com/
라라벨코리아: https://laravel.kr/

두 사이트에서 6.X 메뉴얼을 가지고 첫 설치를 해본다. 아래는 라라벨코리아 6.x 설치 하기 부분을 참고한다.

설치하기

설치하기

서버 요구사항

라라벨은 몇가지 시스템 요구사항을 필요로 합니다. 라라벨 홈스테드는 모든 요구사항을 만족합니다. 따라서 여러분의 로컬 라라벨 개발 환경에서 홈스테드를 사용할 것을 강력 권장합니다.

하지만, 홈스테드를 사용하지 않는 경우, 서버에서 다음의 요구사항을 만족하는지 확인해야합니다.

  • PHP >= 7.2.0
  • BCMath PHP Extension
  • Ctype PHP Extension
  • JSON PHP Extension
  • Mbstring PHP Extension
  • OpenSSL PHP Extension
  • PDO PHP Extension
  • Tokenizer PHP Extension
  • XML PHP Extension

라라벨 설치하기

라라벨은 의존성 관리를 위해 컴포저를 활용합니다. 라라벨을 사용하기 전에, 여러분들은 라라벨을 설치할 서버(머신)에 Composer를 설치해야 합니다.

라라벨 인스톨러로 사용하기

먼저, 라라벨 인스톨러를 컴포저를 사용하여 다운로드 합니다.

composer global require laravel/installer

laravel 실행 파일을 시스템에서 찾을 수 있도록 컴포저의 시스템 vendor bin 디렉토리가 $PATH에 추가되었는지 확인하십시오. 이 디렉토리는 운영체제 별로 다른 위치에 저장됩니다만, 일반적으로는 다음과 같습니다.

  • macOS and GNU / Linux Distributions: $HOME/.composer/vendor/bin
  • Windows: %USERPROFILE%\AppData\Roaming\Composer\vendor\bin

라라벨 인스톨러가 설치 된 후, laravel new 명령어를 입력하면 여러분이 입력한 폴더안에 깨끗한(fresh) 상태의 라라벨 파일을 생성할 것입니다. 예를들어 laravel new blog 명령어는 blog라는 폴더를 생성 할것이며 라라벨이 필요로 하는 모든 의존 패키지들의 설치와 함께 깨끗한(fresh) 상태의 라라벨 파일들을 이 폴더에 설치합니다.

laravel new blog

Composer Create-Project 통한 설치

그렇지 않으면, 터미널에서 컴포저의 create-project 커멘드를 사용하여 라라벨을 설치할 수도 있습니다

composer create-project --prefer-dist laravel/laravel blog

로컬 개발 서버

로컬환경에 PHP가 설치되어 있다면 PHP의 내장 개발 서버를 사용하여 애플리케이션을 구동하고자 할 수 있는데, 이 경우 serve 아티즌 명령어를 사용할 수 있습니다. 이 명령어는 개발서버를 http://localhost:8000으로 시작할 것입니다.

php artisan serve

보다 강력한 로컬 개발의 대안으로 홈스테드 와 발렛 도 사용할 수 있습니다.

설정하기

Public 디렉토리

라라벨을 설치후에 애플리케이션의 document / web 루트를 public 디렉토리로 설정해야 합니다. 이 디렉토리의 index.php는 애플리케이션의 모든 HTTP 요청에 대해서 프론트 컨트롤러로 작동합니다.

설정 파일

라라벨 프레임워크의 모든 설정 파일들은 config 디렉토리에 위치합니다. 각각의 옵션들은 문서가 작성되어 있으며, 사용 가능한 옵션들을 이해하기 위해서 전체 문서들을 둘러보는 것이 좋습니다.

디렉토리 권한 설정

라라벨을 설치한 뒤에, 몇몇 권한을 설정해야될 필요가 있습니다. storage 와 bootstrap/cache 디렉토리 안에 들어 있는 디렉토리들은 모두 웹 서버에 의해서 쓰기가 가능해야 합니다. 그렇지 않으면 라라벨이 실행되지 않습니다. 홈스테드를 사용중이라면 이미 권한이 설정되어 있을 것입니다.

애플리케이션 키 설정

라라벨 설치 후 해야할 일은 여러분의 애플리케이션 키를 랜덤한 문자열로 세팅하는 것입니다. 만약 라라벨이 Composer 를 통해서 설치되었다면 키는 php artisan key:generate 명령어가 실행되어 이미 설정되어 있을 것입니다.

일반적으로, 이 키는 32자리의 문자열입니다. 이 키는 .env 환경설정 파일에서 세팅할 수 있습니다. 아직 .env.example 파일을 .env 로 복사하지 않았다면 지금 복사합니다. 만약 애플리케이션 키가 세팅되어있지 않다면, 여러분의 사용자 세션과 그밖의 암호화된 데이터들이 안전하지 않습니다!

추가적인 설정

라라벨은 앞의 내용 이외의 다른 세팅은 거의 필요 하지 않습니다. 이제 편하게 개발을 시작하면 됩니다! 그러나 가급적 config/app.php 파일의 내용을 살펴보길 권장합니다. timezone과 locale과 같이 여러분의 애플리케이션을 따라 바꾸기를 원하는 몇가지 옵션들을 포함하고 있습니다.

다음과 같은 라라벨의 컴포넌트들에 대한 몇가지 설정들을 해둘 수도 있습니다.

웹 서버 설정

Directory 설정

Laravel은 항상 웹 서버용으로 구성된 “웹 디렉토리”의 루트에서 제공되어야합니다. “웹 디렉토리”의 하위 디렉토리에서 Laravel 애플리케이션을 제공하려고 시도해서는 안됩니다. 이렇게하면 애플리케이션 내에 민감한 파일이 노출 될 수 있습니다.

Pretty URLs

Apache

라라벨은 주어진 경로에 index.php 파일이 없어도 될 수 있도록 URL 프론트 컨트롤링을 제공하는 public/.htaccess 파일을 가지고 있습니다. 아파치를 통해서 라라벨 웹서비스를 제공하기 전에, .htaccess 파일이 동작할 수 있도록 mod_rewrite 모듈을 활성화 하십시오.

아파치에서 라라벨이 제공하는 .htaccess 파일이 동작하지 않는다면, 대신 다음의 코드를 시도해보십시오:

Options +FollowSymLinks -Indexes
RewriteEngine On

RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]

Nginx

Nginx 를 사용중이라면, 사이트 설정에 다음의 지시어를 설정하여 모든 요청이 index.php 프론트 컨트롤러로 향하도록 하십시오:

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

홈스테드 또는 발렛을 사용중이라면 pretty URL을 자동으로 설정되어 있습니다.

위의 설명을 참조 하여, 설치를 하였는데.. 나는 Apache를 이용하고, 리눅스서버에서 유저를 생성하여 라라벨을 설치를 하였다.

보통 /home/gguno/public_html 에 사이트를 만들기 때문에 아직은 아무것도 모르고 있기에, public_html에서 “composer global require laravel/installer” 명령어를 입력을 하고, 이후 “laravel new blog” 를 설치를 하니 /home/gguno/public_html/blog 의 디렉토리가 생성이 되어버렸다. 그러면 blog를 아파치에서 버츄얼서버설정으로 기본 디렉토리로 셋팅을 하면 된다.

laravel new blog
drwxr-xr-x. 12 gguno gguno 4096 12월 24 14:19 blog
# ll<br>
합계 248<br>
-rwxr-xr-x.  1 gguno  gguno    4455 12월 16 19:35 README.md<br>
drwxr-xr-x.  6 gguno  gguno    4096 12월 16 19:35 app<br>
-rwxr-xr-x.  1 gguno  gguno    1686 12월 16 19:35 artisan<br>
drwxr-xr-x.  3 gguno  gguno    4096 12월 16 19:35 bootstrap<br>
-rwxr-xr-x.  1 gguno  gguno    1501 12월 16 19:35 composer.json<br>
-rwxr-xr-x.  1 gguno  gguno  179117 12월 24 13:29 composer.lock<br>
drwxr-xr-x.  2 gguno  gguno    4096 12월 24 14:18 config<br>
drwxr-xr-x.  5 gguno  gguno    4096 12월 16 19:35 database<br>
-rwxr-xr-x.  1 gguno  gguno    1013 12월 16 19:35 package.json<br>
-rwxr-xr-x.  1 gguno  gguno    1405 12월 16 19:35 phpunit.xml<br>
drwxr-xr-x.  2 gguno  gguno    4096 12월 16 19:35 public<br>
drwxr-xr-x.  6 gguno  gguno    4096 12월 16 19:35 resources<br>
drwxr-xr-x.  2 gguno  gguno    4096 12월 16 19:35 routes<br>
-rwxr-xr-x.  1 gguno  gguno     563 12월 16 19:35 server.php<br>
drwxr-xr-x.  5 apache apache   4096 12월 16 19:35 storage<br>
drwxr-xr-x.  4 gguno  gguno    4096 12월 16 19:35 tests<br>
drwxr-xr-x. 41 gguno  gguno    4096 12월 24 13:29 vendor<br>
-rwxr-xr-x.  1 gguno  gguno     538 12월 16 19:35 webpack.mix.js

위의 코드처럼 설치가 되었다.
이때 이해가 안되었던 부분은 blog디렉토리 안에 public 을 기본으로 셋팅을 해야한다.

<VirtualHost *:80>
    ServerAdmin gguno@gguno.com
    DocumentRoot "/home/gguno/public_html/blog/public"
    ServerName blog.gguno.com
    ErrorLog "logs/bloggguno-error_log"
    CustomLog "logs/bloggguno-access_log" common
</VirtualHost>

복잡하게 설치가 되었지만, 처음 셋팅을 하는 부분이라 테스트겸 기본 디렉토리를 셋팅을 이어나갔다. gguno 의 기본 디렉토리에서 바로 “laravel new blog” 나 “laravel new 내프로젝트” 를 실행하면 /home/gguno/내프로젝트 로 설치 후 아파치나 nginx의 설정을 하면 될것 같다.

나는 직접 테스트서버에 진행을 하였기에 가상서버를 실행은 하지 않았다. 그래서 ~ 사이트로 들어가보니 짠 ~ 제대로 라라벨이 설치 떴다.

아마 제대로 연동이 안된다면, .env에 설정을 하고, ./stoage 디렉토리를 707로 퍼미션을 변경을 하면 될것이라 본다.

다음에는 설명서에 있는 회원가입? 로그인을 설치해보면서 오류가 나는 부분이나 오류나는 부분을 체크하면서 데이터베이스(Mysql) 연동 등을 설치 해볼 예정이다.

답글 남기기