"라라벨 시작하기"의 두 판 사이의 차이

잔글 (봇: 자동으로 텍스트 교체 (-source +syntaxhighlight))
 
(사용자 3명의 중간 판 18개는 보이지 않습니다)
6번째 줄: 6번째 줄:
==사전작업==
==사전작업==
* [[아파치 설치]]
* [[아파치 설치]]
* [[아파치 mod_rewrite 활성화]]
* [[PHP 설치]]
* [[PHP 설치]]
* [[composer 설치]]
* [[composer 설치]]


==프로젝트 생성==
==프로젝트 생성==
* 여기서는 프로젝트명을 lara로 하였음
{{참고|Composer 라라벨 프로젝트 생성}}
<source lang='console'>
* 여기서는 프로젝트명을 laravel로 하였음
root@zetawiki:/var/www# composer create-project --prefer-dist laravel/laravel lara
<syntaxhighlight lang='console'>
root@zetawiki:/var/www# composer create-project --prefer-dist laravel/laravel laravel
Installing laravel/laravel (v5.4.23)
Installing laravel/laravel (v5.4.23)
   - Installing laravel/laravel (v5.4.23): Downloading (100%)         
   - Installing laravel/laravel (v5.4.23): Downloading (100%)         
Created project in lara
Created project in laravel
... (생략)
... (생략)
Generating optimized class loader
Generating optimized class loader
21번째 줄: 23번째 줄:
> php artisan key:generate
> php artisan key:generate
Application key [base64:aXZr5Hnp95VffB6hj8YXmvMfogigLl0RnNC4FiM7o4o=] set successfully.
Application key [base64:aXZr5Hnp95VffB6hj8YXmvMfogigLl0RnNC4FiM7o4o=] set successfully.
</source>
</syntaxhighlight>


==웹루트 연결==
==웹루트 연결==
* 기존 웹루트 /var/www/html을 다른 이름(html_default)으로 보존
* 기존 웹루트 /var/www/html을 다른 이름(html_default)으로 보존
* lara/public을 /var/www/html으로 복제
* laravel/public을 /var/www/html으로 복제
<source lang='console'>
<syntaxhighlight lang='console'>
root@zetawiki:/var/www# mv html/ html_default
root@zetawiki:/var/www# mv html/ html_default
root@zetawiki:/var/www# cp -a lara/public/ html
root@zetawiki:/var/www# cp -a laravel/public/ html
root@zetawiki:/var/www# ll html
root@zetawiki:/var/www# ll html
total 32
total 32
40번째 줄: 42번째 줄:
-rw-r--r--  1 root root  24 May 18 21:50 robots.txt
-rw-r--r--  1 root root  24 May 18 21:50 robots.txt
-rw-r--r--  1 root root  914 May 18 21:50 web.config
-rw-r--r--  1 root root  914 May 18 21:50 web.config
</source>
</syntaxhighlight>
<source lang='console'>
<syntaxhighlight lang='console'>
root@zetawiki:/var/www# vi html/index.php
root@zetawiki:/var/www# vi html/index.php
</source>
</syntaxhighlight>
<source lang='php'>
<syntaxhighlight lang='php'>
#require __DIR__.'/../bootstrap/autoload.php';
#require __DIR__.'/../vendor/autoload.php';
require __DIR__.'/../lara/bootstrap/autoload.php';
require __DIR__.'/../laravel/vendor/autoload.php';
... (생략)
... (생략)
#$app = require_once __DIR__.'/../bootstrap/app.php';
#$app = require_once __DIR__.'/../bootstrap/app.php';
$app = require_once __DIR__.'/../lara/bootstrap/app.php';
$app = require_once __DIR__.'/../laravel/bootstrap/app.php';
</source>
</syntaxhighlight>


==저장소 퍼미션 조정==
==저장소 퍼미션 조정==
* 아파치가 해당 폴더에 접근하여 파일을 쓸 수 있게 해준다.
* 아파치가 해당 폴더에 접근하여 파일을 쓸 수 있게 해준다.
<source lang='console'>
<syntaxhighlight lang='console'>
root@zetawiki:/var/www# chown -R www-data:www-data lara/bootstrap/cache
root@zetawiki:/var/www# cd laravel
root@zetawiki:/var/www# chown -R www-data:www-data lara/storage
root@zetawiki:/var/www/laravel# chown -R www-data. bootstrap/cache
root@zetawiki:/var/www#  
root@zetawiki:/var/www/laravel# chown -R www-data. storage
</source>
root@zetawiki:/var/www/laravel#  
</syntaxhighlight>


==브라우저 접속 확인==
==브라우저 접속 확인==
* http://서버주소 접속하여 잘 되는지 확인
* http://서버주소 접속하여 잘 되는지 확인
:아파치의 웹루트가 /var/www/html 이고,
:index.php에서 상대적인 경로 설정을 잘 했다면 아마 잘 될거다.
==라우트 추가==
<syntaxhighlight lang='console'>
root@zetawiki:/var/www/laravel# php artisan route:list
+--------+----------+----------+------+---------+--------------+
| Domain | Method  | URI      | Name | Action  | Middleware  |
+--------+----------+----------+------+---------+--------------+
|        | GET|HEAD | /        |      | Closure | web          |
|        | GET|HEAD | api/user |      | Closure | api,auth:api |
+--------+----------+----------+------+---------+--------------+
</syntaxhighlight>
* web.php 에 내용 추가
<syntaxhighlight lang='console'>
root@zetawiki:/var/www/laravel# vi routes/web.php
</syntaxhighlight>
<syntaxhighlight lang='php' highlight='6-8'>
... (생략)
Route::get('/', function () {
    return view('welcome');
});
Route::get('foo', function () {
    return 'Hello World';
});
</syntaxhighlight>
<syntaxhighlight lang='console'>
root@zetawiki:/var/www/laravel# php artisan route:list
+--------+----------+----------+------+---------+--------------+
| Domain | Method  | URI      | Name | Action  | Middleware  |
+--------+----------+----------+------+---------+--------------+
|        | GET|HEAD | /        |      | Closure | web          |
|        | GET|HEAD | api/user |      | Closure | api,auth:api |
|        | GET|HEAD | foo      |      | Closure | web          |
+--------+----------+----------+------+---------+--------------+
</syntaxhighlight>
==브라우저 접속 확인 2==
* http://서버주소/foo 접속하여 'Hello World' 출력되는지 확인
:mod_rewrite가 활성화되어 있다면 잘 될거다.


==같이 보기==
==같이 보기==
* [[라라벨 퀵스타트]]
* [[라라벨 퀵스타트]]
* [[Composer 라라벨 프로젝트 생성]]
* [[Composer 라라벨 프로젝트 생성]]
* [[라라벨5 기본 페이지]]


==참고 자료==
==참고==
* https://laravel.com/docs/5.4
* https://laravel.com/docs/5.4


[[분류: Laravel]]
[[분류: Laravel]]

2020년 11월 2일 (월) 00:56 기준 최신판

라라벨 시작하기
라라벨 튜토리얼
라라벨 설치하기

1 사전작업[ | ]

2 프로젝트 생성[ | ]

  • 여기서는 프로젝트명을 laravel로 하였음
root@zetawiki:/var/www# composer create-project --prefer-dist laravel/laravel laravel
Installing laravel/laravel (v5.4.23)
  - Installing laravel/laravel (v5.4.23): Downloading (100%)         
Created project in laravel
... (생략)
Generating optimized class loader
The compiled services file has been removed.
> php artisan key:generate
Application key [base64:aXZr5Hnp95VffB6hj8YXmvMfogigLl0RnNC4FiM7o4o=] set successfully.

3 웹루트 연결[ | ]

  • 기존 웹루트 /var/www/html을 다른 이름(html_default)으로 보존
  • laravel/public을 /var/www/html으로 복제
root@zetawiki:/var/www# mv html/ html_default
root@zetawiki:/var/www# cp -a laravel/public/ html
root@zetawiki:/var/www# ll html
total 32
drwxr-xr-x  4 root root 4096 May 18 21:50 ./
drwxr-xr-x 11 root root 4096 May 18 21:53 ../
drwxr-xr-x  2 root root 4096 May 18 21:50 css/
-rw-r--r--  1 root root    0 May 18 21:50 favicon.ico
-rw-r--r--  1 root root  553 May 18 21:50 .htaccess
-rw-r--r--  1 root root 1783 May 18 21:50 index.php
drwxr-xr-x  2 root root 4096 May 18 21:50 js/
-rw-r--r--  1 root root   24 May 18 21:50 robots.txt
-rw-r--r--  1 root root  914 May 18 21:50 web.config
root@zetawiki:/var/www# vi html/index.php
#require __DIR__.'/../vendor/autoload.php';
require __DIR__.'/../laravel/vendor/autoload.php';
... (생략)
#$app = require_once __DIR__.'/../bootstrap/app.php';
$app = require_once __DIR__.'/../laravel/bootstrap/app.php';

4 저장소 퍼미션 조정[ | ]

  • 아파치가 해당 폴더에 접근하여 파일을 쓸 수 있게 해준다.
root@zetawiki:/var/www# cd laravel
root@zetawiki:/var/www/laravel# chown -R www-data. bootstrap/cache
root@zetawiki:/var/www/laravel# chown -R www-data. storage
root@zetawiki:/var/www/laravel#

5 브라우저 접속 확인[ | ]

아파치의 웹루트가 /var/www/html 이고,
index.php에서 상대적인 경로 설정을 잘 했다면 아마 잘 될거다.

6 라우트 추가[ | ]

root@zetawiki:/var/www/laravel# php artisan route:list
+--------+----------+----------+------+---------+--------------+
| Domain | Method   | URI      | Name | Action  | Middleware   |
+--------+----------+----------+------+---------+--------------+
|        | GET|HEAD | /        |      | Closure | web          |
|        | GET|HEAD | api/user |      | Closure | api,auth:api |
+--------+----------+----------+------+---------+--------------+
  • web.php 에 내용 추가
root@zetawiki:/var/www/laravel# vi routes/web.php
... (생략)
Route::get('/', function () {
    return view('welcome');
});

Route::get('foo', function () {
    return 'Hello World';
});
root@zetawiki:/var/www/laravel# php artisan route:list
+--------+----------+----------+------+---------+--------------+
| Domain | Method   | URI      | Name | Action  | Middleware   |
+--------+----------+----------+------+---------+--------------+
|        | GET|HEAD | /        |      | Closure | web          |
|        | GET|HEAD | api/user |      | Closure | api,auth:api |
|        | GET|HEAD | foo      |      | Closure | web          |
+--------+----------+----------+------+---------+--------------+

7 브라우저 접속 확인 2[ | ]

mod_rewrite가 활성화되어 있다면 잘 될거다.

8 같이 보기[ | ]

9 참고[ | ]

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}