Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- Spring
- PETERICA
- 티스토리챌린지
- 정보처리기사 실기 기출문제
- IntelliJ
- Java
- 코틀린 코루틴의 정석
- kotlin coroutine
- Elasticsearch
- kotlin querydsl
- Pinpoint
- AI
- 정보처리기사실기 기출문제
- kotlin
- Linux
- CKA
- CloudWatch
- minikube
- mysql 튜닝
- 정보처리기사 실기
- 공부
- aws
- CKA 기출문제
- kotlin spring
- AWS EKS
- MySQL
- 기록으로 실력을 쌓자
- Kubernetes
- 오블완
- APM
Archives
- Today
- Total
피터의 개발이야기
[php] Docker를 이용한 그누보드5 설치(php8, mysql:5.7, nginx) 본문
반응형
ㅁ 들어가며
ㅇ 지인의 신규 서비스가 그누보드를 사용하고 있어서 그누보드5 환경을 Docker로 구성해 보았다.
ㅇ gnuboard5를 clone하여 nginx와 php, mysql을 구성하였다.
ㅇ 빠른 설치를 원하는 경우, [php] Docker를 이용한 그누보드5 초간단 설치방법을 참조.
ㅁ git clone gnuboard5
# gnuboard5 소스 복제
$ git clone https://github.com/gnuboard/gnuboard5.git
'gnuboard5'에 복제합니다...
remote: Enumerating objects: 81016, done.
remote: Counting objects: 100% (1431/1431), done.
remote: Compressing objects: 100% (657/657), done.
remote: Total 81016 (delta 789), reused 1236 (delta 681), pack-reused 79585
오브젝트를 받는 중: 100% (81016/81016), 54.87 MiB | 17.09 MiB/s, 완료.
델타를 알아내는 중: 100% (53947/53947), 완료.
# 폴더 확인
$ cd gnuboard5; ls
LICENSE.txt _head.php bbs css g4_import_run.php img js orderupgrade.php shop tail.php version.php
README.md _tail.php common.php extend head.php index.php lib perms.sh shop.config.php tail.sub.php yc4_import.php
_common.php adm config.php g4_import.php head.sub.php install mobile plugin skin theme yc4_import_run.php
# data 폴더 생성
$ mkdir data
ㅇ작업을 위한 gnuboard 폴더를 생성하였다.
ㅁ nginx 이미지 빌드 구성
# build와 nignx 폴더 생성
$ mkdir build; cd build; mkdir nginx;
# PHP 설정을 위한 default.conf 생성
server {
listen 80;
root /var/www/html;
index index.html index.htm index.php;
server_name localhost;
error_log /var/log/nginx/error.log;
access_log /var/log/nginx/access.log;
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass php:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
}
# Dockerfile 생성
FROM nginx:latest
RUN apt-get update
RUN apt-get install git -y
COPY ./default.conf /etc/nginx/conf.d/default.conf
EXPOSE 80
ENTRYPOINT ["nginx","-g","daemon off;"]
ㅁ PHP 이미지 빌드 구성
# build 폴더에 php 폴더 생성
$ mkdir php; cd; php
# Dockerfile 생성
FROM php:8.0.30-fpm
WORKDIR /root
RUN apt-get update
RUN apt-get update && apt-get install -y \
git \
curl \
libcurl4 \
libcurl4-openssl-dev \
zlib1g-dev \
libicu-dev \
libmemcached-dev \
memcached \
libwebp-dev \
build-essential \
libfreetype6-dev \
libjpeg62-turbo-dev \
libmcrypt-dev \
libpng-dev \
libonig-dev \
libxml2-dev \
libxpm-dev \
zip \
libzip-dev \
unzip
RUN docker-php-ext-install pdo_mysql mbstring exif pcntl bcmath mysqli opcache zip
RUN pecl install redis && docker-php-ext-enable redis
RUN docker-php-ext-configure gd --enable-gd --with-freetype --with-jpeg --with-webp
RUN docker-php-ext-install gd
# Install Composer
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
EXPOSE 9000
ㅁ mysql_data 생성
# 작업 폴더에 mysql_data 폴더 생성
$ mkdir mysql-data
ㅁ docker-compose.yml 생성
# docker-compose.yml 생성
version: '3.8'
services:
db:
image: mysql:5.7
container_name: db
restart: always
environment:
MYSQL_DATABASE: gnuboard
MYSQL_USER: gnuboard
MYSQL_PASSWORD: strongpwd
MYSQL_ROOT_PASSWORD: superpwd
ports:
- "3306:3306"
volumes:
- ./mysql_data:/var/lib/mysql
php:
container_name: php
build:
context: ./build/php
dockerfile: Dockerfile
depends_on:
- db
ports:
- "9000:9000"
volumes:
- ./gnuboard5:/var/www/html
nginx:
container_name: nginx
build:
context: ./build/nginx
dockerfile: Dockerfile
volumes:
- ./gnuboard5:/var/www/html
- ./build/nginx/default.conf:/etc/nginx/conf.d/default.conf
depends_on:
- php
ports:
- "80:80"
- "443:443"
ㅁ docker-compose 실행
$ docker-compose up -d
ㅁ 그누보드 설치
ㅇ http://localhost 로 접속한다.
ㅇ 그누보드5 설치하기를 클릭한다.
ㅇ 약관동의한다.
ㅇ 위 사진처럼 MySQL 정보입력하고, 최고 관리자 정보를 입력한다.
ㅇ 그누보드5 설치가 완료되었다.
ㅇ 그누보드5로 이동을 클릭한다.
ㅇ 그누보드5 페이지가 완료되었다.
ㅁ 작업 중 중지 및 리소스 정리
# 컨테이너 정지
$ docker-compose stop
# 리소스 및 네트워크 자원 정리
$ docker-compose down
ㅁ 함께 보면 좋은 사이트
ㅇ 그누보드 간편설치 - 도커(Docker)로 그누보드5 개발환경 구성 - windows 10,11 ( nginx + php7.4 mariadb )
반응형
'DevOps > php' 카테고리의 다른 글
[php] Docker를 이용한 그누보드5 초간단 설치방법 (0) | 2024.03.22 |
---|
Comments