萤火虫商城应用

本教程学习内容:

  1. 使用URLOS制作萤火虫商城镜像
  2. 添加镜像到URLOS
  3. 基于添加的镜像创建萤火虫商城应用
  4. 安装萤火虫商城应用并测试

如果还没有docker镜像仓库账户的,先到 阿里云容器镜像仓库注册一个账户,创建好名为php的仓库,再进行下面的教程

使用URLOS制作萤火虫商城镜像

  1. 使用ssh登录安装有URLOS的云主机(URLOS的安装请参考官方教程)。

  2. 创建Dockerfile文件,并填入以下内容:

    1. FROM registry.cn-shanghai.aliyuncs.com/urlos/php:5.6-fpm-alpine
    2. RUN apk add git \
    3. && cd /home && git clone https://gitee.com/xany/bestshop-php.git \
    4. && mv bestshop-php yoshop \
    5. && tar czf yoshop.tar.gz yoshop \
    6. && rm -rf yoshop/ \
    7. && apk del git
  3. 执行以下命令(包括最后面的”.”),生成docker镜像:

    1. docker build -t registry.cn-shanghai.aliyuncs.com/urlos4/yoshop:latest-fpm-alpine .

    注:这里的urlos4为命名空间,registry.cn-shanghai.aliyuncs.com为阿里仓库线路的域名,请根据自己实际的替换

  4. 运行镜像并进入容器,命令如下:

    1. docker run -itd --name yoshop001 -p 8080:80 registry.cn-shanghai.aliyuncs.com/urlos4/yoshop:latest-fpm-alpine # 创建容器的命令 对外端口是8080,根据情况自己填写合适的端口
    2. docker exec -it yoshop001 sh # 进入容器的命令
    3. cd /home # 进入home目录
    4. tar xzf yoshop.tar.gz
    5. mv yoshop /var/www/html/ # 将程序剪切到网站目录

    创建容器失败的情况:如果是端口冲突,换一个端口;如果是容器名字冲突,换一个容器的名字或者删除已存在的容器。查看所有容器:“docker ps -a”,删除容器:执行命令“docker rm -f 容器id”。

  5. 配置Nginx的虚拟站点:

    1. vi /etc/nginx/conf.d/default.conf
  6. 输入以下配置:

    1. server {
    2. listen 80 default_server;
    3. root /var/www/html/yoshop/web/;
    4. index index.php index.html;
    5. location / {
    6. if (!-e $request_filename) {
    7. rewrite ^(.*)$ /index.php?s=/$1 last;
    8. break;
    9. }
    10. }
    11. location ~ \.(php|phtml)$ {
    12. include fastcgi.conf;
    13. fastcgi_pass 127.0.0.1:9000;
    14. }
    15. }
  7. 授予var/www/html/fastadmin/application/database.php权限,并启动nginx、php:

    1. chmod -R 777 /var/www/html/yoshop/
    2. test -d /run/nginx || mkdir /run/nginx
    3. nginx
    4. php-fpm -D
  8. 通过浏览器访问ip+端口(例子这里是8080),如图: image-20200413144001130

  9. 确认无误后,能够正常打开这个页面后:

    1. docker rm -f 容器id # 删除刚才用于检查测试的容器
    2. docker login --username=您的用户名 registry.cn-shanghai.aliyuncs.com # 登录到阿里云容器镜像仓库
    3. docker push registry.cn-shanghai.aliyuncs.com/urlos4/yoshop:latest-fpm-alpine # 上传到仓库

    注:这里的urlos4为命名空间,registry.cn-shanghai.aliyuncs.com为阿里仓库线路的域名,请根据自己实际的替换

添加镜像到URLOS

  1. 登录URLOS, 未安装URLOS的,请参考官方教程

  2. 选择镜像管理 ,点击页面右上角添加按钮:

    image-20200413144751008

    1. registry.cn-shanghai.aliyuncs.com/urlos4/yoshop:latest-fpm-alpine

    注:这里的urlos4为命名空间,registry.cn-shanghai.aliyuncs.com为阿里仓库线路的域名,请根据自己实际的替换

    image-20200408152153893

    image-20200413144830862

    填写镜像大小,执行以下命令可查看本地仓库中显示的镜像大小

    1. docker images

    配置填写后,点击提交,保存到URLOS。

基于添加的镜像创建萤火虫商城应用

  1. 进入应用管理页面,搜索”php5.6“,这里以应用”5.6-fpm-alpine3.8“为例,选择复制应用 image-20200411140323609

  2. 应用配置填写 image-20200413150504865

    下面步骤填写项默认: image-20200413150647078

    image-20200413150712259

    image-20200413150725397

    image-20200413150837383

    开发者信息,根据实际情况填写:

    image-20200413150950783

    扩展设置填写如下:

    image-20200413151257662

    脚本设置如下:

    image-20200413151431257

    1. # 安装脚本
    2. test -d /etc/nginx/conf.d/ || mkdir -p /etc/nginx/conf.d/
    3. test -d /run/nginx || mkdir -p /run/nginx
    4. test -d /var/tmp/nginx && chown -R nobody:nobody /var/tmp/nginx
    5. test -d /data/www || mkdir -p /data/www
    6. if [ ! -d /data/www/yoshop ]; then
    7. cd /home
    8. tar xf yoshop.tar.gz && mv yoshop /data/www && rm -rf ./yoshop
    9. chmod -R 777 /data/www/yoshop
    10. fi
    11. # 启动脚本
    12. php-fpm -D
    13. nginx

    按照上面的配置填写后,点击提交。

  3. 设置yoshop程序的数据库配置模板文件: image-20200413162321727

    image-20200413162359034

    模板信息填写如下:

    image-20200413162442925

    image-20200413162554011

    模板标识 :

    1. yoshop:database.php

    软件版本:

    1. latest

    目标替换文件:

    1. /data/www/yoshop/source/application/database.php

    模板内容:

    1. <?php
    2. // 数据库配置
    3. // urlos扩展变量,通过urlos插件解析
    4. $config = [
    5. 'host' => '{w:dbHost:w}',
    6. 'database' => '{w:dbName:w}',
    7. 'username' => '{w:dbUser:w}',
    8. 'password' => '{w:dbPassword:w}',
    9. 'port' => '{w:dbPort:w}',
    10. 'charset' => 'utf8',
    11. ];
    12. return [
    13. // 数据库类型
    14. 'type' => 'mysql',
    15. // 服务器地址
    16. 'hostname' => $config['host'],
    17. // 数据库名
    18. 'database' => $config['database'],
    19. // 用户名
    20. 'username' => $config['username'],
    21. // 密码
    22. 'password' => $config['password'],
    23. // 端口
    24. 'hostport' => $config['port'],
    25. // 连接dsn
    26. 'dsn' => '',
    27. // 数据库连接参数
    28. 'params' => [],
    29. // 数据库编码默认采用utf8
    30. 'charset' => $config['charset'],
    31. // 数据库表前缀
    32. 'prefix' => 'yoshop_',
    33. // 数据库调试模式
    34. 'debug' => true,
    35. // 数据库部署方式:0 集中式(单一服务器),1 分布式(主从服务器)
    36. 'deploy' => 0,
    37. // 数据库读写是否分离 主从式有效
    38. 'rw_separate' => false,
    39. // 读写分离后 主服务器数量
    40. 'master_num' => 1,
    41. // 指定从服务器序号
    42. 'slave_no' => '',
    43. // 是否严格检查字段是否存在
    44. 'fields_strict' => true,
    45. // 数据集返回类型
    46. 'resultset_type' => 'collection',
    47. // 自动写入时间戳字段
    48. 'auto_timestamp' => true,
    49. // 时间字段取出后的默认时间格式
    50. 'datetime_format' => 'Y-m-d H:i:s',
    51. // 是否需要进行SQL性能分析
    52. 'sql_explain' => false,
    53. ];
  4. 添加扩展变量 image-20200413163142103

    image-20200413163216843

    image-20200413163412892

    配置信息:

    1. 变量名称: installAppTips
    2. 标签名称: 安装提示
    3. 输入类型: 输入提示
    4. 输入提示: [
    5. "创建服务完成后,请手动导入数据库数据(/www/yoshop/doc/database/install.sql)",
    6. "后台登录账户:admin 密码:yinghuo",
    7. "下载小程序端源码:https://gitee.com/xany/yoshop_wechat"
    8. ]
    9. 禁止修改: true
    10. 输入步骤: 1
  5. 修改数据库字符集扩展变量,如图: image-20200413163825170

    image-20200413164031535

这样萤火虫商城应用创建完成。

安装萤火虫商城应用并测试

  1. 应用管理列表找到刚才新添加的萤火虫商城应用,选择创建服务

    image-20200413152441079

  1. 1、2、3步骤填写如下:

    image-20200413164446089

    image-20200413153121939

    image-20200413165050644

  1. 切换到网站选填步骤,填写网站根目录: image-20200413155522986

  2. 然后切换到Nginx配置步骤,填写如下:

    image-20200413160006850

    伪静态配置:

    1. if (!-e $request_filename) {
    2. rewrite ^(.*)$ /index.php?s=/$1 last;
    3. break;
    4. }

    运行模式选择兼容模式!!! 运行模式选择兼容模式!!! 运行模式选择兼容模式!!!

    按照上面的配置填写后,提交部署。

    • 创建服务完成后,请手动导入数据库数据(/www/yoshop/doc/database/install.sql

    • 后台登录账户:admin 密码:yinghuo

    • 下载小程序端源码:https://gitee.com/xany/yoshop_wechat

  3. 部署完成后,在浏览器访访问刚才填写的网站域名+端口号,如图:

    image-20200413180710569

    登录后如图:

    image-20200413180824333