1.lnmp网络与目录规划

172.16.10.0/24

nginx:172.16.10.10
mysql:172.16.10.20
php:172.16.10.30
网站访问主目录:/wwwroot
nginx的配置文件:/docker/nginx
mysql持久化的目录: /docker/mysql
mysql 密码: Aa123456

2.起临时nginx容器获取nginx配置文件

[root@docker ~]# mkdir /docker /wwwroot
[root@docker ~]# docker run -itd --name test nginx
[root@docker ~]# docker cp test:/etc/nginx /docker/
[root@docker ~]# docker cp test:/usr/share/nginx/html /wwwroot/
[root@docker ~]# docker rm -f test

3.创建自定义网络

#创建自定义网络
docker network create -d bridge --subnet 172.16.10.0/24 --gateway 172.16.10.1 lnmp #服务器开启内核转发:
echo '1' >/proc/sys/net/ipv4/ip_forward #重启容器服务
systemctl restart docker

4. 启动php容器

docker run -itd --name lnmp-php7.4 \
-p 9000:9000 \
-v /wwwroot/html:/usr/share/nginx/html \
--network lnmp \
--ip 172.16.10.30 \
registry.cn-hangzhou.aliyuncs.com/chenleilei/php74:latest

5. 启动nginx容器

docker run -d --name lnmp-nginx \
-p 80:80 \
-p 443:443 \
-v /wwwroot/html:/usr/share/nginx/html \
-v /docker/nginx:/etc/nginx \
--network lnmp \
--ip 172.16.10.10 nginx #修改配置文件:
vim /docker/nginx/conf.d/default.conf [root@node02 conf.d]# egrep -v '#|^$' /docker/nginx/conf.d/default.conf
server {
listen 80;
listen [::]:80;
server_name localhost;
location / {
root /usr/share/nginx/html; #修改html所在目录
index index.php index.html index.htm; #添加默认首页文件 index.php
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
#解除PHP注释,改为如下:
location ~ \.php$ {
root /usr/share/nginx/html; #添加PHP解析能力
fastcgi_pass 172.16.10.30:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; #修改为当前配置
include fastcgi_params;
}
} #server区段改为上面的配置后保存

6. 测试代码

docker restart lnmp-nginx lnmp-php7.4

cd /wwwroot/html
echo test > index.html
cat index.php <?php
phpinfo();
?> chmod -R a+w /wwwroot/html

7. 其他配置[php容器增加mysql支持]

部署动态站点需要赋予目录足够权限,推荐
docker exec -it lnmp-nginx bash
#chown -R www-data.www-data /usr/share/nginx/html 可以不用
chmod -R a+w /usr/share/nginx/html
exit chown -R root.root /wwwroot/html 此时已经可以运行php了,还有一些扩展需要部署如: GD支持 MySQL支持,可以在部署dede程序时看到
docker部署的php容器需要 安装扩展 #进入容器
docker exec -it lnmp-php7.4 bash
修改源:
sed -i 's#http://deb.debian.org#https://mirrors.163.com#g' /etc/apt/sources.list
apt-get update 安装软件支持:
apt-get install -y libfreetype6-dev libjpeg62-turbo-dev libmcrypt-dev libpng-dev libonig-dev
docker-php-ext-install gd mysqli pdo pdo_mysql mbstring shmop 安装完成后退出重启php容器
exit
docker restart lnmp-php7.4

没有安装扩展提示:

安装扩展后:

8. 启动mysql容器

#启动mysql
[root@docker html]# docker run -itd --name test -e MYSQL_ROOT_PASSWORD=Aa123456 registry.cn-hangzhou.aliyuncs.com/chenleilei/mysql5.7 #测试创建库
[root@docker html]# docker exec -it test bash
root@d46a7cc8407f:/# mysql -uroot -pAa123456
mysql> show databases;
mysql> create database test; mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
| test |
+--------------------+
5 rows in set (0.00 sec) mysql> exit
root@d46a7cc8407f:/var/lib/mysql# exit #获取mysql数据:
[root@docker html]# docker cp test:/var/lib/mysql /docker
[root@docker html]# docker rm -f test
[root@node02 conf.d]# ll /docker/mysql
total 188484
-rw-r----- 1 polkitd root 56 Jun 29 10:40 auto.cnf
-rw------- 1 polkitd root 1676 Jun 29 10:40 ca-key.pem
-rw-r--r-- 1 polkitd root 1112 Jun 29 10:40 ca.pem
-rw-r--r-- 1 polkitd root 1112 Jun 29 10:40 client-cert.pem
-rw------- 1 polkitd root 1680 Jun 29 10:40 client-key.pem
-rw-r----- 1 polkitd root 1352 Jun 29 10:40 ib_buffer_pool
-rw-r----- 1 polkitd root 79691776 Jun 29 10:45 ibdata1
-rw-r----- 1 polkitd root 50331648 Jun 29 10:45 ib_logfile0
-rw-r----- 1 polkitd root 50331648 Jun 29 10:40 ib_logfile1
-rw-r----- 1 polkitd input 12582912 Jun 29 10:45 ibtmp1
drwxr-x--- 2 polkitd root 4096 Jun 29 10:40 mysql
drwxr-x--- 2 polkitd root 8192 Jun 29 10:40 performance_schema
-rw------- 1 polkitd root 1676 Jun 29 10:40 private_key.pem
-rw-r--r-- 1 polkitd root 452 Jun 29 10:40 public_key.pem
-rw-r--r-- 1 polkitd root 1112 Jun 29 10:40 server-cert.pem
-rw------- 1 polkitd root 1680 Jun 29 10:40 server-key.pem
drwxr-x--- 2 polkitd root 8192 Jun 29 10:40 sys 启动mysql:
docker run -d --name lnmp_mysql \
--network lnmp --ip 172.16.10.20 \
-p 3306:3306 -p 33060:33060 \
-v /docker/mysql:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=Aa123456 \
registry.cn-hangzhou.aliyuncs.com/chenleilei/mysql5.7 \
--character-set-server=utf8 登录mysql:
[root@docker html]# docker exec -it lnmp_mysql bash
root@60b705b2b10e:/# mysql -uroot -p'Aa123456'
mysql> exit

9. 测试部署php项目

9.1 部署dedecms

# 进入数据库容器:
docker exec -it lnmp_mysql bash #创建运行wordpress的mysql数据库和用户: mysql> create database dede;
Query OK, 1 row affected (0.00 sec) mysql> grant all on dede.* to dede@'%' identified by 'dede';
Query OK, 0 rows affected, 1 warning (0.01 sec) mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec) #下载DedeCMS
#wget https://cn.wordpress.org/latest-zh_CN.tar.gz mkdir /wwwroot/html/dede
cd /wwwroot/html/dede
wget --no-check-certificate https://updatenew.dedecms.com/base-v57/package/DedeCMS-V5.7.96-UTF8.zip
unzip DedeCMS-V5.7.96-UTF8.zip
mv uploads up
mv up/* ./
rm -fr up [root@node02 dede]# ll
total 12816
drwxr-xr-x 2 root root 6 Jun 27 09:24 a
drwxr-xr-x 5 root root 38 Jun 27 09:24 assets
drwxr-xr-x 20 root root 4096 Jun 27 09:24 data
drwxr-xr-x 7 root root 12288 Jun 27 09:24 dede
-rw-r--r-- 1 root root 13052376 Jun 28 15:03 DedeCMS-V5.7.96-UTF8.zip
-rw-r--r-- 1 root root 16958 Dec 31 1979 favicon.ico
drwxr-xr-x 6 root root 227 Jun 27 09:24 images
drwxr-xr-x 15 root root 4096 Jun 27 09:24 include
-rw-r--r-- 1 root root 1392 Dec 31 1979 index.php
drwxr-xr-x 5 root root 304 Jun 27 09:24 install
-rw-r--r-- 1 root root 3474 Dec 31 1979 license.txt
drwxr-xr-x 3 root root 69 Jun 27 09:24 m
drwxr-xr-x 5 root root 4096 Jun 27 09:24 member
drwxr-xr-x 5 root root 4096 Jun 27 09:24 plus
-rw-r--r-- 1 root root 505 Dec 31 1979 robots.txt
drwxr-xr-x 2 root root 23 Jun 27 09:24 special
-rw-r--r-- 1 root root 998 Dec 31 1979 tags.php
drwxr-xr-x 6 root root 142 Jun 27 09:24 templets
drwxr-xr-x 8 root root 104 Jun 27 09:24 uploads #添加权限
[root@node02 html]# chmod -R a+w /wwwroot/html #nginx容器添加权限
docker exec -it lnmp-nginx bash
chown -R www-data.www-data /usr/share/nginx/html/dede
exit

后台登录不显示验证码经检查属于程序bug与配置无关,安装wordpress 无此故障

9.2 部署wordpress

创建数据库:
[root@node02 wordpress]# docker exec -it lnmp_mysql bash
root@059faa26e36a:/# mysql -uroot -p'Aa123456'
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 7
Server version: 5.7.32 MySQL Community Server (GPL) Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> create database wordpress;
Query OK, 1 row affected (0.00 sec) mysql> grant all on wordpress.* to wordpress@'%' identified by 'wordpress';
Query OK, 0 rows affected, 1 warning (0.00 sec) mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec) mysql> exit
Bye
下载wordpress源码,解压到wordpress目录下
[root@node02 wordpress]# tar xf wordpress-4.7.3-zh_CN.tar.gz
[root@node02 wordpress]# mv wordpress/* .
[root@node02 wordpress]# chown -R root.root *

web安装页面:

目录授权:
[root@node02 html]# chmod -R 755 wordpress
[root@node02 html]# chmod -R a+w wordpress #应该只执行这个就可以了
[root@node02 html]# docker exec -it lnmp-nginx bash
root@42ceb54db60c:/# chown -R www-data.www-data /usr/share/nginx/html/wordpress



测试更新版本与安装插件:

docker lnmp配置的更多相关文章

  1. docker安装配置lnmp

    一.安装配置docker 1.下载docker:yum install -y docker 2.设置docker远程镜像地址为国内路径:curl -sSL https://get.daocloud.i ...

  2. PhpStorm连接Docker容器配置xdebug断点调试

    本教程主要演示xdebug在PhpStorm中配置方法. 一.环境说明 1.Mac笔记本(本教程演示过程使用的是Mac OS操作系统,和windows环境是有区别的,这一点需要特别注意): 2.在Ma ...

  3. 使用 Docker LNMP 部署 PHP 运行环境

    简介 Docker LNMP 是基于 Docker 的 PHP 集成开发环境. Github 地址:https://github.com/YanlongMa/docker-lnmp 包含软件 ngin ...

  4. Docker下配置双机热备PXC集群

    架构: 步骤: 1.安装centos7   ,设置宿主机IP:192.168.1.224 2.先更新yum软件管理器,再安装docker 1.yum -y update 2.yum install - ...

  5. 解决docker主机配置了DaoCloud.io的加速后重启失败问题Failed to start Docker Application Container Engine

    问题说明 正常运行的docker主机配置了DaoCloud.io加速后重启报如下错 解决过程 问题原因: 重新配置加速器后发现,daocloud的配置信息是写在/etc/docker/daemon.j ...

  6. CentOS上安装 Docker-CE以及Docker 加速器配置

    在CentOS 7.0上安装 Docker-CE 官方源安装教程 https://docs.docker.com/install/linux/docker-ce/centos/#install-usi ...

  7. docker安装配置gitlab详细过程

    docker安装配置gitlab详细过程   获取镜像 1.方法一 1 docker pull beginor/gitlab-ce:11.0.1-ce.0 2.方法二如果服务器网路不好或者pull不下 ...

  8. docker容器配置独立ip

    一般安装docker后都会通过端口转发的方式使用网络,比如 “-p 2294:22” 就将2294抓发到22端口来提供sftp服务,这样使用起来没有问题.但端口号很难记忆,如果前边有nginx等抓发工 ...

  9. docker——网络配置

    一.网络启动与配置参数 Docker启动时会在主机上自动创建一个docker0虚拟网桥,实际上是一个Linux网桥,可以理解为一个软件交换机,它会在挂载其上的接口之间进行数据转发.同时,Docker随 ...

  10. Docker中配置国内镜像

    1. 为什么要为docker配置国内镜像   在正常情况下,docker有一个默认连接的国外官方镜像,在国外的网友访问该官方镜像自然不成问题,但是国内毕竟不是国外,由于国情不同,中国的网络访问国外官方 ...

随机推荐

  1. 在 macOS Big Sur 上安装 MySQL 8.x Compressed TAR Archive

    因个人能力有限,文章难免存在错误,望斧正,感谢. 版本: macOS 11.6 Intel版本 MySQL 8.0.26 Compressed TAR Archive 一.准备所需文件 前往 MySQ ...

  2. mongodb基础整理篇————副本原理篇[外篇]

    前言 简单介绍一下副本集的原理篇. 正文 下面是几个基本的原理: 副本之间是如何复制的? mongodb 实现此功能的方式是保存操作日志,其中包含了主节点执行的每一次操作,这和mysql比较像. op ...

  3. @EnableDiscoveryClient 注解如何实现服务注册与发现

    @EnableDiscoveryClient 是如何实现服务注册的?我们首先需要了解 Spring-Cloud-Commons 这个模块,Spring-Cloud-Commons 是 Spring-C ...

  4. GaussDB(DWS)基于Flink的实时数仓构建

    本文分享自华为云社区<GaussDB(DWS)基于Flink的实时数仓构建>,作者:胡辣汤. 大数据时代,厂商对实时数据分析的诉求越来越强烈,数据分析时效从T+1时效趋向于T+0时效,为了 ...

  5. TortoiseGit安装、配置(Git 小乌龟安装)

    1 TortoiseGit简介 tortoiseGit是一个开放的git版本控制系统的源客户端,支持Winxp/vista/win7.该软件功能和git一样 不同的是:git是命令行操作模式,tort ...

  6. 使用纯c#在本地部署多模态模型,让本地模型也可以理解图像

    之前曾经分享过纯c#运行开源本地大模型Mixtral-8x7B 当时使用的是llamasharp这个库和Mixtral的模型在本地部署和推理,前段时间我看到llamasharp更新到了0.11.1版本 ...

  7. 力扣150(java)-逆波兰表达式求值(中等)

    题目: 根据 逆波兰表示法,求表达式的值. 有效的算符包括 +.-.*./ .每个运算对象可以是整数,也可以是另一个逆波兰表达式. 注意 两个整数之间的除法只保留整数部分. 可以保证给定的逆波兰表达式 ...

  8. 基于EasyCV复现ViTDet:单层特征超越FPN

    简介: ViTDet其实是恺明团队MAE和ViT-based Mask R-CNN两个工作的延续.MAE提出了ViT的无监督训练方法,而ViT-based Mask R-CNN给出了用ViT作为bac ...

  9. 从Redis7.0发布看Redis的过去与未来

    简介: 经历接近一年的开发.三个候选版本,Redis 7.0终于正式发布,这是Redis历史上改变最多的一个大版本,它不仅包含了50多个新命令,还有大量核心新特性与改进,这些不仅能够解决用户使用中的诸 ...

  10. 为余势负天工背,云原生内存数据库Tair助力用户体验优化

    ​简介:作为双11大促承载流量洪峰的利器,Tair支撑了电商交易核心体验场景.不仅在数十亿QPS的峰值下保持着亚毫秒级别的顺滑延迟,同时在电商交易核心体验场景上也做出了技术创新. ​ 作者 | 漠冰 ...