容器化部署wordpress个人博客系统lnmp环境[自定义网络]
容器化部署个人博客系统lnmp环境
#告警:
WARNING: IPv4 forwarding is disabled. Networking will not work.
96c083a8b58112f64e84baf73810197ea8ba4b48fa292bfb9635b92e6efc4e5c
因为转发没开,解决如下:
echo 1 >/proc/sys/net/ipv4/ip_forward
sysctl -p
0. 配置源
yum install -y docker-ce
rm -f /etc/docker/*
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://ajvcw8qn.mirror.aliyuncs.com"],
"exec-opts": ["native.cgroupdriver=systemd"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
systemctl enable docker.service
1. 自定义docker网络 network_lnmp
[root@k8s-master ~]# docker network create network_lnmp
742504219a6955425beb43f5cc014376a1efea2ed5b78b939f7cb92cc8879c83
2. mysql配置
2.1. 创建挂载卷:
docker volume create mysql-vol
2.2. 创建本地持久化卷
mkdir -p /var/lib/mysql/
挂载方法:
方法1:
--name=mysql-vol --mount src=mysql-vol,dst=/var/lib/mysql/
方法2:
--name=mysql-vol -v mysql-vol:/usr/share/nginx/html nginx
2.3 mysql容器创建与登录测试,并挂载到mysql-vol:
创建:
mkdir -p /var/lib/mysql
docker run -d --name lnmp_mysql \
--net network_lnmp \
--mount src=mysql-vol,dst=/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -e MYSQL_DATABASE=wordpress mysql:5.7 \
--character-set-server=utf8
登录测试:
docker inspect lnmp_mysql|sed -nr 's#^.*Address": \"(.*)\"\,.*$#\1#gp'|egrep -o "([0-9]{1,3}\.){3}[0-9]"
172.18.0.2 <---获取mysql容器IP
连接mysql测试:
[root@docker-02 ~]# yum install -y mysql
[root@docker-02 ~]# mysql -uroot -p123456 wordpress -h 172.18.0.2
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.30 MySQL Community Server (GPL)
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MySQL [(none)]>
测试链接成功
---------------------------------------------------------------------
#创建授权wordpress数据库:
创建相关数据库:
mysql -uroot -p123456 -h 172.18.0.2
#创建wordpress数据库
create database wordpress;
#wordpress数据库权限配置,只允许本地访问 用户名 wordpress 密码 123456
grant all on wordpress.* to wordpress@'%' identified by '123456';
#刷新权限
flush privileges;
#测试新建账号 wordpress 连接数据库:
mysql -uwordpress -p123456 -h 172.18.0.2
[root@docker-02 _data]# mysql -uwordpress -p123456 -h 172.18.0.2
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 5.7.30 MySQL Community Server (GPL)
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MySQL [(none)]>
3. 创建php容器:
规划:
创建网站数据目录 www-vol 启动时指定解析该目录
创建:
docker run -d \
--name lnmp_php-1 \
--net network_lnmp \
-p 9000:9000 \
-v www-vol:/usr/share/nginx/html \
registry.cn-hangzhou.aliyuncs.com/iyunw/php:7.1
这里是将本地/www目录挂载到容器中的/usr/share/nginx/html
创建用户:
useradd -s /sbin/nologin -M www-data -u 1000
清理数据卷:
docker volume ls --filter dangling=true 过滤出没有使用的卷,然后使用"docker volume rm [卷名]"删除
#---------------------------------------------------------------------------------------------------------------
3. nginx容器
3.1 准备目录和配置文件:
mkdir /etc/nginx/conf.d/ -p
vim /etc/nginx/conf.d/nginx.conf
#---nginx.conf--------------------------------------------------------------------------------------------------
user nginx;
worker_processes 1;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
include /etc/nginx/conf.d/*.conf;
}
#---nginx.conf-----------默认就有不用创建------------------------------------------------------------------------
添加server:
[root@docker-02 _data]# vim /root/nginx_php.conf
#---------------include /root/nginx_php.conf-----------------------------#
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name _;
#root /usr/share/nginx/html;
index index.php index.html;
# include /etc/nginx/default.d/*.conf;
location / {
root /usr/share/nginx/html;
}
location ~* \.php$ {
root /usr/share/nginx/html;
fastcgi_pass lnmp_php-1:9000; ## php的容器名,如果容器名不存在就不会启动容器。注意
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
#---------------include /root/nginx_php.conf-----------------------------#
5. 创建nginx容器挂载相关配置文件和目录:
网页目录卷: www-vol
5.1. 创建挂载卷:
docker volume create www-vol
通过 docker inspect www-vol 可以看到这个卷所在的目录
挂载方法:
方法2:
-v www-vol:/usr/share/nginx/html -v /root/nginx_php.conf:/etc/nginx/conf.d/www.conf
5.2 起容器:
docker run -d --name lnmp_nginx \
-p 80:80 --net network_lnmp \
-v www-vol:/usr/share/nginx/html \
-v /root/nginx_php.conf:/etc/nginx/conf.d/www.conf nginx
5.3 容器里创建一个用户,用于和php交互:
useradd -s /sbin/nologin -M www-data -u 1000
#注意,yum安装的时候这个index.html可能就是个软连接,她并不在容器中,而是在宿主机中,并且没有被映射到容器
#此时访问时会出现403错误
#只要删除这些文件。重新创建文件即可
#如:echo hello >/usr/share/nginx/html/index.html [容器中的目录]
#如:echo hello >>/var/lib/docker/volumes/www-vol/_data/index.html [映射出来的目录]
------------------------------------------------------------------------------------------------------
PHP解析测试:
echo '<?php phpinfo(); ?>' >/var/lib/docker/volumes/www-vol/_data/index.php
php-fpm.conf下载地址:
https://www.chenleilei.net/soft/php-fpm.conf
wordpress安装配置:
下载安装包:
cd /var/lib/docker/volumes/www-vol/_data/
wget https://cn.wordpress.org/latest-zh_CN.zip
unzip latest-zh_CN.zip
mv wordpress/* ./
rm -fr wordpress
数据库名:wordpress
用户名: wordpress
密码: 123456
网站目录权限设置:
useradd -u 1000 www-data -M -s /sbin/nologin
chown -R 755 /var/lib/docker/volumes/www-vol/_data
chown -R www-data /var/lib/docker/volumes/www-vol/_data
1. 进入网页数据目录(docker inspect www-vol):
cd /var/lib/docker/volumes/www-vol/_data
echo '<?php phpinfo(); ?>' >./index1.php
访问查看测试页面 index1.php ,如果正常,就将wordpress网站文件放到该目录下
2. 安装wordpress
数据库地址:172.18.0.2 [通过 docker inspect lnmp_mysql |grep IPA 查看]
数据库名: wordpress
用户名:wordpress
密码:123456
链接测试:mysql -uwordpress -p123456 -h 172.18.0.2
图形页面:
出现这个页面,请复制他的内容在服务器网站根目录 创建一个文件 wp-config.php 然后内容写入保存再次访问。
容器化部署wordpress个人博客系统lnmp环境[自定义网络]的更多相关文章
- 使用Docker部署Spring-Boot+Vue博客系统
在今年年初的时候,完成了自己的个Fame博客系统的实现,当时也做了一篇博文Spring-boot+Vue = Fame 写blog的一次小结作为记录和介绍.从完成实现到现在,也断断续续的根据实际的使用 ...
- wordpress 开源博客系统部署
1.开发工具 server apache 下载地址:http://www.apache.org http://httpd.apache.org/download.cgi 数据库 mys ...
- Node.js+Express搭建博客系统基本环境安装
1.下载安装node.js 官网下载地址:https://nodejs.org/en/download/ 2.安装express. 打开node命令行工具,在命令行中输入:npm install -g ...
- 腾讯云-搭建 WordPress 个人博客
搭建 WordPress 个人博客 准备 LNMP 环境 任务时间:30min ~ 60min LNMP 是 Linux.Nginx.MySQL 和 PHP 的缩写,是 WordPress 博客系统依 ...
- 如何快速部署国人开源的 Java 博客系统 Tale
除了闷头专研技术之外,程序员还需要不断地写作进行技术积累,写博客是其中最重要的方式之一.商业博客平台不少,但是更符合程序员背景的方案,是自己开发一个博客平台或者使用开源的博客平台. 开源的博客平台多如 ...
- 使用docker部署WordPress博客系统(win10企业版)
docker介绍: docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相 ...
- Centos 7使用docker部署LAMP搭建wordpress博客系统
0.简要概述 LAMP是目前比较流行的web框架,即Linux+Apache+Mysql+PHP的网站架构方案.docker是目前非常流行的虚拟化应用容器,可以为任何应用创建一个轻量级.可移植的容器. ...
- Docker 方式部署 Solo 博客系统总结
此篇为Docker部署方式,另有Tomcat部署方式,请参考文章<Tomcat 方式部署 Solo 博客系统总结> 最近搭建了一个博客系统,作为自己的主页,方便记录一些平时所见所闻 ...
- 巨杉Tech | 十分钟快速搭建 Wordpress 博客系统
介绍 很多互联网应用程序开发人员第一个接触到的网站项目就是博客系统.而全球使用最广的Wordpress常常被用户用来快速搭建个人博客网站.默认情况下,Wordpress一般在后台使用MySQL关系型数 ...
- 使用WordPress模板搭建博客系统
综述: 前端展示:外观--->主题. 功能模块:插件. 遇到的问题: 1:无法加载编辑器文件: 切换下不同的wordPress模板,可能缓存文件有问题. 2:注册功能:密码重设链接无效bug-- ...
随机推荐
- CentOS 6.5 ZIP、RAR文件压缩解压操作详解
============zip文件的操作================= zip -r data.zip data 解释:将data文件夹压缩成了data.zip格式. unzip data.z ...
- redis 简单整理——客户端案例分析[十八]
前言 简单整理一下客户端案例分析. 正文 现象一: 服务端现象:Redis主节点内存陡增,几乎用满maxmemory,而从节点 内存并没有变化. 客户端现象:客户端产生了OOM异常,也就是Redis主 ...
- 重新点亮linux 命令树————文件特殊权限[十一]
前言 简单介绍一下文件特殊权限. 正文 SUID 用于二进制可执行文件,执行命令时取得文件属组权限 如 /usr/bin/passwd 当我们使用passwd 修改密码的时候其实是以root用户身份进 ...
- 重新整理数据结构与算法(c#系列)—— 树的前中后序遍历查找[十七]
前言 树的前中后序遍历 是根据前中后序的顺序来查找,找到了则弹出. 正文 节点模型: public class HeroNode { private int no; private string na ...
- JavaSE开发基础--包机制&JavaDoc&Scanner&循环结构&方法&数组
包机制 如果文件在包中需要 在文件首行添加 package 地址 package pkg1.pkg2.pkg3 import package1 JavaDoc /** * @author作者名 * @ ...
- CSS:注册页面的编写练习
最终效果图: html文件: <!-- * @Qusetion: * @Author: 一届书生 * @Date: 2020-04-07 08:17:36 * @LastEditTime: 20 ...
- 向量数据库Chroma学习记录
一 简介 Chroma是一款AI开源向量数据库,用于快速构建基于LLM的应用,支持Python和Javascript语言.具备轻量化.快速安装等特点,可与Langchain.LlamaIndex等知名 ...
- 三款免费强大的SSH工具食用指南
食用清单 XShell FinalShell Electerm 食用方案 XShell 先说说老牌ssh工具XShell吧,用过很多年,说实话没啥别的毛病挺好用的.不过,还是有些地方有待加强,比如文件 ...
- vuex合作怎么用仓库
- 力扣178(MySQL)-分数排名(中等)
题目: 表: Scores 编写 SQL 查询对分数进行排序.排名按以下规则计算: 分数应按从高到低排列.如果两个分数相等,那么两个分数的排名应该相同.在排名相同的分数后,排名数应该是下一个连续的整数 ...