lumen installation
composer 설치
composer 는 여기로 가서 설치하면 된다.php.ini
- PHP >= 5.5.9
- OpenSSL PHP Extension
- Mbstring PHP Extension
- Tokenizer PHP Extension : tokenizer 는 windows 버전에서 built-in 으로 되어 있다.
lumen 설치
blog 라는 이름의 project 를 만들려면 아래처럼 하면 된다.
composer create-project laravel/lumen blog특정버전으로 설치하고 싶으면 아래처럼 해주면 된다.
composer create-project laravel/lumen blog "5.1.*"
composer.json 을 가지고 있으면, 추후에 dependency 를 다시 설치할 때 composer install 해주면 된다.
c:..\proj\> composer install
Apache 설정
아래처럼 public 을 root 로 설정해 주면 된다. public directory 에는 .htaccess 도 있어서 url 들의 routing 을 새롭게 설정하게 된다.DocumentRoot "<proj_directory>/public" <Directory "<proj_directory>/public">
<proj>\public\.htaccess
만약 그냥 <proj_directory> 를 root 로 사용하면 접근을 아래처럼 하면 된다.
- http://localhost:8082/public/index.php
DocumentRoot "<proj_directory>" <Directory "<proj_directory>">
public 은 directory 이름을 바꿔도 괜찮다.(?)
AllowOverride
참고로 .htaccess 를 사용하려면 "AllowOverride None" 이 없어야 한다. "AllowOverride All" 이나 / "AllowOverride FileInfo" 로 세팅을 해야 된다.(참고)lumen 의 directory tree
app/ + Console/ + Commands/ + Events/ + Exceptions/ + Http/ + Controllers/ + Middleware/ + Jobs/ + Listeners/ + Providers/ bootstrap/ database/ + factories/ + migrations/ + seeds/ public/ resources/ + views/ routes/ storage/ + app/ + framework/ + cache/ + views/ + logs/ tests/
gnuboard 와 같이 사용한다면
우리 나라에서 gnuboard 로 만들어놓은 web page 들이 많이 있다. 개인적으로 좋아하지 않지만, 이미 만들어져 있는 경우 어쩔 수 없다.이 경우에 gnuboard 부분을 "<proj>/public" 안으로 가져오면 된다.
- <proj>/public
.htaccess 예시
이녀석은 사용안하는 편이 좋다고들 한다. apache 의 virtual host 설정을 수정할 수 있다면, virtual host 설정안에 넣자. <Directory "/home/..."> 태그 안에 넣으면 된다.
참고로 아래 htaccess 를 위해서 httpd.conf 에서 module 이 load 되었는지 확인하자.
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule negotiation_module modules/mod_negotiation.so
http://localhost:8080/api/.... 는 index2.php 로 가고,
http://localhost:8080/api2/... 등은 index.php 로 redirect 하기 위한 설정.
<IfModule mod_rewrite.c> <IfModule mod_negotiation.c> Options -MultiViews </IfModule> RewriteEngine On # Redirect Trailing Slashes If Not A Folder... RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)/$ /$1 [L,R=301] # Handle Front Controller... # For the rest URIs RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_URI} !^/api/ RewriteRule ^(.*)$ index.php [L] # Handle Front Controller... # For the URIs which starts with /api/ RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^api/(.*) index2.php [L] # Handle Authorization Header RewriteCond %{HTTP:Authorization} . RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] </IfModule>
DirecotryIndex
만약 기본으로 lumen 을 호출하고 싶다면, DirecotryIndex 도 변경해줘야 한다.(여기서 index2.php 가 lumen 파일)<Directory "/home/cocktail/apps/cocktail_lumen/public">
...
DirectoryIndex index.html index2.php
</Directory>
그밖에
- <proj>/storage 폴더의 permission 은 lumen 이 write 할 수 있어야 한다.
- <proj>/.env 파일에 APP_KEY 에 32자의 random string 넣기
- 이 bootstrap/app.php 에서 Dotenv::load() 를 호출하는데, 이녀석이 .env 의 변수를 load 해준다.
- 자신만의 configuration file 사용하는 법 : Installation - Lumen > Custom Configuration Files
- environment 값 getter
- $environment = App::environment();
- App::environment('local', 'staging')
- config 값 getter / setter
- $value = config('app.timezone');
- config(['app.timezone' => 'America/Chicago']);
- cache 설정 : https://lumen.laravel.com/docs/5.1/cache#configuration
- database 설정 : Database - Lumen - PHP Micro-Framework By Laravel
- phpunit
댓글 없음:
댓글 쓰기