Để chạy nukeviet trên các máy máy chủ, VPS không cài đặt sẵn php, và các lib hỗ trợ cho nukeviet chúng ta có thể sử dụng docker compose để cài đặt nukeviet một cách linh hoạt hơn.
Tạo docker network
Tạo network riêng
docker network create --driver=bridge --subnet=11.11.0.0/16 netw
Sau khi tạo xong chúng ta sẽ được phép sử dụng dãy IP 11.11.x.x
Thiết lập file Docker compose
Tạo các file dưới đây
php.Dockerfile
FROM php:7.3-apache
RUN docker-php-ext-install pdo pdo_mysql
RUN apt-get update -y && apt-get install -y libpng-dev
RUN apt-get update && \
apt-get install -y \
zlib1g-dev
RUN apt-get install -y \
libzip-dev \
zip \
&& docker-php-ext-install zip
RUN a2enmod rewrite
RUN apt-get update && apt-get install -y \
libfreetype6-dev libjpeg62-turbo-dev \
libgd-dev libpng-dev
RUN docker-php-ext-configure gd \
--with-freetype-dir=/usr/include/ \
--with-jpeg-dir=/usr/include/
RUN docker-php-ext-install gd
docker-compose.yml
version: '3.8'
services:
php-apache:
container_name: php-apache
build:
context: .
dockerfile: ./php.Dockerfile
volumes:
- ./www:/var/www/html/
environment:
DB_HOST: "${DB_HOST}"
DB_NAME: "${DB_NAME}"
DB_USER: "${DB_USER}"
DB_PASSWORD: "${DB_PASSWORD}"
restart: always
networks:
default:
ipv4_address: "${IP}"
networks:
default:
external:
name: netw
Tạo file .env để khai báo biến môi trường
IP=11.11.1.100
DB_HOST=localhost
DB_NAME=dbname
DB_USER=user
DB_PASSWORD=your_password
Khai báo thông tin database và thông tin địa chỉ ip mà container sẽ sử dụng, sau khi start docker compose lên bạn có thể truy cập website bằng http://11.11.1.100
Database info bạn có thể cài đặt riêng, trong bài hướng dẫn này hiện mình không thêm mysql vào đây.
Download source nukeviet
Tải source code nukeviet và đặt vào trong folder tên www sau đó sử dụng lệnh sau `sudo chown -R www-data:www-data www/`
Start Docker compose
Sau khi đã chuẩn bị đầy đủ như trên, bạn tiến hành khởi chạy nuketviet bằng docker compose bằng các lệnh sau:
docker-compose up
docker-compose up -d # khởi chạy trong nền
Đính kèm source code tham khảo tại: https://github.com/miticc06/nukeviet-docker-compose