본 문서는 Ubuntu 16.04 기준으로 작성되었습니다.
1. php fpm 설치와 composer install시 필요한 extension 설치
sudo apt-get install -y php-fpm php-zip php-xml php-mbstring
2. composer 설치시 필요한 유틸리티 설치하기
sudo apt-get install -y curl unzip git
3. composer 설치하기
먼저 composert를 다운로드 받고 /user/local/bin으로 composer 란 명령어 이름으로 설치한다.
cd ~
sudo curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer
이후 자신의 계정에 .composer 라는 폴더가 생기는데 root:root 의 소유권을 내가 사용할 수 있도록 소유권 변경을 한다.
(composer를 root 계정으로는 사용할 수 없다.)
sudo chown -R [현재 사용자 계정] .composer/
4. Laravel 설치
composer global require "laravel/installer"
laravel을 설치하고 나면 .composer/vendor/bin에 명령어를 사용해야 함으로 .bashrc에 PATH를 추가한다.
echo 'export PATH="$PATH:$HOME/.composer/vendor/bin"' >> ~/.bashrc
source .bashrc
laravel -v
5. 버전 확인 완료 후 새로운 프로젝트를 만든다.
여기서는 blog 라는 이름의 프로젝트를 만든다고 가정한다.
cd ~
laravel new blog
6. 프로젝트 생성 이후 storage와 bootstrap의 cache에 www-data의 그룹권한을 부여한다.
storage 폴더는 Blade template 과 파일 base 세션, cache 그리고 laravel 프레임워크에서 만들어지는 파일을 저장하는 폴더.
boostrap/cache 폴더는 performance 최적화를 위하여 프레임워크에서 만들어지는 파일을 보관하는 폴더이다.
그러므로 www-data의 사용자가 읽고 쓸 수 있도록 권한이 부여되어야 한다.
cd blog
sudo chgrp -R www-data ./storage
sudo chgrp -R www-data ./bootstrap/cache
7. PHP-fpm을 시작한다.
unix socket으로 생성하는 것을 권장한다. tcp로 시작할 경우 tcp 프로토콜의 구조상 오버해드가 발생할 수 있다.
우분투 16.04의 경우 기본 설치되는 php의 버전은 7.0 이므로 다음의 명령어로 시작한다.
sudo service php7.0-fpm start
8. Nginx 설치 및 설정
다음 명령어로 Nginx 를 설치한다.
sudo apt-get install nginx
서버 설정은 기본적으로 되어있는 default 를 수정해도 되나 virtualhost를 고려하여 blog 라는 파일을 새로 생성할 것이다.
sites-available 폴더에 있는 default를 blog 로 복사하고 sites-enabled에 링크를 걸어준다.
( 이 작업은 생략 가능하며 그냥 default 파일로 사용해도 상관은 없다. )
sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/blog
sudo rm /etc/nginx/sites-enabled/default
sudo ln -s /etc/nginx/sites-available/blog /etc/nginx/sites-enabled/blog
9. nginx 설정을 다음과 같이 한다.
server {
listen 80;
listen [::]:80;
root /home/mikelim/blog/public;
index index.php index.html index.htm;
server_name localhost;
# REST API 용도로만 사용한다면 다음 설정은 주석처리
location ~* \.(gif|jpg|png|js|css)$ {
root /home/mikelim/blog/public;
expires 1d;
}
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
try_files $uri /index.php =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
'Snippets' 카테고리의 다른 글
[Android] Webview에서 새로운 창을 열때 (0) | 2017.09.21 |
---|---|
[Android] 해상도별 아이콘 사이즈 (0) | 2017.07.12 |
[Docker] Ubuntu 16.04를 설치했을 때 필요한 패키지 설치 (0) | 2017.04.18 |
[Eclipse] 단축키 모음 (0) | 2017.04.11 |
Ubuntu에서 tomcat이 느리게 로드 될 때 (0) | 2017.03.31 |