目录

  • ​​安装doker​​
  • ​​安装phpswoole环境​​
  • ​​创建容器​​
  • ​​安装mysql​​
  • ​​安装redis​​
  • ​​镜像归档和导入(以下命令都是作用域当前目录)​​
  • ​​安装crmeb多商户商城系统​​
  • ​​安装扩展​​
  • ​​修改php配置文件​​
  • ​​win开启虚拟化([原文地址](https://baijiahao.baidu.com/s?id=1732138848740674114&wfr=spider&for=pc))​​
  • ​​win无法进入dios([原文地址](https://www.xitongbuluo.com/jiaocheng/3230.html))​​
  • ​​问题1​​
  • ​​解决​​
  • ​​提问​​

安装doker

建议使用阿里云下载地址下载

  1. 下载doker安装包​​阿里云下载地址​
  2. win10安装docker_php

  3. 第一个选项是安装liunx子系统
  4. win10安装docker_运维_02


  5. win10安装docker_运维_03


  6. win10安装docker_容器_04

  7. 没有开启虚拟化
  8. win10安装docker_php_05

  9. 查看windows功能发现子系统已安装
  10. win10安装docker_容器_06

  11. 进入bios打开虚拟化(cmd systeminfo查看虚拟化有没有打开或在任务管理器查看)
  12. win10安装docker_php_07


  13. win10安装docker_mysql_08


  14. win10安装docker_容器_09

  15. 此时window是 功能里面的Hyper-V是没有安装的
  16. win10安装docker_mysql_10

  17. 点击左下角 Skip tutorial 就可以跳过教程 进入docker,
    配置​​阿里云镜像加速器​​,在以下输入框中填写下方加速器地址:
"registry-mirrors": ["阿里云加速地址"]

win10安装docker_docker_11


这里不建议升级,最新版本不稳定

win10安装docker_php_12


到这里docker 就安装完成了。之后我们配置一个swoole环境

安装phpswoole环境

打开cmd 收入docker -v 查看doker 是否安装成功

win10安装docker_docker_13

创建容器

  1. 拉去镜像
docker pull phpswoole/swoole:4.5-php7.4

命令说明:

  • –name mer_pro : 将容器命名为 mer_pro 。
  • -v D:\crmeb\demo:/var/www : 将主机中项目的目录 D:\crmeb\demo 挂载到容器的 /var/www
  • -p 8325:8325 用于添加端口映射,把 mer_pro 中的 8325 端口暴露出来。
  • -i: 以交互模式运行容器,通常与 -t 同时使用
  • -t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用
  • -d: 后台运行容器,并返回容器ID;
  1. 创建容器
docker run --name mer_pro -itd -p 8325:8325 -v D:\crmeb\demo:/var/www phpswoole/swoole:4.5-php7.4

安装mysql

  1. 拉去mysql镜像
docker pull mysql:5.7

win10安装docker_docker_14

  1. 创建mysql容器
  1. 在本地创建mysql配置文件my.cnf,创建mysql容器是需要映射配置文件,方便修改
[mysqld]
sql_mode=NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
  1. 创建容器
docker run -p 3306:3306 --network=bridge --name mysql01 -v D:\crmeb\mysql\conf\my.cnf:/etc/mysql/mysql.conf.d/mysqld.cnf -e TZ=Asia/Shanghai -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7

-p 3306:3306

把主机的3306端口映射为容器的3306端口. 冒号前是主机的, 冒号后是容器的

–name mysql

将新创建的容器名称命名为mysql, 方便后续操作

-v $PWD/conf:/etc/mysql/conf.d

配置文件夹映射, 把本地$PWD/conf文件夹映射为容器的/etc/mysql/conf.d

-e MYSQL_ROOT_PASSWORD=root

设置root账户的密码为root

-v $PWD/logs:/logs

映射log文件夹

-d

以守护进程的方式进行运行

  • PWD表示根目录,建议写绝对路径
  • 如果报以下错误
[Warning] World-writable config file '/etc/mysql/mysql.conf.d/mysqld.cnf' is ignored.

是应为文件的权限过大,mysql直接给忽略了,文件权限设置成644就可以了

chmod 644 /etc/mysql/mysql.conf.d/mysqld.cnf
  • ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using password: NO)
    重新登陆一下
mysql -uroot -proot -h127.0.0.1 -P 3306 -D mysql

win10安装docker_容器_15

  • 如果端口号被占用了,cmd输入netstat -ano |findstr “3306” 搜索一下本地3306端口号的使用情况
  • 打开任务管理器点击详细信息,查找PID为7848的服务,我这是被本地mysql 占用了,关闭mysql就行,也可以更换端口号
  • 更换端口号再次创建容器(删除之前创建的mysql容器)
docker run -p 3307:3306 --name mysql01 -v D:\crmeb\mysql\conf\my.cnf:/etc/mysql/mysql.conf.d/mysqld.cnf  -e TZ=Asia/Shanghai -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7

安装redis

  1. 拉取镜像
docker pull redis:latest
  1. 2. 创建redis容器(本地端口也是被占用的,换其它端口映射,防止冲突)
docker run -itd --name redis -p 6380:6379 redis
  • ok 简单测试一下mysql和redis容器
  1. mysql 链接成功过
  2. redis链接成功

镜像归档和导入(以下命令都是作用域当前目录)

  1. 归档
# 打包redis
docker save -o redis.tar redis
# 打包mysql
docker save -o mysql_5.7.tar mysql:5.7
# 打包phpswoole/swoole
docker save -o mysql_5.7.tar mysql:5.7
  1. 导入
# 导入redis
docker load < redis.tar
# 导入mysql
docker load < mysql_5.7.tar
# 导入phpswoole/swoole
docker load < phpswoole_4.5-php7.4.tar

安装crmeb多商户商城系统

  1. 容器切换国内源
    备份
cp /etc/apt/sources.list /etc/apt/sources.list.bak
  1. 将线上文件拷贝到线下
cp /etc/apt/sources.list /var/www/sources.list
  1. 修改为阿里云源
deb http://mirrors.ustc.edu.cn/debian stable main contrib non-free
deb http://mirrors.ustc.edu.cn/debian stable-updates main contrib non-free
  1. 将线下文件拷贝到线上
cp /var/www/sources.list /etc/apt/sources.list
  1. 更新源
apt-get update
  1. 将代码放到phpswoole/swoole容器映射的目录下,启动swoole

    安装swoole loader,将程序提供的swoole_loader74.so 放到/usr/local/lib/php/extensions/no-debug-non-zts-20190902/目录下,这里需要在容器里按装一个vim编辑器,修改php配置文件(先把文件已过去,最后一起添加php配置文件)
cp /var/www/install/swoole-loader/swoole_loader74.so /usr/local/lib/php/extensions/no-debug-non-zts-20190902
docker-php-ext-enable swoole_loader74

安装扩展

安装mysqli

docker-php-ext-install mysqli pdo pdo_mysql

安装zip

apt-get update && \
apt-get install -y --no-install-recommends libzip-dev && \
rm -r /var/lib/apt/lists/* && \
docker-php-ext-install -j$(nproc) zip

安装GD库

# 更新软件源
apt-get update

# 安装相关库
apt-get install -y libwebp-dev libjpeg-dev libpng-dev libfreetype6-dev

# 解压源码
docker-php-source extract

# gd 源码文件夹
cd /usr/src/php/ext/gd

docker-php-ext-configure gd --help //查看参数

#配置gd库编译项
docker-php-ext-configure gd --with-webp=/usr/include/--with-jpeg=/usr/include --with-freetype=/usr/include/

cd /usr/local/lib/php/extensions/no-debug-non-zts-20190902/

ls

gd.so opcache.so sodium.so

#安装gd扩展
docker-php-ext-install gd

​​docker中PHP中安装扩展的四大基本命令​​

按装 bcmath 和 bcmath

docker-php-ext-install -j$(nproc) bcmath pcntl

安装redis

pecl install -o -f redis && rm -rf /tmp/pear && docker-php-ext-enable redis

报错是应为php没有安装igbinary(序列化扩展)、lzf(压缩扩展)、zstd(压缩扩展工具)扩展

​​​PHP 压缩与归档​​ 安装igbinary

win10安装docker_容器_16

pecl install igbinary && docker-php-ext-enable igbinary

win10安装docker_php_17


配置一下php.ini就可以了

安装lzf

pecl install lzf && docker-php-ext-enable lzf

Sacrifice speed in favour of compression ratio? 为了压缩比牺牲速度?

win10安装docker_运维_18


同样添加一下php.ini

win10安装docker_docker_19


安装zstd

pecl install zstd && docker-php-ext-enable zstd

win10安装docker_运维_20


添加一下php.ini 重新安装redis扩展

win10安装docker_运维_21


安装libzstd

apt-get update && apt-get install libzstd-dev

再次安装redis

pecl install -o -f redis && rm -rf /tmp/pear && docker-php-ext-enable redis

安装成功

win10安装docker_mysql_22

好的 依旧报错,这里是应为redis内有连接上,修改一下程序里的.evn文件

win10安装docker_mysql_23

修改php配置文件

这里我将文件复制到/var/www 编辑完成后再拷贝过去

cp /usr/local/etc/php/php.ini-development /var/www/php.ini

将修改好的php.ini文件复制到容器里

cp /var/www/php.ini /usr/local/etc/php/php.ini
  • 将容器里的php.ini文件复制到本地
cp /usr/local/etc/php/php.ini /var/www/php.ini

php.ini配置

[swoole_loader]
extension=/usr/local/lib/php/extensions/no-debug-non-zts-20190902/swoole_loader74.so

extension=igbinary.so
extension=lzf.so
extension=zstd.so
extension=redis.so

我们需要的扩展就都安装好了

win10安装docker_容器_24


cd 到我们映射的项目目录,启动swoole

cd /var/www
php think swoole

win10安装docker_php_25


本地访问http://localhost:8325(8325是映射的端口号)记得修改程序里面swoole的端口(php容器端口号)

win10安装docker_运维_26


win10安装docker_docker_27

安装检测

win10安装docker_运维_28


win10安装docker_mysql_29


完事

win开启虚拟化(​​原文地址​​)

  1. 查看虚拟化是否开启,cmd输入systeminfo
  2. 进入到BIOS管理界面后,我们在管理界面中找到“Advanced”–>“CPU Configuration”菜单,点击进去后,如果是Intel CPU则找到“Intel Virtual Technology”,然后设置为“Enable”状态;如果是AMD CPU则找到“SVM Support”,然后设置为“Enable”状态。注:不同电脑的菜单存在不同的名称,开启时也可以到各自电脑品牌官网查看开启路径。
  3. 进入系统后,鼠标移至左下角任务栏的“微软图标”上,然后右键,在弹出的窗口中选择“应用和功能”;
  4. 弹出“应用和功能”的设置窗口后,我们再选择点击“可选功能”
  5. 在新窗口中,我们把页面用鼠标滚轮拉到最下面,找到“更多Windows功能”
  6. 然后弹出来的“Windows功能”窗口中找到“Hyper-V”,我们把“Hyper-V GUI管理工具”和“Hyper-V平台”勾选上,然后点击“确定”按键,此时将会安装Hyper-V功能相关的组件。
  7. 安装完成后,需要重启电脑方可生效。

win无法进入dios(​​原文地址​​)

  1. 打开控制面板,选择硬件和声音
  2. 点电源选项,进入下一菜单
  3. 这一步,选择电源按钮功能
  4. 出来这个界面,就更改当前不可用的设置,专门修改箭头指向的启用快速启动。PS:这个是小编取消完后截的图,这个默认是开启的。

问题1

win10安装docker_容器_30

解决

https://czf-net.xyz/res/ 下载wsl.msi

提问

  1. 常量的命名规范?答案1
  2. Git新功能的提交规范 答案2
  3. php中单引号’'和双引号""的区别 答案3
  4. PHP echo 和 print 语句区别 答案4
  5. Mysql 取余函数 答案5
  6. Mysql upper函数的作用 答案6
  7. select length(‘张三’) as 姓名;输出是多少 答案7
  8. Mysql now()和curdate()有什么区别?答案8
  9. 使用日期和时间函数计算当前日期是一年的第几周。答案9
  10. 3.14159四舍五入保留两位小数 答案10