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
- Document Root:
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 브라우저 확인 🌐
- https://laravel.shop2world.info 접속
- Laravel 기본 페이지 표시 확인
- HTTPS 정상 작동 확인
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 확인
중요 디렉토리 권한 설정 확인
최근대화