Dzzoffice 部署
- Dockerfile
- php-fpm.conf
- www.conf
- nginx.conf
- default.conf
- sources.list
- run.sh
- index.php
准备配置文件
一、Dockerfile
# info
FROM ubuntu:latest
MAINTAINER XHT-20220410
ENV VERSION 2.02.1
EXPOSE 80
WORKDIR /var/www/html
ADD run.sh /mnt/run.sh
ADD index.php /var/www/html
ADD sources.list /etc/apt/sources.list
RUN apt-get upgrade -y
RUN apt-get update -y
# 安装 PHP74 及扩展
RUN apt-get install language-pack-en-base -y \
&& apt-get install software-properties-common -y \
&& apt-get install curl -y \
&& locale-gen en_US.UTF-8 \
&& LC_ALL=en_US.UTF-8 add-apt-repository ppa:ondrej/php \
&& apt-get -y install php7.4 \
php7.4-mysql \
php7.4-fpm \
php7.4-curl \
php7.4-xml \
php7.4-mcrypt \
php7.4-json \
php7.4-gd \
php7.4-zip \
php7.4-mbstring
# 安装 Nginx
RUN apt-get install nginx -y
#配置文件修改
ADD php-fpm.conf /usr/local/php/etc/
ADD www.conf /usr/local/php/etc/php-fpm.d/
ADD default.conf /etc/nginx/conf.d/
ADD nginx.conf /etc/nginx/nginx.conf
ADD php.ini /etc/php/7.4/fpm/
ADD php.ini /etc/php/7.4/cli/
RUN mkdir /run/php/
RUN chown www-data:www-data /run/php
RUN chmod 777 /mnt/run.sh
#需要部署 dzzoffice 到容器内,请打开下面的注释!
#RUN curl -o ./dzzoffice-${VERSION}.tar.gz https://codeload.github.com/zyx0814/dzzoffice/tar.gz/${VERSION} \
#&& tar -xf ./dzzoffice-${VERSION}.tar.gz -C /tmp/ \
#&& rm -rf ./dzzoffice-${VERSION}.tar.gz /tmp/dzzoffice-${VERSION}/*.md \
#&& mv /tmp/dzzoffice-${VERSION}/* /var/www/html/ \
#&& rm -rf /tmp/dzzoffice-${VERSION} \
RUN chown www-data:www-data /var/www/html/* -R \
&& chmod 777 /var/www/html/* -R
CMD ["/mnt/run.sh"]
二、php-fpm.conf
;;;;;;;;;;;;;;;;;;;;;
; FPM Configuration ;
;;;;;;;;;;;;;;;;;;;;;
; All relative paths in this configuration file are relative to PHP's install
; prefix (/usr/local/php). This prefix can be dynamically changed by using the
; '-p' argument from the command line.
;;;;;;;;;;;;;;;;;;
; Global Options ;
;;;;;;;;;;;;;;;;;;
[global]
; Pid file
; Note: the default prefix is /usr/local/php/var
; Default Value: none
;pid = run/php-fpm.pid
; Error log file
; If it's set to "syslog", log is sent to syslogd instead of being written
; into a local file.
; Note: the default prefix is /usr/local/php/var
; Default Value: log/php-fpm.log
;error_log = log/php-fpm.log
; syslog_facility is used to specify what type of program is logging the
; message. This lets syslogd specify that messages from different facilities
; will be handled differently.
; See syslog(3) for possible values (ex daemon equiv LOG_DAEMON)
; Default Value: daemon
;syslog.facility = daemon
;这里要设置成no,php-fpm运行到前台
daemonize = no
include=/usr/local/php/etc/php-fpm.d/*.conf
三、www.conf
[www-date]
user = www-data
group = www-data
listen.owner = www-data
listen.group = www-data
listen.mode = 0666
pm = dynamic
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3
四、nginx.conf
user www-data;
worker_processes auto;
pid /run/nginx.pid;
events {
worker_connections 768;
}
http {
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
client_max_body_size 500M;
include /etc/nginx/mime.types;
default_type application/octet-stream;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; # Dropping SSLv3, ref: POODLE
ssl_prefer_server_ciphers on;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
gzip on;
include /etc/nginx/conf.d/*.conf;
}
五、default.conf
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log /var/log/nginx/host.access.log main;
location / {
root /var/www/html;
index index.php index.html index.htm;
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?s=/$1 last;
break;
}
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
location ~ \.php$ {
root /var/www/html;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
}
六、sources.list
使用华为国内镜像站加速
deb http://repo.huaweicloud.com/ubuntu/ focal main restricted
deb http://repo.huaweicloud.com/ubuntu/ focal-updates main restricted
deb http://repo.huaweicloud.com/ubuntu/ focal universe
deb http://repo.huaweicloud.com/ubuntu/ focal-updates universe
deb http://repo.huaweicloud.com/ubuntu/ focal multiverse
deb http://repo.huaweicloud.com/ubuntu/ focal-updates multiverse
deb http://repo.huaweicloud.com/ubuntu/ focal-backports main restricted universe multiverse
deb http://repo.huaweicloud.com/ubuntu focal-security main restricted
deb http://repo.huaweicloud.com/ubuntu focal-security universe
deb http://repo.huaweicloud.com/ubuntu focal-security multiverse
七、run.sh
#!/bin/bash
nginx
php-fpm7.4
tail -f /dev/null
八、index.php
<?php
echo("hello world!");
?>
打包 docker image
docker build -f Dockerfiel -t dzzoffice .
启动容器
docker run -d \
--name dzzoffice \
-p 7009:80 \
-v /mnt/docker_data/wwwroot/dzzoffice:/var/www/html \
dzzoffice
hello world!");
?>
## 打包 docker image
```bash
docker build -f Dockerfiel -t dzzoffice .
启动容器
docker run -d \
--name dzzoffice \
-p 7009:80 \
-v /mnt/docker_data/wwwroot/dzzoffice:/var/www/html \
dzzoffice