반응형
우분투에 Laravel을 설치하고 HelloWorld 프로젝트를 생성하여 웹 브라우저에서 테스트하는 방법
nginx, php-fpm 설치
curl -fsSL https://raw.githubusercontent.com/anti1346/codes/main/python/nginx-phpfpm/install_all_in_one_v2.py | bash
$ nginx -v
nginx version: nginx/1.26.0
$ php-fpm8.1 -v
PHP 8.1.28 (fpm-fcgi) (built: Apr 22 2024 09:45:11)
Copyright (c) The PHP Group
Zend Engine v4.1.28, Copyright (c) Zend Technologies
with Zend OPcache v8.1.28, Copyright (c), by Zend Technologies
$ composer --version
Composer 2.2.6 2022-02-04 17:00:38
Composer 설치
더보기
---
Composer는 PHP 패키지 관리자입니다. Laravel 설치에 필요합니다.
cd ~
curl -sS https://getcomposer.org/installer -o composer-setup.php
sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer
composer --version
---
Laravel 설치
Composer를 사용하여 Laravel을 설치합니다.
cd /usr/share/nginx/html
sudo composer create-project --prefer-dist laravel/laravel helloworld
nginx 설정
nginx 웹 서버를 설정하여 Laravel 프로젝트를 호스팅합니다.
vim /etc/nginx/conf.d/default.conf
server {
listen 80;
server_name _;
root /usr/share/nginx/html/helloworld/public;
index index.php index.html;
access_log /var/log/nginx/default-access.log main;
error_log /var/log/nginx/default-error.log;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+?\.php)(/.*)$;
fastcgi_pass unix:/run/php/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
}
sudo systemctl restart nginx
Laravel 프로젝트 설정
디렉토리 권한 설정
- 웹 서버가 Laravel 프로젝트 디렉토리에 쓰기 권한을 가지도록 설정합니다.
sudo chown -R www-data:www-data /usr/share/nginx/html/helloworld
sudo chmod -R 775 /usr/share/nginx/html/helloworld/storage
sudo chmod -R 775 /usr/share/nginx/html/helloworld/bootstrap/cache
.env 파일 설정
- Laravel 프로젝트 디렉토리에서 .env 파일을 설정합니다. .env 파일을 열어 필요한 설정을 확인 및 수정합니다.
cd /usr/share/nginx/html/helloworld
.env 파일에서 다음과 같은 설정을 확인합니다.
cat .env | egrep '^APP_NAME|^APP_ENV|^APP_KEY|^APP_DEBUG|APP_URL'
APP_NAME=Laravel
APP_ENV=local
APP_KEY=base64:8rwBn1f8HibZHD/jQtPYXr7mile3rNl2ujgiDb/bggE=
APP_DEBUG=true
APP_URL=http://localhost
Laravel의 애플리케이션 키를 생성합니다.
php artisan key:generate
$ php artisan key:generate
INFO Application key set successfully.
728x90
Laravel 웹 브라우저 테스트
- 웹 브라우저에서 http://localhost을 열어 Laravel 애플리케이션이 제대로 동작하는지 확인합니다. Laravel의 기본 페이지가 보이면 성공입니다.
http://localhost
HelloWorld 라우트 추가
- Laravel 프로젝트 디렉토리에서 routes/web.php 파일을 수정합니다.
vim routes/web.php
<?php
use Illuminate\Support\Facades\Route;
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider and all of them will
| be assigned to the "web" middleware group. Make something great!
|
*/
Route::get('/', function () {
return view('welcome');
});
Route::get('/hello', function () {
return 'Hello, World!';
});
Route::get('/helloworld', function () {
return view('helloworld');
});
뷰 파일 생성
- resources/views/helloworld.blade.php 뷰 파일을 생성합니다.
vim resources/views/helloworld.blade.php
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Hello World</title>
</head>
<body>
<div class="container">
<h1>Hello World!!</h1>
<?php
echo "<p>Hello World!!</p>";
echo "<div class='datetime'>";
date_default_timezone_set('Asia/Seoul');
$formatted = date('Y-m-d H:i:s T');
echo "<p>The date and time is $formatted.</p>";
echo "</div>";
?>
</div>
</body>
</html>
브라우저 테스트
/ URL은 기본 환영 페이지를 렌더링합니다.
http://localhost/hello
/hello URL은 단순히 'Hello, World!' 문자열을 반환합니다.
http://localhost/hello
/helloworld URL은 resources/views/helloworld.blade.php 뷰 파일을 렌더링하여 HTML 콘텐츠를 반환합니다.
http://localhost/helloworld
우분투에 Laravel을 설치하고 HelloWorld 프로젝트를 생성하여 웹 브라우저에서 테스트하는 방법입니다.
728x90
반응형
'리눅스' 카테고리의 다른 글
apt-cacher-ng 컨테이너를 Docker Compose로 설정하는 방법 (0) | 2024.05.27 |
---|---|
톰캣 인스턴스 간의 멀티캐스트 기반 세션 클러스터링을 설정하는 방법 (0) | 2024.05.21 |
Redis를 통한 세션 클러스터링을 구현하는 방법 (0) | 2024.05.20 |
Tomcat 세션 클러스터링이란 무엇일까요? (0) | 2024.05.20 |
Laravel 애플리케이션의 요청에 대한 로그를 파일에 기록하는 방법 (0) | 2024.05.20 |