본문 바로가기
리눅스

눈물 나는 라라벨 우분투 설치 성공기

by 개발하는 늑대 2025. 9. 1.
728x90

728x90

 

눈물 나는 라라벨 우분투 설치 성공기 😭

"개발자의 눈물 한 방울 한 방울이 모여 완성되는 Laravel 설치 대서사시"
- 수많은 삽질과 구글링의 결과물을 여러분께 바칩니다 -
1

우분투 환경 설정 및 아파치 설치 고통지수 ⭐⭐

모든 여행은 첫 발걸음부터! 웹 서버의 기본인 아파치부터 설치해봅시다. 이 단계는 비교적 순탄합니다... 아직까지는 말이죠.

sudo apt update
sudo apt install apache2 php libapache2-mod-php 💻
✅ 성공: 여기서 에러가 나면... 아직 괜찮습니다. 더 험난한 길이 기다리고 있거든요! 🙃

 

2

PHP 확장 및 컴포저 설치 고통지수 ⭐⭐⭐

라라벨의 까다로운 입맛을 만족시키기 위해서는 PHP 확장들이 필요합니다. 컴포저는... 음, 이것 없으면 라라벨은 꿈도 꿀 수 없죠!

sudo apt install php-cli php-mbstring php-xml php-zip php-mysql php-sqlite3
sudo apt install composer 💻
⚠️ 주의: 만약 "package not found" 에러가 난다면? 축하합니다! 첫 번째 삽질의 시작입니다. apt update를 다시 해보거나 PHP 버전을 확인해보세요.
3

라라벨 프로젝트 생성 고통지수 ⭐⭐

드디어 라라벨을 만날 시간! 홈 디렉터리에서 안전하게 프로젝트를 생성합니다. 권한 문제를 피하는 현명한 선택이죠!

cd ~
composer create-project laravel/laravel myproject 💻

☕ 이 명령어는 꽤 시간이 걸립니다. 커피 한 잔 타서 마시고 오세요. 아니면 인생을 돌아보는 시간을 가져도 좋고요.

4

아파치 가상 호스트 설정 고통지수 ⭐⭐⭐⭐

여기서부터 진짜 시작입니다! 가상 호스트 설정은 많은 개발자들이 무덤을 파는 곳이죠. 하지만 우리는 해낼 수 있어요!

sudo nano /etc/apache2/sites-available/myproject.conf 💻

그리고 이 설정을 입력해두세요 (오타 하나면 망합니다!):

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ServerName myproject.local
    ServerAlias www.myproject.local
    DocumentRoot /var/www/myproject/public

    <Directory /var/www/myproject/public>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/myproject_error.log
    CustomLog ${APACHE_LOG_DIR}/myproject_access.log combined
</VirtualHost> 💻
5

프로젝트 배포 및 권한 설정 고통지수 ⭐⭐⭐⭐⭐

이제 진짜 지옥의 시작입니다! 권한 설정은 리눅스의 가장 잔인한 부분 중 하나죠. 한 글자라도 틀리면... 😱

sudo mv myproject /var/www/ 💻
⚠️ 주의: 여기서부터는 매우 중요합니다! www-data가 파일에 접근할 수 있도록 소유권을 바꿔야 해요.
sudo chown -R www-data:www-data /var/www/myproject
sudo find /var/www/myproject -type d -exec chmod 775 {} \;
sudo find /var/www/myproject -type f -exec chmod 644 {} \;
sudo chmod -R 775 /var/www/myproject/storage /var/www/myproject/bootstrap/cache 💻

🔥 이 명령어들을 실행하면서 "제발 에러 나지 마라"고 기도했다면 당신은 정상적인 개발자입니다!

6

가상 호스트 활성화 및 호스트 파일 설정 고통지수 ⭐⭐⭐

설정한 가상 호스트를 활성화하고 기본 사이트는 비활성화합니다. 그리고 브라우저가 우리 사이트를 찾을 수 있도록 도와줍시다!

sudo a2dissite 000-default.conf
sudo a2ensite myproject.conf
sudo systemctl daemon-reload
sudo systemctl restart apache2 💻

이제 hosts 파일을 수정해서 myproject.local이 우리 서버를 가리키도록 합니다:

sudo nano /etc/hosts 💻

파일 맨 아래에 이 줄들을 추가하세요:

127.0.0.1       myproject.local
127.0.0.1       www.myproject.local 💻
7

오류 해결: Composer 및 .env 파일 설정 고통지수 ⭐⭐⭐⭐⭐

🚨 드디어 왔습니다! "Internal Server Error 500" - 모든 개발자가 한 번쯤은 만나는 그 악명 높은 에러!

⚠️ 주의: 당황하지 마세요! 이 에러는 보통 vendor 디렉터리나 .env 파일 문제입니다. 침착하게 해결해봅시다.

1단계: Composer 종속성 설치

cd /var/www/myproject
sudo composer install 💻

2단계: .env 파일 및 APP_KEY 생성

sudo cp .env.example .env
sudo php artisan key:generate 💻

💡 APP_KEY가 없으면 Laravel은 암호화를 할 수 없어서 멘붕에 빠져요. 꼭 생성해주세요!

8

오류 해결: 데이터베이스 설정 고통지수 ⭐⭐⭐⭐

마지막 관문입니다! Laravel은 기본적으로 SQLite를 사용하는데, 파일이 없다면서 투덜거릴 거예요.

1단계: 데이터베이스 파일 생성

sudo touch database/database.sqlite 💻

2단계: 데이터베이스 권한 설정

sudo chown -R www-data:www-data /var/www/myproject/database 💻

3단계: 마이그레이션 실행

sudo php artisan migrate 💻
✅ 성공: 이런 멋진 출력이 보인다면 축하합니다! 거의 다 왔어요!

INFO Preparing database.
Creating migration table ................................................ 18.58ms DONE
INFO Running migrations.
0001_01_01_000000_create_users_table .................................... 52.99ms DONE
0001_01_01_000001_create_cache_table .................................... 14.81ms DONE
0001_01_01_000002_create_jobs_table ..................................... 48.93ms DONE

✨ Laravel 11의 최신 마이그레이션 테이블들이 성공적으로 생성되었습니다!

🎉 드디어 완성! 🎊
✅ 성공: 이제 웹 브라우저에서 myproject.local에 접속해보세요!
Laravel의 아름다운 초기 페이지가 여러분을 맞이할 것입니다!

🚀✨🎯
수고하셨습니다! 당신은 이제 Laravel 마스터입니다!

🎓 졸업 메시지

이 긴 여정을 함께 해주셔서 감사합니다! 분명 몇 번은 포기하고 싶었을 거예요. 하지만 여기까지 오신 당신은 진정한 개발자입니다!

"모든 에러는 성장의 발판이다" 

"Talk is cheap. Show me the code." - Linus Torvalds

🏆🥇👑
728x90