Docker httpd + mysql + laraval install

  • 안내말 입니다.
  • 개인적으로 남기는 글입니다. 아래의 경우를 미리 공지합니다.
  1. 높임말은 없는 경우가 있습니다.
  2. 영어, 일본어, 베트남어를 공부하고 있습니다. 경우에 따라서 사용됩니다.
  3. 보기 거북하다면 뒤로가기 해주세요.

이야기 시작-
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