docker 常用命令

2019-09-04 10:41:47

## 安装 ### docker 安装 ``` sudo wget -qO- https://get.docker.com/ | sh sudo usermod -aG docker jesse ``` ### docker-compose 安装 ``` sudo curl -L "https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose ``` ## 常用命令 1.运行容器,如果镜像不存在则会先pull,将docker内的80端口映射到本地的8080 ``` docker run -p 8080:80 -d daocloud.io/nginx ``` 2.查看docker当前正在运行的容器 ``` docker ps ``` 3.查看docker所有的容器 ``` docker ps -a ``` 4.停止容器 ``` docker stop 5040b5f7c9b...

阅读全文

composer 常见问题处理

2019-09-04 10:20:29

**1.提示 版本 与 composer.json 不符** 报错: `Your requirements could not be resolved to an installable set of packages` 解决办法1: ``` --ignore-platform-reqs ``` 解决办法2: ``` "minimum-stability" : "dev", "prefer-stable" : true ``` **2.解决使用 `Composer` 的时候提示输入 Token** 进入 https://github.com/settings/tokens 点击 「Generate new token」 新建一个 Token,选择默认新建就行,然后就会得到一个 Token,然后输入这个值就 OK 了 **3.解决使用 `composer` 的时候错误 file could not be downloaded** ``` composer config secure-http false ``` **4.解决作者未发布版本** (Could not find a version o...

阅读全文

推荐六个鲜为人知的 Composer 命令

2019-07-23 09:26:05

Composer 是 PHP 的一个依赖管理工具。 如果你是一名 PHP 开发人员,那么你很可能每天都在使用它并且频繁的运行命令 `require`, `install` 和 `update`。也许你并没有意识到, 我们可以使用一些其他的 Composer 命令,来更加轻松的使用它。 它有许多的命令可以使用,但今天我将分享我使用的并且每天都有帮助的 6 个命令。 ## show 先说下 `show` 命令。它允许您查看项目的所有已安装包(包括依赖项),以及查看相关包的说明。所有这些信息都可以在Composer锁文件(composer.lock)中找到, 但是使用 `show` 命令相对来说是一种更简单、更方便的一种查看包信息的方法。 要列出所有已安装的包及其版本号和说明,只需使用 `show`: ``` composer sh...

阅读全文

时序攻击

2019-07-12 19:06:20

> 在校验验证码或密码时,可以使用 [hash_equals](http://php.net/manual/zh/function.hash-equals.php) 方法 `hash_equals` 是可防止时序攻击的字符串比较,那么什么是时序攻击呢?比如我们使用这段代码进行比较 ```php $code == $_POST['code']; ``` 那么两个字符串是从第一位开始逐一进行比较的,发现不同就立即返回 false,那么通过计算返回的速度就知道了大概是哪一位开始不同的,这样就实现了电影中经常出现的按位破解密码的场景。而使用 hash_equals 比较两个字符串,无论字符串是否相等,函数的时间消耗是恒定的,这样可以有效的防止时序攻击。 如果 PHP 不支持此方法或想自己实现的,可以参考如下: ```php ```

阅读全文

thinkphp 漏洞记录

2019-06-18 16:12:14

thinkphp 漏洞记录:漏洞环境:5.0.20以下版本描述:ThinkPHP5.0在核心代码中实现了表单请求类型伪装的功能,该功能利用$_POST['_method']变量来传递真实的请求方法,当攻击者设置$_POST['_method']=__construct时,Request类的method方法便会将该类的变量进行覆盖,攻击者利用该方式将filter变量覆盖为system等函数名,当内部进行参数过滤时便会进行执行任意命令。引用:ThinkPHP 5.0命令执行漏洞分析及复现漏洞环境:v5.0.23及v5.1.31以下版本描述:ThinkPHP官方2018年12月9日发布重要的安全更新,修复了一个严重的远程代码执行漏洞。该更新主要涉及一个安全更新,由于框架对控制器名没有进行足够的检测会导致在没有开启强制路由的情况下可能的...

阅读全文

Laravel 实用小技巧

2019-05-05 11:40:18

1. 更新父表的  timestamps 如果需要在更新关联表的同时,更新父表的 timestamps,只需在关联表的 model 中添加 touches 属性 protected $touches = ['parentModel']; 2. 关联时使用 withDefault()  使用模型关联时,如果关联的模型不存在,如:  $post->user->name  $post->user 会返回 null, 继续访问 name 会抛出致命异常,  使用 withDefault 则会返回一个 User Model 的实例,访问 name 会变成 null   withDefault 可以接受参数(数组、闭包) 3. 跳转到指定控制器并附带参数 return redirect()->action('SomeController@method', ['param' => $value]); 4. Eloquent 中的日期时...

阅读全文

数据库二进制图片输出到前端

2018-08-18 17:21:23

在维护老项目时,发现有的项目居然把图片存在数据库,而不是图片链接,数据库里的图片字段类型是:`mediumblob`现在的需求是:从数据库取出图片在前端列表显示。大学是,老师就开始教导我们不要把图片存在数据库里,不方便维护,而且很占数据库体积。然后就没有碰到过存取数据库的二进制图片,突然碰到有点懵。估计大多数人没有这样的习惯,然后网上的资料也是大量重复过时的方法。目前接触到的前端渲染图片有两种:1、URL地址;2、 data:image/jpeg;base64  。于是想到在后端先用base64进行编码,然后在前端输出,果然可以!    代码如下:PHP:$base64Img = base64_encode($blobImg);HTML:<img src="data:image/jpe...

阅读全文

laravel-admin必填项加星号

2018-08-03 15:27:27

1.文件修改,vendor/encore/laravel-admin/src/Form/Field.php 新增:/** * Form element label classes. * * @var array */ protected $elementLabelClass = [];/** * Add the element label class. * * @param $class * * @return $this */ public function addElementLabelClass($class) { if (is_array($class) || is_string($class)) { $this->elementLabelClass = array_merge($this->elementLabelClass, (array) $class); $this->elementLabelClass = array_unique($this->elementLabelClass); } return $this; } 修改方法(约740行左右)getViewElemen...

阅读全文

程序员必须掌握英语单词

2018-07-11 18:47:42

application 应用程式 应用、应用程序application framework 应用程式框架、应用框架 应用程序框架architecture 架构、系统架构 体系结构argument 引数(传给函式的值)。叁见 parameter 叁数、实质叁数、实叁、自变量array 阵列 数组arrow operator arrow(箭头)运算子 箭头操作符assembly 装配件assembly language 组合语言 汇编语言assert(ion) 断言assign 指派、指定、设值、赋值 赋值assignment 指派、指定 赋值、分配assignment operator 指派(赋值)运算子 = 赋值操作符associated 相应的、相关的 相关的、关联、相应的associative container 关联式容器(对应 sequential container) 关联式容器atomic 不可分割的 原子的attribute 属...

阅读全文

IE下扫描枪不兼容问题

2018-07-10 19:04:35

 js监听条形码扫描枪barcode.on('keyup', function(event){ if(event.keyCode === 13){ // 逻辑 console.log(barcode.val()); } });在IE下扫描时经常出现条形码扫不全、获取不到条形码、条形码空白等问题。在其他浏览器则无此问题。经过一番对比和debug,发现IE只有在中文输入法下才会复现此bug。 所以只需切换输入法或开启键盘大写即可。  由于JS是无权限操控电脑的输入法和大写的,所以在非自己使用的情况下,应标注醒目提示用户使用英文输入法或开启键盘大写。

阅读全文

linux下全文检索引擎sphinx/coreseek的安装配置

2018-06-27 19:38:18

linux下全文检索引擎sphinx/coreseek的安装配置1.安装预装软件yum install make gcc g++ gcc-c++ libtool autoconf automake imake mysql-devel libxml2-devel expat-devel 2.下载coreseek4.1https://download.csdn.net/download/dl425134845/9535621 3.解压tar zxvf coreseek-4.1-beta.tar.gz 4.安装进入到mmseg-3.2.14目录,在该目录中运行./bootstrap 命令。 5.指定安装coreseek安装路径./configure --prefix=/usr/local/mmseg3 6.实际安装coreseekmake && make install 7.测试coreseek的分词效果进入到/usr/local/mmseg3/bin 目录中,执行如下命令./mmseg -d /usr/local/mmseg3/etc /usr/local/src/co...

阅读全文

laravel单点登录-多个子域名站点

2018-06-23 11:02:11

单点登录     单点登录(Single Sign On),简称为 SSO,是目前比较流行的企业业务整合的解决方案之一。SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。  在laravel中实现这一功能非常简单。  首先要知道‘浏览器同源策略’原理: Cookie 是服务器写入浏览器的一小段信息,只有同源的网页才能共享。但是,两个网页一级域名相同,只是二级域名不同,浏览器允许通过设置document.domain共享 Cookie。 于是我们可以把session存在cookie里,然后多个子域名服务使用同样的域,就可以实现共享登录(SSO)。SESSION_DRIVER=cookie SESSION_DOMAIN=baidu.com

阅读全文

Referrer Policy 介绍

2018-04-20 16:37:05

        当用户在浏览器上点击一个链接时,会产生一个 HTTP 请求,用于获取新的页面内容,而在该请求的报头中,会包含一个 Referrer,用以指定该请求是从哪个页面跳转页来的,常被用于分析用户来源等信息。但是也有成为用户的一个不安全因素,比如有些网站直接将 sessionid 或是 token 放在地址栏里传递的,会原样不动地当作 Referrer 报头的内容传递给第三方网站。        所以就有了 Referrer Policy,用于过滤 Referrer 报头内容,目前是一个候选标准,不过已经有部分浏览器支持该标准。具体的可查看这里。指令值目前包含了以下几种指令值:enum Refer...

阅读全文

异常实时报警

2018-04-17 18:09:48

当线上服务出现异常时,有时候问题很难察觉,需要自己测试,甚至要等用户反馈问题才知道。于是想到能不能线上代码出现问题实时通知给相关负责人?比如:即时通讯工具(微信/QQ)或者邮箱。 答案是肯定的,在laravel中实现起来就很简单。(此方法仅针对业务代码出现异常,或者遭到攻击服务不能正常运行的异常) laravel中所有异常都由 App\Exceptions\Handler 类处理https://d.laravel-china.org/docs/5.4/errors#the-exception-handler 因此,我们只要捕获项目中所有异常并实时通知就简单多了。 本文测试发送163邮箱 先写好发送邮件内容格式,然后在 App\Exceptions\Handler 的 report 里...

阅读全文