Laravel 8 설치 가이드 (PHP 7.3.25)

소요 시간 ⏱️ : 10분
*chroot 환경의 샵투월드 웹서비스 이용 고객은 아래의 터미날 기반 작업은 별도 관리자 요청 필요합니다.

기본 지식 📚 : Plesk 접속 방법, 간단한 Nano 에디터 사용법. (Plesk의 File Manger도 가능), SSH 접속 방법(Putty)

1. 사전 준비 🛠️

1.1 서브도메인 생성 🌐(서브도메인에 설치하는 경우)

  • Plesk에서 서브도메인 생성 (예: laravel.shop2world.info)
  • Document Root는 나중에 설정

1.2 PHP 설정 ⚙️

  • Plesk > PHP Settings
    • PHP 버전: 7.3.25
    • Handler: FastCGI application served by Apache

1.3 SSH 접속 💻

  • Putty와 같은 SSH 클라이언트를 사용하여 서버에 접속

2. Laravel 설치 🚀

2.1 임시 디렉토리 생성 📂

임시 디렉토리 사용 이유: Composer의 create-project 명령어는 설치 대상 디렉토리가 완전히 비어있어야 합니다.

cd /var/www/vhosts/shop2world.info
rm -rf fresh_laravel
mkdir fresh_laravel
cd fresh_laravel

2.2 Composer 및 Laravel 설치🛒

/opt/plesk/php/7.3/bin/php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
/opt/plesk/php/7.3/bin/php composer-setup.php
/opt/plesk/php/7.3/bin/php composer.phar create-project --prefer-dist laravel/laravel:^8.0 laravel_project

2.3 파일 이동📦

mv laravel_project/* ../laravel.shop2world.info/
mv laravel_project/.* ../laravel.shop2world.info/ 2>/dev/null
cd ../laravel.shop2world.info

3. 환경 설정 ⚙️

3.1 .env 파일 설정 📝

# .env 파일 복사
cp .env.example .env

# 애플리케이션 키 생성
/opt/plesk/php/7.3/bin/php artisan key:generate

# .env 파일 수정 .nano 또는 plesk File Manager 사용 가능
nano .env
# 필수 설정
APP_NAME=Laravel
APP_ENV=production        # 중요: production으로 설정
APP_DEBUG=false          # 중요: 보안을 위해 false로 설정
APP_URL=https://laravel.shop2world.info
APP_KEY=[자동생성됨]     # key:generate로 자동 생성됨

# 데이터베이스 설정
DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=your_DB_DATABASE
DB_USERNAME=your_DB_USERNAME
DB_PASSWORD=your_password

# 추가 설정
LOG_CHANNEL=stack
LOG_LEVEL=error          # production 환경에서는 error로 설정

# 세션 및 캐시 설정
BROADCAST_DRIVER=log
CACHE_DRIVER=file
FILESYSTEM_DRIVER=local
QUEUE_CONNECTION=sync
SESSION_DRIVER=file
SESSION_LIFETIME=120

3.2 AppServiceProvider 수정 🛠️

nano app/Providers/AppServiceProvider.php
<?php
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
use Illuminate\Support\Facades\Schema;

class AppServiceProvider extends ServiceProvider
{
    public function boot()
    {
        Schema::defaultStringLength(191);
    }
}

3.3 .htaccess 설정 🔒

nano public/.htaccess
<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews -Indexes
    </IfModule>

    RewriteEngine On

    # Handle Authorization Header
    RewriteCond %{HTTP:Authorization} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

    # Redirect Trailing Slashes...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} (.+)/$
    RewriteRule ^ %1 [L,R=301]

    # Send Requests To Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</IfModule>

4. 최종 설정 🔧

4.1 권한 설정 🛡️

# 1. .env 파일 보안 설정만 적용
chmod 600 .env

# 2. 권한 확인 (필요시)
ls -la storage/
ls -la bootstrap/cache/

4.2 Document Root 설정 🌐

  • Plesk > Hosting Settings
    • Document Root: /public
laravel.shop2world.info/public

4.3 캐시 클리어 및 마이그레이션 🧹

/opt/plesk/php/7.3/bin/php artisan config:clear
/opt/plesk/php/7.3/bin/php artisan cache:clear
/opt/plesk/php/7.3/bin/php artisan view:clear
/opt/plesk/php/7.3/bin/php artisan route:clear
/opt/plesk/php/7.3/bin/php artisan migrate --force

4.4 임시 디렉토리 정리 🗑️

cd ..
rm -rf fresh_laravel

5. 설치 확인 ✅

5.1 브라우저 확인 🌐

5.2 오류 발생 시 확인사항 🔍

- storage/logs/laravel.log 확인
  tail -f storage/logs/laravel.log
- PHP 버전 확인
  /opt/plesk/php/7.3/bin/php -v
- 권한 설정 확인
  ls -la storage/
  ls -la bootstrap/cache/

보안 관련 주의사항 🚨

.env 파일의 권한 설정 (600)

chmod 600 .env

storage 디렉토리 외부 접근 제한

APP_DEBUG=false 확인

중요 디렉토리 권한 설정 확인