Docker httpd + mysql + laraval install
- 안내말 입니다.
- 개인적으로 남기는 글입니다. 아래의 경우를 미리 공지합니다.
- 높임말은 없는 경우가 있습니다.
- 영어, 일본어, 베트남어를 공부하고 있습니다. 경우에 따라서 사용됩니다.
- 보기 거북하다면 뒤로가기 해주세요.
이야기 시작-
backend 공부를 위해서 가지고 있는 NAS 서버에 laraval을 설치 해보려한다.
시작
먼저 아래의 파일을 생성 적당한 위치에 저장을 하고 나중에 서버로 복사한다.
예시)
/volume1/docker/laraval/mysql_db/my.cnf
my.cnf
[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
[client]
default-character-set=utf8mb4
MySQL 기본 패키지는 character set 이 latin1 로 설정되어있습니다.
character set 을 utf8 로 설정하여 한글 및 다른 언어가 께지는 것을 처리해야합니다.
때로는 utf8mb4 로 설정하는 경우도 있는데 utf8mb4는 emoji를 데이터베이스에 저장할 수 있습니다.
emoji는 4byte 문자이기 때문에 utf8 의 상위 호환인 utf8mb4를 사용해야 저장할 수 있습니다.NOTE: character set 이 utf8 인 상태에서 emoji를 데이터베이스 저장하려면 error 가 발생합니다.
인용 => https://inma.tistory.com/100
시놀로지에 폴더 구조를 만든다.
예시)
/volume1/docker/laraval
/volume1/docker/laraval/mysql_db/data
portainer에 접속하여 Stacks 에 내용을 넣는다.
Stacks 내용
version: '3.9'
services:
apache:
image: httpd:latest
container_name: laraval_project
ports:
- '18183:80'
volumes:
- /volume1/docker/laraval:/usr/local/apache2/htdocs
db:
image: mysql:5.7
container_name: laravel_project_db
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: laravel_db
MYSQL_USER: useruser
MYSQL_PASSWORD: passpass
TZ: 'Asia/Seoul'
command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
volumes:
- /volume1/docker/laraval/mysql_db/data:/var/lib/mysql
- /volume1/docker/laraval/mysql_db/my.cnf:/etc/mysql/conf.d/my.cnf
ports:
- 13306:3306
쉽게 하기 위해서 portainer안에서
bash 에 접속하여 아래의 순서로 진행한다. ( 왠만하면 ssh 를 이용해서 접속하자. )
apt update
apt install php php-dom php-xml php-curl libapache2-mod-php composer
주의 여기서 php8.2-curl 부분의 버전은 필자의 시스템에서 에러 나서 붙인것임.
laraval install
조건 위에 bash에 접속 중!
composer create-project laravel/laravel backend1
시간이 소요됩니다. 하지만 중간에 php-curl등에서 에러 발생하면 상황에 맞게 수정해야한다.
사용된 리눅스 명령어
docker ps
docker container ID를 알 수 있다.docker exec -it Container_ID /bin/bash
rm -rf 폴더명
리눅스 폴더 삭제
END