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