
PHP微服务系列
Donjan
gayhub:https://github.com/donjan-deng
展开
-
使用Docker部署Angular项目
Docker部署Angular项目有两种方法,一种是服务端渲染,这个官方文档已有说明,另一种就是使用node镜像编译后放入web服务器。由于在node环境,所以使用express最为便捷了。创建server.jsconst express = require('express');const app = express();const config = { root: __dir...原创 2019-12-19 09:38:36 · 3253 阅读 · 2 评论 -
Angular 自定义管道pipes的使用
Angular的管道是处理数据到显示的逻辑,我们获取的用户的roles是json的数组,并不能直接展示,所以需要写一个管道展示用户所有的角色。创建src/app/helpers/pipes.ts写一个自定义管道arrayToString /** * * @param value 传入值 * @param defaultStr 默认显示 * @param split ...原创 2019-12-18 10:46:27 · 650 阅读 · 0 评论 -
Angular 自定义结构型指令structural directive的使用
Angular的结构型指令的职责是 HTML 布局。 它们塑造或重塑 DOM 的结构,比如添加、移除或维护这些元素。说白了就是对网页的结构进行控制,NgIf,NgFor都是结构型指令。创建src/app/helpers/directive.ts写一个结构指令appCan@Directive({ selector: '[appCan]' })export class CanDirective ...原创 2019-12-18 10:34:14 · 643 阅读 · 0 评论 -
Angular使用Interceptor(拦截器)请求添加token并统一处理API错误
前后端分离的项目,大多都是无状态的,我们使用JSON Web Tokens进行身份验证,但是每次请求都手动添加token这种事情是不可能做的,因为懒,这里就要用到拦截器Interceptor创建src/app/app-auth-interceptor.module.ts实现拦截器在src/app/app-routing.module.ts导入import { AuthInterceptor ...原创 2019-12-18 10:07:22 · 4561 阅读 · 0 评论 -
Angular使用RouteReuseStrategy(路由复用策略)实现后台TAB标签
我们后台TAB标签切换的时候需要保存原标签页的状态,当再次切换回来的时候仍然一致,这里就要用到路由复用策略保存快照。抽象类RouteReuseStrategy在@angular/router包abstract class RouteReuseStrategy { abstract shouldDetach(route: ActivatedRouteSnapshot): boolean ...原创 2019-12-18 09:53:03 · 1641 阅读 · 1 评论 -
使用Angular 8 创建项目
环境需求Node.js 10.9.0 或更高版本安装 Angular CLInpm install -g @angular/cli创建项目ng new la-manage # 接下来的选择,我都是默认安装Ant Design UIcd la-manageng add ng-zorro-antd选项? Add icon assets [ Detail: https://ng...原创 2019-12-17 16:10:21 · 758 阅读 · 0 评论 -
Hyperf使用hyperf-permission组件实现权限管理
照说明安装组件https://github.com/donjan-deng/hyperf-permission接口实现RESTful,我的权限节点的组成为/app_name/path/method比如/user-center/users/get 获取用户列表/user-center/users/put 更新用户具体详见数据填充类permission_table_seeder.php...原创 2019-12-17 16:03:17 · 2649 阅读 · 0 评论 -
Nginx代理设置
生成kibana的访问账号生成一个密码openssl passwd '123456'在Portainer创建一个htpasswd的Config,前面为用户名,后面为上面生成的密码user1:Iv64DdYe3QxLg创建Nginx配置文件接下来再创建一个nginx配置文件default.conf创建服务...原创 2019-12-02 13:06:38 · 348 阅读 · 0 评论 -
Jenkins+Docker+GIT持续集成
文章目录准备工作编写Dockerfile安装Jenkens添加一个全局凭据保存阿里云镜像仓库的账号密码添加API Token去掉跨站点请求安全设置编写Jenkinsfile添加流水线Jenkens、Docker Hub、Github集成是非常简单的一条龙服务,但我们大部分时间使用的是国内Git仓库,并且源码为私有。这篇文章介绍的是通过Git仓库的Webhooks通知Jenkens执行构建并发布到...原创 2019-11-27 14:58:47 · 870 阅读 · 0 评论 -
Hyperf接入阿里ACM配置中心
后期更改配置有两种方法,一是使用Docker Swarm Config,这个在部署章节有说明。二就是使用在线的配置中心,这里介绍阿里的ACM。注册阿里云并开通ACM https://acm.console.aliyun.com创建一个子帐号,并获取AccessKeyID和AccessKeySecret,这个自行参考阿里的帮助文档。我们在默认空间下创建一个配置Data ID:hyperf.e...原创 2019-11-26 16:35:06 · 1692 阅读 · 0 评论 -
Lumen日志接入elasticsearch
日志分析系统的安装请看部署章节,安装elasticsearch组件composer require elasticsearch/elasticsearch修改config/logging.php添加一个elasticsearch配置'elasticsearch' => [ 'driver' => 'monolog', 'handler' => Monolo...原创 2019-11-26 15:55:16 · 988 阅读 · 0 评论 -
Elasticsearch+Kibana日志分析系统搭建
由于我们的服务分布在各个节点,日志写入本地已经不能很好的访问了,所以需要一个日志中心集中分析日志,本来Elasticsearch+Kibana+Logstash是一整套,但我们目前使用的两个框架已经可以直接写入日志到Elasticsearch,所以不需要Logstash了。安装Elasticsearch在管理节点主机新建一个目录储存数据mkdir -p /home/data/elastics...原创 2019-11-26 14:13:19 · 819 阅读 · 0 评论 -
使用Docker 搭建 minio 文件储存
在宿主机创建一个目录存放文件和配置文件mkdir -p /home/data/minio/datamkdir -p /home/data/minio/configchmod 777 /home/data/minio/data创建容器,上传文件需要外部访问,这里我们映射了主机端口9001到容器9000端口docker run -d --restart always \ -p 900...原创 2019-11-26 13:38:52 · 3608 阅读 · 0 评论 -
Docker Swarm 集群搭建
文章目录环境介绍安装Docker打开端口创建集群创建私有网络安装Portainer面板安装MYSQL和Redis环境介绍我的两台虚拟主机主机名centos IP 192.168.137.200 为管理节点主机名node1 IP 192.168.137.2 为普通节点系统为Centos 7 64位安装Docker分别在两台主机里安装Dockercurl -sSL https://...原创 2019-11-26 10:25:21 · 579 阅读 · 0 评论 -
访问用户中心实现认证
首先我们创建config/service.php用于配置微服务地址。在bootstrap/app.php 注册该配置$app->configure('service');在.env文件增加SERVICE_USER_CENTER=http://192.168.137.200:9504这样我们就可能使用config('service.user_center');获得用户中心的...原创 2019-11-22 15:01:46 · 652 阅读 · 0 评论 -
lumen文件上传设置
安装flysystem组件composer require league/flysystem创建配置文件https://github.com/donjan-deng/la-storage/blob/master/config/filesystems.php,这里我们配置为支持Amazon S3协议的云储存,后面我们将搭建一个支持S3协议的私有云储存。return [ 'defaul...原创 2019-11-22 14:57:33 · 1266 阅读 · 0 评论 -
使用lumen框架创建项目
lumen 6需要PHP >= 7.2,我们仍然使用docker进行开发,我制作了一个基于PHP 7.3的镜像,直接拉来用就可以了docker run -d --name php-apache-dev \ --restart=always \ -v /home/wwwroot:/app \ -p 3000:80 \ donjan/php-apache-dev:7.3.10...原创 2019-11-21 09:40:48 · 1189 阅读 · 0 评论 -
Hyperf框架创建json-rpc服务
我们创建一个User服务供其他服务调用以实现认证和鉴权。创建文件UserService.phpcheckToken 方法接收两个参数,一个token,一个permission,首先验证token获得user,对user的鉴权将在以后的权限认证教程补充。如果认证成功,将返回user.在配置文件server.php增加一个json-rpc服务,监听端口为9504[ 'name' =&...原创 2019-11-12 13:51:19 · 3295 阅读 · 4 评论 -
Hyperf框架使用JWT进行用户认证
配置上一篇文章中我们已经安装好phper666/jwt-auth组件,并发布了配置。配置文件config/autoload/jwt.php已经有详细配置说明,如果要改默认设置,只需要在.env文件中加入相应的配置项,比如要更改默认的secret,只需要在.env文件加入JWT_SECRET = your secret这里我们全部使用默认配置。自定义异常处理添加TokenValidExce...原创 2019-11-12 10:38:15 · 6271 阅读 · 1 评论 -
《PHP微服务练兵》系列
本系列教程将从零开始使用PHP搭建微服务,涉及知识docker、mysql、ELK日志中心、minio文件储存、阿里ACM配置中心、jenkens自动化测试部署、hyperf框架、lumen框架、angular8。微服务用户中心使用基于Swoole4.4的Hyperf框架创建项目使用JWT进行用户认证实现权限管理文件储存使用lumen框架创建项目实现文件上传服务后台管理使用A...原创 2019-11-11 10:10:02 · 4583 阅读 · 2 评论 -
使用Docker创建Hyperf项目
安装Hyperf开发容器docker run -d --name user_center \ --restart=always \ -v /home/wwwroot/user_center:/hyperf-skeleton \ #映射到宿主机目录,这样我们就直接在/home/wwwroot/user_center开发 -p 9501:9501 -p 9504:9504 \ # 950...原创 2019-11-11 14:16:04 · 6837 阅读 · 0 评论 -
开发环境配置
教程所使用的开发环境Centos 7 64位Docker 19.03.2MYSQL 8.0.18安装一个MYSQL容器docker run -d --name mysql8 \ -p 3306:3306 \ #映射3306端口到主机 --restart=always \ #自启动 -v /home/docker/mysql8:/var/lib/mysql \ #映射数据...原创 2019-11-11 10:33:10 · 925 阅读 · 0 评论