본문 바로가기

리눅스

우분투에서 Nginx, PHP, Laravel을 설치하는 방법

반응형

우분투 24.04 환경에서 Nginx, PHP, 그리고 최신 버전의 Laravel을 설치하는 방법

테스트 환경

$ lsb_release -d
Description:	Ubuntu 24.04.1 LTS

1. 시스템 업데이트

시스템 패키지 목록을 업데이트합니다.

sudo apt update

2. Nginx 설치

우분투의 기본 저장소에는 최신 버전의 Nginx가 포함되지 않을 수 있으므로 공식 Nginx 저장소를 추가하여 최신 버전을 설치합니다.

# 필수 패키지 설치
sudo apt install -y curl gnupg2 ca-certificates lsb-release ubuntu-keyring

# Nginx 공식 GPG 키 추가
curl -fsSL https://nginx.org/keys/nginx_signing.key | gpg --dearmor \
  | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null

# Nginx 저장소 추가
echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] \
http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" \
  | sudo tee /etc/apt/sources.list.d/nginx.list

# 패키지 목록 업데이트 및 Nginx 설치
sudo apt update
sudo apt install -y nginx=1.26.*

Nginx 버전 확인

nginx -v
nginx version: nginx/1.26.2

3. SQLite 설치

sudo apt install -y sqlite3

SQLite 버전 확인

sqlite3 --version
3.45.1 2024-01-30 16:01:20 e876e51a0ed5c5b3126f52e532044363a014bc594cfefa87ffb5b82257ccalt1 (64-bit)

4. PHP 설치

PHP 8.3은 Ubuntu 24.04의 기본 저장소에 포함되어 있을 수 있습니다. 만약 포함되어 있지 않다면 외부 저장소를 추가하여 설치할 수 있습니다.

# 필수 패키지 설치
sudo apt install -y software-properties-common

# PHP 저장소 추가
sudo add-apt-repository -y ppa:ondrej/php

# 패키지 목록 업데이트
sudo apt update

# PHP 8.3 및 필요한 확장 모듈 설치
sudo apt install -y php8.3 php8.3-fpm php8.3-mysql php8.3-xml php8.3-mbstring php8.3-curl php8.3-zip

PHP SQLite 확장 기능 설치

sudo apt install -y php8.3-sqlite3

PHP 버전 확인

php -v
PHP 8.3.16 (cli) (built: Jan 19 2025 13:45:59) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.3.16, Copyright (c) Zend Technologies
    with Zend OPcache v8.3.16, Copyright (c), by Zend Technologies

5. Composer 설치

Laravel을 설치하기 위해 Composer를 설치합니다.

# Composer 설치
curl -fsSL https://getcomposer.org/installer | php

# Composer를 전역으로 사용하기 위해 이동
sudo mv composer.phar /usr/local/bin/composer

Composer 버전 확인

composer -V
Composer version 2.8.5 2025-01-21 15:23:40
PHP version 8.3.16 (/usr/bin/php8.3)
Run the "diagnose" command to get more detailed diagnostics output.

6. Laravel 프로젝트 생성

Laravel 프로젝트를 설정할 디렉토리로 이동하여 최신 버전의 Laravel을 설치합니다.

cd /usr/share/nginx

Laravel 프로젝트 생성

composer create-project --prefer-dist laravel/laravel my-laravel-app

프로젝트 디렉토리의 소유권 변경

sudo chown -R www-data:www-data my-laravel-app

프로젝트 디렉토리로 이동

cd my-laravel-app

.env 파일 생성

cp .env.example .env

애플리케이션 키 생성

php artisan key:generate

7. Nginx 설정

Nginx를 Laravel과 연동하기 위해 서버 블록을 설정합니다.

sudo vim /etc/nginx/conf.d/default.conf
더보기

---

server {
    listen 80;
    server_name _;

    access_log /var/log/nginx/laravel-access.log main;
    error_log /var/log/nginx/laravel-error.log;

    root /usr/share/nginx/my-laravel-app/public;
    index index.php index.html index.htm;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    error_page 404 /404.html;

    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    location ~ \.php$ {
	fastcgi_pass unix:/run/php/php8.3-fpm.sock;
	fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
        include fastcgi_params;
    }

    location ~ /\.ht {
        deny  all;
    }
}

---

Nginx 설정 테스트

sudo nginx -t

Nginx 재시작

sudo systemctl restart nginx

8. Laravel 디렉토리 권한 설정

Laravel의 스토리지 및 캐시 디렉토리에 대한 쓰기 권한을 설정합니다.

sudo chown -R www-data:www-data /usr/share/nginx/my-laravel-app
sudo chmod -R 755 /usr/share/nginx/my-laravel-app
sudo chmod -R 775 /usr/share/nginx/my-laravel-app/storage
sudo chmod -R 775 /usr/share/nginx/my-laravel-app/bootstrap/cache

SQLite 데이터베이스 파일 생성

touch /usr/share/nginx/my-laravel-app/database/database.sqlite
sudo chown -R www-data:www-data /usr/share/nginx/my-laravel-app/database/database.sqlite
sudo chmod -R 755 /usr/share/nginx/my-laravel-app/database/database.sqlite

캐시 초기화

php artisan config:cache
php artisan cache:clear

마이그레이션 실행

php artisan migrate

nginx, php-fpm 재시작

sudo systemctl restart nginx php8.3-fpm

9. 브라우저에서 확인

브라우저에서 http://your_domain_or_ip로 접속해 Laravel이 정상적으로 실행되는지 확인합니다.

Laravel

 

우분투 24.04 환경에서 Nginx, PHP, 그리고 Laravel이 성공적으로 설치되었습니다.

 

728x90
반응형