目录
安装doker
建议使用阿里云下载地址下载
- 下载doker安装包阿里云下载地址
第一个选项是安装liunx子系统
没有开启虚拟化
查看windows功能发现子系统已安装
进入bios打开虚拟化(cmd systeminfo查看虚拟化有没有打开或在任务管理器查看)
此时window是 功能里面的Hyper-V是没有安装的
点击左下角 Skip tutorial 就可以跳过教程 进入docker,
配置阿里云镜像加速器,在以下输入框中填写下方加速器地址:
"registry-mirrors": ["阿里云加速地址"]
这里不建议升级,最新版本不稳定
到这里docker 就安装完成了。之后我们配置一个swoole环境
安装phpswoole环境
打开cmd 收入docker -v 查看doker 是否安装成功
创建容器
- 拉去镜像
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;
- 创建容器
docker run --name mer_pro -itd -p 8325:8325 -v D:\crmeb\demo:/var/www phpswoole/swoole:4.5-php7.4
安装mysql
-
拉去mysql镜像
docker pull mysql:5.7
-
创建mysql容器
- 在本地创建mysql配置文件my.cnf,创建mysql容器是需要映射配置文件,方便修改
[mysqld] sql_mode=NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
- 创建容器
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
- 如果端口号被占用了,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
- 拉取镜像
docker pull redis:latest
2. 创建redis容器(本地端口也是被占用的,换其它端口映射,防止冲突)docker run -itd --name redis -p 6380:6379 redis
- ok 简单测试一下mysql和redis容器
- mysql 链接成功过
- redis链接成功
- mysql 链接成功过
镜像归档和导入(以下命令都是作用域当前目录)
- 归档
# 打包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
- 导入
# 导入redis docker load < redis.tar # 导入mysql docker load < mysql_5.7.tar # 导入phpswoole/swoole docker load < phpswoole_4.5-php7.4.tar
安装crmeb多商户商城系统
-
容器切换国内源
备份cp /etc/apt/sources.list /etc/apt/sources.list.bak
将线上文件拷贝到线下
cp /etc/apt/sources.list /var/www/sources.list
修改源
# 阿里云源 deb http://mirrors.aliyun.com/debian/ buster main non-free contrib deb-src http://mirrors.aliyun.com/debian/ buster main non-free contrib deb http://mirrors.aliyun.com/debian-security buster/updates main deb-src http://mirrors.aliyun.com/debian-security buster/updates main deb http://mirrors.aliyun.com/debian/ buster-updates main non-free contrib deb-src http://mirrors.aliyun.com/debian/ buster-updates main non-free contrib deb http://mirrors.aliyun.com/debian/ buster-backports main non-free contrib deb-src http://mirrors.aliyun.com/debian/ buster-backports main non-free contrib # 清华大学源 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释 deb https://mirrors.tuna.tsinghua.edu.cn/debian/ buster main contrib non-free # deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ buster main contrib non-free deb https://mirrors.tuna.tsinghua.edu.cn/debian/ buster-updates main contrib non-free # deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ buster-updates main contrib non-free deb https://mirrors.tuna.tsinghua.edu.cn/debian/ buster-backports main contrib non-free # deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ buster-backports main contrib non-free deb https://mirrors.tuna.tsinghua.edu.cn/debian-security buster/updates main contrib non-free # deb-src https://mirrors.tuna.tsinghua.edu.cn/debian-security buster/updates main contrib non-free
如果遇到无法拉取 https 源的情况,请先使用 http 源并安装:
sudo apt install apt-transport-https ca-certificates
将线下文件拷贝到线上
cp /var/www/sources.list /etc/apt/sources.list
更新源
apt-get update
-
将代码放到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
按装 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
pecl install igbinary && docker-php-ext-enable igbinary
配置一下php.ini就可以了
安装lzf
pecl install lzf && docker-php-ext-enable lzf
Sacrifice speed in favour of compression ratio? 为了压缩比牺牲速度?
同样添加一下php.ini
安装zstd
pecl install zstd && docker-php-ext-enable zstd
添加一下php.ini 重新安装redis扩展
安装libzstd
apt-get update && apt-get install libzstd-dev
再次安装redis
pecl install -o -f redis && rm -rf /tmp/pear && docker-php-ext-enable redis
安装成功
好的 依旧报错,这里是应为redis内有连接上,修改一下程序里的.evn文件
修改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
我们需要的扩展就都安装好了
cd 到我们映射的项目目录,启动swoole
cd /var/www
php think swoole
本地访问http://localhost:8325(8325是映射的端口号)记得修改程序里面swoole的端口(php容器端口号)
安装检测
完事
win开启虚拟化(原文地址)
- 查看虚拟化是否开启,cmd输入systeminfo
- 进入到BIOS管理界面后,我们在管理界面中找到“Advanced”–>“CPU Configuration”菜单,点击进去后,如果是Intel CPU则找到“Intel Virtual Technology”,然后设置为“Enable”状态;如果是AMD CPU则找到“SVM Support”,然后设置为“Enable”状态。注:不同电脑的菜单存在不同的名称,开启时也可以到各自电脑品牌官网查看开启路径。
- 进入系统后,鼠标移至左下角任务栏的“微软图标”上,然后右键,在弹出的窗口中选择“应用和功能”;
- 弹出“应用和功能”的设置窗口后,我们再选择点击“可选功能”
- 在新窗口中,我们把页面用鼠标滚轮拉到最下面,找到“更多Windows功能”
- 然后弹出来的“Windows功能”窗口中找到“Hyper-V”,我们把“Hyper-V GUI管理工具”和“Hyper-V平台”勾选上,然后点击“确定”按键,此时将会安装Hyper-V功能相关的组件。
- 安装完成后,需要重启电脑方可生效。
win无法进入dios(原文地址)
-
打开控制面板,选择硬件和声音
-
点电源选项,进入下一菜单
-
这一步,选择电源按钮功能
-
出来这个界面,就更改当前不可用的设置,专门修改箭头指向的启用快速启动。PS:这个是小编取消完后截的图,这个默认是开启的。
问题1
解决
https://czf-net.xyz/res/ 下载wsl.msi
提问
- 常量的命名规范?答案1
- Git新功能的提交规范 答案2
- php中单引号’'和双引号""的区别 答案3
- PHP echo 和 print 语句区别 答案4
- Mysql 取余函数 答案5
- Mysql upper函数的作用 答案6
- select length(‘张三’) as 姓名;输出是多少 答案7
- Mysql now()和curdate()有什么区别?答案8
- 使用日期和时间函数计算当前日期是一年的第几周。答案9
- 3.14159四舍五入保留两位小数 答案10