docker lnmp配置
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配置的更多相关文章
- docker安装配置lnmp
一.安装配置docker 1.下载docker:yum install -y docker 2.设置docker远程镜像地址为国内路径:curl -sSL https://get.daocloud.i ...
- PhpStorm连接Docker容器配置xdebug断点调试
本教程主要演示xdebug在PhpStorm中配置方法. 一.环境说明 1.Mac笔记本(本教程演示过程使用的是Mac OS操作系统,和windows环境是有区别的,这一点需要特别注意): 2.在Ma ...
- 使用 Docker LNMP 部署 PHP 运行环境
简介 Docker LNMP 是基于 Docker 的 PHP 集成开发环境. Github 地址:https://github.com/YanlongMa/docker-lnmp 包含软件 ngin ...
- Docker下配置双机热备PXC集群
架构: 步骤: 1.安装centos7 ,设置宿主机IP:192.168.1.224 2.先更新yum软件管理器,再安装docker 1.yum -y update 2.yum install - ...
- 解决docker主机配置了DaoCloud.io的加速后重启失败问题Failed to start Docker Application Container Engine
问题说明 正常运行的docker主机配置了DaoCloud.io加速后重启报如下错 解决过程 问题原因: 重新配置加速器后发现,daocloud的配置信息是写在/etc/docker/daemon.j ...
- CentOS上安装 Docker-CE以及Docker 加速器配置
在CentOS 7.0上安装 Docker-CE 官方源安装教程 https://docs.docker.com/install/linux/docker-ce/centos/#install-usi ...
- docker安装配置gitlab详细过程
docker安装配置gitlab详细过程 获取镜像 1.方法一 1 docker pull beginor/gitlab-ce:11.0.1-ce.0 2.方法二如果服务器网路不好或者pull不下 ...
- docker容器配置独立ip
一般安装docker后都会通过端口转发的方式使用网络,比如 “-p 2294:22” 就将2294抓发到22端口来提供sftp服务,这样使用起来没有问题.但端口号很难记忆,如果前边有nginx等抓发工 ...
- docker——网络配置
一.网络启动与配置参数 Docker启动时会在主机上自动创建一个docker0虚拟网桥,实际上是一个Linux网桥,可以理解为一个软件交换机,它会在挂载其上的接口之间进行数据转发.同时,Docker随 ...
- Docker中配置国内镜像
1. 为什么要为docker配置国内镜像 在正常情况下,docker有一个默认连接的国外官方镜像,在国外的网友访问该官方镜像自然不成问题,但是国内毕竟不是国外,由于国情不同,中国的网络访问国外官方 ...
随机推荐
- 在 macOS Big Sur 上安装 MySQL 8.x Compressed TAR Archive
因个人能力有限,文章难免存在错误,望斧正,感谢. 版本: macOS 11.6 Intel版本 MySQL 8.0.26 Compressed TAR Archive 一.准备所需文件 前往 MySQ ...
- mongodb基础整理篇————副本原理篇[外篇]
前言 简单介绍一下副本集的原理篇. 正文 下面是几个基本的原理: 副本之间是如何复制的? mongodb 实现此功能的方式是保存操作日志,其中包含了主节点执行的每一次操作,这和mysql比较像. op ...
- @EnableDiscoveryClient 注解如何实现服务注册与发现
@EnableDiscoveryClient 是如何实现服务注册的?我们首先需要了解 Spring-Cloud-Commons 这个模块,Spring-Cloud-Commons 是 Spring-C ...
- GaussDB(DWS)基于Flink的实时数仓构建
本文分享自华为云社区<GaussDB(DWS)基于Flink的实时数仓构建>,作者:胡辣汤. 大数据时代,厂商对实时数据分析的诉求越来越强烈,数据分析时效从T+1时效趋向于T+0时效,为了 ...
- TortoiseGit安装、配置(Git 小乌龟安装)
1 TortoiseGit简介 tortoiseGit是一个开放的git版本控制系统的源客户端,支持Winxp/vista/win7.该软件功能和git一样 不同的是:git是命令行操作模式,tort ...
- 使用纯c#在本地部署多模态模型,让本地模型也可以理解图像
之前曾经分享过纯c#运行开源本地大模型Mixtral-8x7B 当时使用的是llamasharp这个库和Mixtral的模型在本地部署和推理,前段时间我看到llamasharp更新到了0.11.1版本 ...
- 力扣150(java)-逆波兰表达式求值(中等)
题目: 根据 逆波兰表示法,求表达式的值. 有效的算符包括 +.-.*./ .每个运算对象可以是整数,也可以是另一个逆波兰表达式. 注意 两个整数之间的除法只保留整数部分. 可以保证给定的逆波兰表达式 ...
- 基于EasyCV复现ViTDet:单层特征超越FPN
简介: ViTDet其实是恺明团队MAE和ViT-based Mask R-CNN两个工作的延续.MAE提出了ViT的无监督训练方法,而ViT-based Mask R-CNN给出了用ViT作为bac ...
- 从Redis7.0发布看Redis的过去与未来
简介: 经历接近一年的开发.三个候选版本,Redis 7.0终于正式发布,这是Redis历史上改变最多的一个大版本,它不仅包含了50多个新命令,还有大量核心新特性与改进,这些不仅能够解决用户使用中的诸 ...
- 为余势负天工背,云原生内存数据库Tair助力用户体验优化
简介:作为双11大促承载流量洪峰的利器,Tair支撑了电商交易核心体验场景.不仅在数十亿QPS的峰值下保持着亚毫秒级别的顺滑延迟,同时在电商交易核心体验场景上也做出了技术创新. 作者 | 漠冰 ...