`

几行命令完成docker多网站的部署(wordpress和dedecms)

阅读更多

     建设目标,利用docker技术快速搭建wordpress和dedecms,完成多域名的部署工作。
     操作时间评估:20分钟。
     主要部署内容,php7,nginx,myssql,wordpress,dedecms。

     主要操作过程,几个命令行。

     安装环境,安装有docker的服务主机(国外主机),本文略过安装过程。
     项目要求,有三个网站,如下要求。

  • www.a.com,使用dedecms
  • www.b.com,使用wordpress
  • www.c.com,静态网站

     主要思想,分别安装dedecms和wordprss,再利用nginx转发思想,分别建立转发机制。

    操作过程:
   第一步:准备工作,
                  根目录: /opt/docker
                网站根目录:/opt/docker/www

nginx相关目录:/opt/docker/nginx/conf.d

   第二步:安装php7,nginx,mysql

//取得nginx镜像
docker pull nginx
//取得php镜像
docker pull php:7.1.0-fpm
//取得mysql镜像
docker pull mysql

    第三步:启动基础环境

//启动php
docker run -p 9000:9000 --name myphp \
-v /docker/www/:/var/www/html/ \
--privileged=true \
-d php:7.1.0-fpm
//启动nginx
docker run -p 80:80 --name mynginx \
-v /docker/www:/usr/share/nginx/html \
-v /docker/nginx/conf.d:/etc/nginx/conf.d \
--privileged=true \
-d nginx
//启动mysql
docker run -d -e MYSQL_ROOT_PASSWORD=yaya --name wp-mysql -v /opt/docker/mysql/data:/var/lib/mysql -p 3306:3306 mysql

   第四步:安装dedecms
   

//取得deducts镜像
docker pull chengxulvtu/dedecms:utf8_full_5.7
或
docker pull chengxulvtu/dedecms:gbk_full_5.7
//运行dedecms
docker run -d --name dede-lantinghe -p 8081:80 -v /opt/docker/www/dedecms/:/var/www/html chengxulvtu/dedecms:utf8_full_5.7

     第五步,安装wordpress

#取得wordpress镜像
docker pull wordpress
#运行wordpress镜像
docker run -d --name wp-lantinghe --link wp-mysql:mysql  -v /opt/docker/www/wordpress/:/var/www/html/ -p 8080:80 wordpress

    第六步,分别配置各域名

    文件/opt/docker/nginx/conf.d/a.com.conf
  

server {
  listen  80;
  server_name www.a.com;
  root   /usr/share/nginx/html/dedecms/;
  location / {
   index index.html index.htm index.php;
   autoindex off;
   proxy_redirect off;  
   proxy_set_header Host $host;  
   proxy_set_header X-Real-IP $remote_addr;  
   proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
   proxy_pass http://x.x.x.x:8081;
  }
  location ~ \.php(.*)$ {   
   fastcgi_pass 172.17.0.2:9000;
   fastcgi_index index.php;
   fastcgi_split_path_info ^((?U).+\.php)(/?.+)$;
   fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
   fastcgi_param PATH_INFO $fastcgi_path_info;
   fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
   include  fastcgi_params;
  }
}

  文件/opt/docker/nginx/conf.d/b.com.conf

server {
  listen  80;
  server_name www.b.com;
  root   /usr/share/nginx/html/wordpress/;
  location / {
   index index.html index.htm index.php;
   autoindex off;
   proxy_redirect off;  
   proxy_set_header Host $host;  
   proxy_set_header X-Real-IP $remote_addr;  
   proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
   proxy_pass http://x.x.x.x:8080;
  }
  location ~ \.php(.*)$ {   
   fastcgi_pass 172.17.0.2:9000;
   fastcgi_index index.php;
   fastcgi_split_path_info ^((?U).+\.php)(/?.+)$;
   fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
   fastcgi_param PATH_INFO $fastcgi_path_info;
   fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
   include  fastcgi_params;
  }
}

 文件/opt/docker/nginx/conf.d/c.com.conf

server {
  listen  80;
  server_name www.c.com;
  root   /usr/share/nginx/html/c.com/;
  location / {
   index index.html index.htm index.php;
   autoindex off;   
  }
}

   最后重启nginx

docker restart mynginx

 

    上面所有功能完成,三个网站均可以正常访问。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics