728x90
우분투 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이 정상적으로 실행되는지 확인합니다.
우분투 24.04 환경에서 Nginx, PHP, 그리고 Laravel이 성공적으로 설치되었습니다.
728x90