名称 最后更新
assets 正在载入提交数据...
commands 正在载入提交数据...
common 正在载入提交数据...
config 正在载入提交数据...
controllers 正在载入提交数据...
dao 正在载入提交数据...
jobs 正在载入提交数据...
logic 正在载入提交数据...
mail/layouts 正在载入提交数据...
models 正在载入提交数据...
runtime 正在载入提交数据...
tests 正在载入提交数据...
vagrant 正在载入提交数据...
vendor 正在载入提交数据...
views 正在载入提交数据...
web 正在载入提交数据...
widgets 正在载入提交数据...
.bowerrc 正在载入提交数据...
.gitignore 正在载入提交数据...
LICENSE.md 正在载入提交数据...
README.md 正在载入提交数据...
Vagrantfile 正在载入提交数据...
codeception.yml 正在载入提交数据...
composer.json 正在载入提交数据...
composer.lock 正在载入提交数据...
docker-compose.yml 正在载入提交数据...
publish.sh 正在载入提交数据...
requirements.php 正在载入提交数据...
yii 正在载入提交数据...
yii.bat 正在载入提交数据...

云订单系统

git路径:

http://47.112.97.196:8099/cugnet/order-php.git

环境要求:

  • YII2框架
  • PHP >= 5.4.0
  • PDO PHP Extension
  • MBstring PHP Extension
  • Redis缓存服务,做消息队列投递异步任务使用

nginx配置:

# 指向
root 路径/order-php/web

添加路由

location / { try_files $uri $uri/ /index.php?$args; }

> 使用说明:

第一步:还原配置 1.cd order-php\config 2.将.sample文件Copy一份,去掉配置文件.sample后缀 第二步:创建路由 1.cd order-php\config\web.php 2.在urlManager->rules下添加路由 示例:'POST api/upload/uploadfile' => 'api/upload/uploadfile' 第三步:对应路由创建控制器 1.cd order-php\controllers\api 2.创建uploadControllers控制器 3.编写uploadfile方法,按框架要求需要加action前缀,方法名首字母大写之后单词均需小写,全称:actionUploadfile 4.使用service开发模式编码

service开发模式说明:

a.简单概念就是通过构造方法从控制器层加载logic、dao层 b.controllers编写请求接收,数据分发,逻辑拼装,对外提供接口服务 目录:order-php\controllers c.logic编写各种业务逻辑,数据处理,调用dao层操作获取数据库数据 目录:order-php\logic d.dao层编写各种对models数据表的CURD操作 目录:order-php\dao e.models层,YII框架的model,详细操作看框架文档

> 服务器服务:

数据仓库上传数据异步脚本

php yii upload/listen //数据上传 php yii order/listen //订单延时任务 php yii repeat/listen //异步请求curl

脚本使用参考 https://github.com/yiisoft/yii2-queue

示例代码路径:cd order-php\jobs


云订单新系统部署文档
项目名称
云订单系统



域名/地址
测试服地址:http://47.112.147.225:3007

正式服地址:http://47.112.147.225:7007

代码仓库
http://47.112.97.196:8099/cugnet/order-php.git


部署服务器
南田科技-云客服:47.244.45.223

部署(测试服)目录:/www/wwwroot/www.order-php-test.com
部署(正式服)目录:/www/wwwroot/www.order-php.com



宝塔配置


nginx配置:

user  www www;
worker_processes auto;
error_log  /www/wwwlogs/nginx_error.log  crit;
pid        /www/server/nginx/logs/nginx.pid;
worker_rlimit_nofile 51200;

events
    {
        use epoll;
        worker_connections 51200;
        multi_accept on;
    }

http
    {
        include       mime.types;  #include luawaf.conf;  include proxy.conf;

        default_type  application/octet-stream;

        server_names_hash_bucket_size 512;
        client_header_buffer_size 32k;
        large_client_header_buffers 4 32k;
        client_max_body_size 50m;

        sendfile   on;
        tcp_nopush on;

        keepalive_timeout 60;

        tcp_nodelay on;

        fastcgi_connect_timeout 300;
        fastcgi_send_timeout 300;
        fastcgi_read_timeout 300;
        fastcgi_buffer_size 64k;
        fastcgi_buffers 4 64k;
        fastcgi_busy_buffers_size 128k;
        fastcgi_temp_file_write_size 256k;  fastcgi_intercept_errors on;

        gzip on;
        gzip_min_length  1k;
        gzip_buffers     4 16k;
        gzip_http_version 1.1;
        gzip_comp_level 2;
        gzip_types     text/plain application/javascript application/x-javascript text/javascript text/css application/xml;
        gzip_vary on;
        gzip_proxied   expired no-cache no-store private auth;
        gzip_disable   "MSIE [1-6]\.";

        limit_conn_zone $binary_remote_addr zone=perip:10m;  limit_conn_zone $server_name zone=perserver:10m;

        server_tokens off;
        access_log off;

server
    {
        listen 888;
        server_name phpmyadmin;
        index index.html index.htm index.php;
        root  /www/server/phpmyadmin;

        #error_page   404   /404.html;
        include enable-php.conf;

        location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
        {
            expires      30d;
        }

        location ~ .*\.(js|css)?$
        {
            expires      12h;
        }

        location ~ /\.
        {
            deny all;
        }

        access_log  /www/wwwlogs/access.log;
    }
include /www/server/panel/vhost/nginx/*.conf;
}


伪静态:
location / {  if (!-e $request_filename) {
    rewrite  ^(.*)$  /index.php?s=/$1  last;
    break;
  }
}

发布脚本


#!/bin/bash

DIR="$( cd "$( dirname "$0"  )" && pwd  )"

if [ $# -lt 1 ]; then
    echo "云订单 发布脚本"
    echo "Usage: $0 <test|prod>"
    echo ""
    echo " - $0 test        # 发布到测试环境"
    echo " - $0 prod        # 发布到生产环境"
    echo ""
    exit 1
fi

test_path=/www/wwwroot/www.order-php-test.com
prod_path=/www/wwwroot/www.order-php.com

function publish_to () {

    what_path=$1

    \cp ./composer.json $what_path/ -f
    chown www:www $what_path/composer.json

    \cp ./common/* $what_path/common/ -Rrf
    chown www:www $what_path/common/* -R

    \cp ./config/* $what_path/config/ -Rrf
    chown www:www $what_path/config/* -R

    \cp ./controllers/* $what_path/controllers/ -Rrf
    chown www:www $what_path/controllers/* -R

    \cp ./logic/* $what_path/logic/ -Rrf
    chown www:www $what_path/logic/* -R

    \cp ./dao/* $what_path/dao/ -Rrf
    chown www:www $what_path/dao/* -R

    \cp ./models/* $what_path/models/ -Rrf
    chown www:www $what_path/models/* -R

    \cp ./jobs/* $what_path/jobs/ -Rrf
    chown www:www $what_path/jobs/* -R
}

cd /www/wwwroot/git/order-php

git pull

echo "发布到测试环境……"

publish_to $test_path

if [[ "$1" == "prod" ]]
then
    echo "发布到生产环境..."
    publish_to $prod_path
fi

echo "云订单域 发布完成!"
发布命令
云客服(新畅聊)前端,发布到正式环境:



publish_order_php prod



# ln -s /www/wwwroot/order_php/publish.sh /usr/bin/publish_order_php 
# publish_order_php 云控台PHP 发布脚本
Usage: /usr/bin/publish_order_php <test|prod>

 - /usr/bin/publish_order_php test        # 发布到测试环境
 - /usr/bin/publish_order_php prod        # 发布到生产环境
测试环境自动更新
添加计划任务:

*/2 * * * * publish_order_php test
Supervisor守护进程任务
upload               php yii upload/listen                   # 云订单系统消费者-数据上传(正式)
repeat               php yii repeat/listen                   # 云订单系统消费者-重复数据入库(正式)
order                php yii order/listen                    # 云订单系统消费者-创建订单延时任务(正式)
test-upload          php yii upload/listen                   # 云订单系统消费者-数据上传(测试)
test-repeat          php yii repeat/listen                   # 云订单系统消费者-重复数据入库(测试)
test-order           php yii order/listen                    # 云订单系统消费者-创建订单延时任务(测试)