php를 사용한 웹 어플리케이션을 만드는데에는 먼저 환경세팅이 필요하다.
이때 php를 사용할 환경을 구성하는 방법으론 크게 세가지가 있다.
1. xampp를 사용해 apach 웹 서버와 mysql까지 한번에 다운로드 받는 방법
2. brew를 통해 php와 mysql, composer를 다운로드 받는 방법 + php 내장 웹서버 사용
1번을 이용해 간단한 laravel 따라하기 프로젝트를 진행해 봤으므로 이번에는 로컬환경에서 다운로드 하여 환경을 구성해 보고자 한다. 참고로 xampp 방법으로 진행 할 경우 아래 팁 확인!
+) m1칩 기준 xampp 다운로드
xampp를 검색해서 바로 다운로드 하면 설치되지 않는다.. 바로 휴지통으로 이동된다. 그 원인을 알순 없지만 아마도 xampp 에서 기본으로 최신 기기에 맞는 버전만 다운로드 되도록 되어있기 때문이 아닌가 싶다. 그래서 아래 링크로 이동하여 다운로드를 진행해준다.
https://sourceforge.net/projects/xampp/files/XAMPP%20Mac%20OS%20X/7.2.34/
XAMPP - Browse /XAMPP Mac OS X/7.2.34 at SourceForge.net
Ganttic is a resource management software that excels in high-level resource planning and managing multiple project portfolios at once. In Ganttic, anything and anyone you need to schedule can be a resource – people, rooms, machinery – you name it! Th
sourceforge.net
설치를 한 후로는 apach 웹 서버를 실행시킬 수 있고, 해당 서버가 실행중이어야 php 서버를 정상적으로 이용 가능하다.
그 이유는 클라이언트로부터 html이 아닌 php 파일요청이 들어올 경우 apach에서 php 서버로 호출해주기 때문이다.
1. brew 설치
php와 mysql, 그리고 composer는 모두 brew 환경에서 설치해 줄 것이므로 먼저 brew를 설치해 준다.
Homebrew
The Missing Package Manager for macOS (or Linux).
brew.sh
참고로 램 8gb 기준.. 한시간 정도 걸리고 팬 소음도 매우 컸다 ㅎㅎ..
2. php, mysql, composer 설치
어차피 세개 다 설치해줄꺼기 때문에 한번에 명령어를 날려준다.
brew install php mysql composer
이때 이전 프로젝트 따라하기로 이미 mariadb가 설치되어 있었어서 mysql 설치과정에서 다음과 같은 에러가 발생했다.

당황하지않고.. mariadb를 사용할 일이 더이상 없기 때문에 안내된대로 unlink + 삭제 해주고 mysql을 설치해 준다.
brew unlink mariadb
brew install mysql
3. composer를 활용해 laravel 프로젝트 설치하기
python과 django를 이용해본 경험이 있다면 흐름을 이해하는건 큰 어려움이 없을것이라 생각한다.
php의 의존성 관리도구인 composer를 통해 쉽게 laravel 어플리케이션을 생성할 수 있는데 설치하고자 하는 위치에서 아래의 명령어를 입력해준다.
composer create-product larave/laravel {프로젝트명}
나의경의 개발 home directory의 MyProjects 라는 폴더 안에서 개인용 프로젝트를 모아두고 관리하고 있기 때문에 MyProjects 위치에서 위의 명령어를 실행해 주었다.

수많은.. 패키지들이 자동으로 주입되고 프로젝트가 생성된다.

+) 특정 버전의 laravel 로 프로젝트 생성하기
만약 생성하고자 하는 프로젝트의 버전을 명시하고 싶다면 위에서 프로젝트 생성 명령어를 다음과 같이 해준다
composer create-project laravel/laravel=8.* {프로젝트명} --prefer-dist
이때 주의할 것은 정확한 laravel 버전을 입력해 주어야 한다는 것이다. 대충 검색해서 8버전때 아무거나 사용했다!

+) 여러개 php 버전 사용하기 feat. brew
laravel은 버전에 따라 지원하는 php 버전이 다르다. 각 상황에 맞게 php 버전도 관리해 주어야 하는데 내가 사용하고자 하는 laravel 버전 8의 경우 php 7.3 ~ 8.1 까지 지원한다고 한다. 현재 내 컴퓨터에는 8.2와 8.3이 설치되어 있으므로 추가로 8.1버전을 설치해 준다
brew install php@8.1
이때 패키지들을 brew 설치하면 좋은점이 나타난다.. 이제 brew list 로 설치된 php 목록을 보면 다음과 같다
php # 8.3.7
php@8.1
php@8.2
참고로 첫번째꺼는 버전명시 없이 설치했더니 이름에서 버전이 안적혀있다~
php@8.2를 제일 처음에 설치하고 이후 최신버전인 8.3.7을 설치해서 사용중이었으나 8.1버전을 다시 설치하였고, 앞으로 사용할 php의 버전을 8.1버전으로 하기 위해 brew 설정을 바꿔주었다.
brew unlink php
brew link php@8.1
먼저 unlink하면 뭔가를 해제했다고 뜬다.

그러면 환경변수에서도 설정을 변경해 주라는 안내문구가 나오고, 그대로 입력하면 된다.

이후 아까와 같이 현재 설정된 php 버전을 확인하면 변경된 것을 볼 수 있다!

+) artisan ?
docker를 이용한 프로젝트 실습에서 명령어를 날릴때 아래와 같이 입력했었다
vendor/bin/sail artisan {명령어}
라라벨 공식문에서에서는 artisan (아티즌) 이 라라벨에 포함된 커맨드라인 인터페이스(CLI)의 이름 이라고 알려준다!
4.php 내장 웹 서버로 서버 연결하기 : php artisan
프로젝트의 홈 디렉토리에서 아래의 명령어를 통해 서버와 연결해 준다.
php artisan serve
그럼 localhost 환경에서 서버가 실행된다.

해당 주소로 접속하면 빈 페이지가 뜰줄 알았지만 생각외로 멀쩡한 페이지가 노출된다!
이는 laravel 프로젝트를 설치하면서 다양한 view 도 생성되었기 때문이다.

laravel 프로젝트에서 route가 기록되는 routes > web.php 파일을 보면 아래와 같은 코드가 작성되어 있다.
<?php
use Illuminate\Support\Facades\Route;
Route::get('/', function () {
return view('welcome');
});
하위 경로 없이 호출하게되면 welcome view를 return 한다는 것! welcome view는 resources > views > welcome.blade.php 에 작성되어 있다.
이를 통해 view의 경로가 resources > views 로 자동 매핑되는것을 알아차릴 수 있었다.

5. docker-compose 로 프로젝트 실행하기 : sail
4번에서 처럼 php 명령어로도 서버를 실행할수 있음에도 왜 docker로 해야할까? 그 이유는 php/laravel 프로젝트를 전체적으로 실행시키기 위해선 db연결도 필요하고, 이 전체적인 서버 연결을 보다 편리하게 하기 위해서이다
docker를 통해 php서버와 mysql 서버를 동시에 띄우고, 내리고 하면 편리하겠다! docker-compose를 통해 웹서버와 db서버를 동시에 띄울것이므로 docker-compose를 사용한다고 한다.
1) docker-desktop
먼저 docker-compose를 사용하기 위해서는 docker-desktop 어플리케이션 다운로드가 필요하다. 인터넷에서 검색 후 다운로드 해 주고, 아이콘을 클릭하여 running 모드로 해준다!

이후 laravel 프로젝트 내에서 docker 실행을 진행해 준다.
2) sail 의존성 추가해주기
Laravel의 기본 Docker 개발 환경과 상호 작용하기 위한 간단한 명령줄 인터페이스이다. 이를 프로젝트에서 사용하려면 먼저 composer 로 의존성을 추가해 주어야 한다.
composer require laravel/sail --dev
그러면 몇가지 폴더가 생성되는걸 확인할 수 있다.

이후로 sail 을 설치해 주는데 이때 어떤 db를 사용할 것인지 선택지가 뜬다. mysql을 사용하도록 결정!

영상과 캡쳐본에서도 보다싶이 적용되는데 몇초 걸린다.. 이건아마도 컴퓨터 사양탓인듯 하다 ㅎㅎ
설치가 완료되면 명령어를 통해 실행해보라고 안내가 나오면서, 선택한 db를 실행해보라고도 뜬다!

3) docker로 프로젝트 실행하기
먼저 docker로 프로젝트를 실행해보도록 한다. 그 전에 언제 ./vendor/bin/sail
을 다 치랴.. 진작에 alias로 해당 단어들을 sail 로 저장해 두었다 ㅎㅎ 그리고 도커 실행!
# 단축키 저장
vi ~/.zshrc
alias sail="./vendor/bin/sail"
# 변경된 환경변수 바로 적용
source ~/.zshrc
# docker 로컬에서 실행
sail up
# docker 백그라운드에서 실행
sail up -d

그러면 80포트로 서버가 실행되었다고 확인된다. 하지만 주의할 것은 아직 db세팅을 안해주었다는것! 실제로 해당 서버페이지를 접속하면 서버 연결을 확인할 수 있다.

오른쪽 아래에 사용중인 php와 laravel 버전을 확인할 수 있다.
+) laravel 11 버전 docker compose 실행시 db 오류
laravel 11버전이었을 때 sail 설치해주고 바로 실행했을때 다음과 같은 에러 페이지가 노출된다.

일단 서버가 실행되는것은 확인했고, 정상적인 실행을 위해 db migration을 적용해 테이블이 생성되도록 해준다.
그럼 laravel 프로젝트 설치 중 기본으로 추가된 패키지들에서 지원하는 세가지 테이블이 생성된다.

그리고 나서 다시 localhost:80
으로 접속하면 아래와 같이 정상적인 페이지를 확인할 수 있다. 아래 페이지는 아까 php artisan serve
로 실행했을때 확인한 페이지와 동일하다.

즉, php artisan serve
를 통해 서버를 실행하게 되면 db 연결 없이 프로젝트를 실행하게 되는것이고, sail을 통해 실행하게 되면 db연결이 추가된다는 것을 알 수 있다. laravel 8버전에서는 안이랬는데 버전이 달라지면서 지원하는 것이 달라졌나보다!
이제 여러가지 기능을 추가하면서 view를 만들어 혼자서 하는 웹페이지 개발을 시작해보자!
'DEV-ing log > PHP & Laravel' 카테고리의 다른 글
[프로젝트 버전 명시 생성] laravel 특정 버전으로 프로젝트 생성하기 (0) | 2024.05.30 |
---|---|
[Laravel 11] controller 개별 middleware 적용 에러 (0) | 2024.05.03 |
[Laravel | jetBrain] Docker container로 함께띄운 mysql phpStorm database에 연결하기 (0) | 2024.05.02 |