본문 바로가기

리눅스

우분투에 Laravel을 설치하고 HelloWorld 프로젝트를 생성하여 웹 브라우저에서 테스트하는 방법

반응형

우분투에 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

laravel

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

Hello

/helloworld URL은 resources/views/helloworld.blade.php 뷰 파일을 렌더링하여 HTML 콘텐츠를 반환합니다.

http://localhost/helloworld

HelloWorld

 

우분투에 Laravel을 설치하고 HelloWorld 프로젝트를 생성하여 웹 브라우저에서 테스트하는 방법입니다.

 

728x90
반응형