README.md 6.8 KB

云订单系统

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                    # 云订单系统消费者-创建订单延时任务(测试)