개발 환경 | 도구/서버 | 인프라 | 배포 | 운영

[Laravel] 우분투 서버에 라라벨 및 의존성 설치 예제

알쓸신개 2024. 11. 8. 16:02

Laravel 서버 구축 (Ubuntu 기반)

1. Ubuntu 시스템 준비

sudo apt update
sudo apt upgrade -y
sudo apt install -y curl git unzip

2. PHP 및 확장 모듈 설치

sudo apt install -y php php-cli php-fpm php-json php-common \
php-mysql php-zip php-gd php-mbstring php-curl php-xml \
php-pear php-bcmath

3. MySQL 설치 및 설정

# MySQL 설치
sudo apt update
sudo apt install -y mysql-server

# 보안 설정
sudo mysql_secure_installation

# MySQL 접속 및 계정/DB 생성
sudo mysql
CREATE DATABASE your_db_name;
CREATE USER 'your_user'@'localhost' IDENTIFIED BY 'your_password';
GRANT ALL PRIVILEGES ON your_db_name.* TO 'your_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;

4. Apache 웹 서버 설치 및 설정

# Apache 설치
sudo apt install apache2

# Apache 실행 및 부팅 시 자동 실행 설정
sudo systemctl start apache2
sudo systemctl enable apache2

# 방화벽 예외 등록
sudo ufw allow 'Apache'

# 상태 확인
sudo systemctl status apache2

4-1. Apache 가상 호스트 설정

sudo nano /etc/apache2/sites-available/laravel.conf
<VirtualHost *:80>
    ServerName your_domain_or_ip
    DocumentRoot /var/www/your_project_name/public

    <Directory /var/www/your_project_name>
        AllowOverride All
        Require all granted
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
# Laravel 가상 호스트 활성화 및 Apache 재시작
sudo a2ensite laravel.conf
sudo a2enmod rewrite
sudo systemctl reload apache2

5. Composer 설치 (PHP 패키지 매니저)

curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
sudo chmod +x /usr/local/bin/composer

6. Laravel 프로젝트 배포

6-1. 신규 프로젝트 생성

cd /var/www
composer create-project --prefer-dist laravel/laravel your_project_name

6-2. 혹은 기존 프로젝트 업로드

# FTP/SFTP 등을 통해 /var/www/html/ 또는 /var/www/ 경로에 업로드
# 권한 설정
sudo chown -R www-data:www-data /var/www/your_project_name
sudo chmod -R 755 /var/www/your_project_name

7. Node.js, NPM 설치 (프론트 빌드 등 사용 시)

curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -
sudo apt install -y nodejs

8. Puppeteer 및 Chrome 설치 (크롤링/스크린샷 등 필요 시)

# Chrome 설치
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
sudo apt install -y ./google-chrome-stable_current_amd64.deb

# Puppeteer 설치
mkdir puppeteer-test && cd puppeteer-test
npm init -y
npm install puppeteer

9. 결론

  • Laravel .env 설정 완료 여부 확인 (DB_*, APP_KEY, 등)
  • php artisan key:generate
  • php artisan migrate (필요 시)
  • /storage 폴더 권한 설정 확인
sudo chmod -R 775 storage bootstrap/cache
sudo chown -R www-data:www-data storage bootstrap/cache