前言

近日公司服务器压力突增,查看日志后发现是一个接口请求频繁导致php-fpm进程过多,想到一个解决办法,就是用memcached缓存php的输出,然后用nginx来获取,这样就可以有效的减少php-fpm的请求次数

配置

    # Memcached缓存配置
    location ~* /dltapi/dltinfo/awardDetail {
        add_header 'Access-Control-Allow-Origin' '*';
        set $memcached_key "dltapi_$uri?$args";
        memcached_pass 127.0.0.1:11211;
        default_type application/json;
        charset utf-8;
        error_page 404 502 504 = @fallback;
    }
    location @fallback {
        proxy_pass http://127.0.0.1:88;
    }

  • docker经常听说却不曾使用过,据说它可以完美的解决“唉!这程序在我电脑上是没问题的啊”这个问题,今天也来尝试一下。
  • docker玩法有很多,可以将服务器软件单独拉下来,也可以拉下来一个linux,然后在这个镜像中安装相关服务器软件。这篇文章要介绍的就是安装一个linux,然后再从该镜像中安装各种服务器软件

概念介绍

  • 镜像: Docker镜像是由文件系统叠加而成。最底端是一个文件引导系统,即bootfs。Docker用户不会与引导文件系统有直接的交互。Docker镜像的第二层是root文件系统rootfs,通常是一种或多种操作系统,例如ubuntu等。在Docker中,文件系统永远都是只读的,在每次修改时,都是进行拷贝叠加从而形成最终的文件系统。Docker称这样的文件为镜像。一个镜像可以迭代在另一个镜像的顶部。位于下方的镜像称之为父镜像,最底层的镜像称之为基础镜像。最后,当从一个镜像启动容器时,Docker会在最顶层加载一个读写文件系统作为容器。
  • 容器: 容器就是镜像的一个实例,把镜像比作类时,容器就是new的镜像,然后在容器中可以进行配置安装等操作。

- 阅读剩余部分 -

什么是https

以下内容出自百度百科:
HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。 它是一个URI scheme(抽象标识符体系),句法类同http:体系。用于安全的HTTP数据传输。https:URL表明它使用了HTTP,但HTTPS存在不同于HTTP的默认端口及一个加密/身份验证层(在HTTP与TCP之间)。这个系统的最初研发由网景公司(Netscape)进行,并内置于其浏览器Netscape Navigator中,提供了身份验证与加密通讯方法。现在它被广泛用于万维网上安全敏感的通讯,例如交易支付方面。

注意:

  • 本文配置环境为:Linux Centos6、nginx1.14.0
  • 本文只介绍Let's Encrypt免费证书,其他证书请自动行百度。

- 阅读剩余部分 -

最的接了一个项目,需要在微信端连续播放三个mp3文件,因为IOS系统限制不能实现自动播放,所以只能在服务端对mp3进行拼接,所有用到了ffmpeg命令。
注意:我用的是Linux系统,用到了php的exec函数来执行命令行命令

  • Linux拼接三个mp3文件代码如下:
ffmpeg -i audio1.mp3 -i audio2.mp3 -i audio3.mp3 -filter_complex '[0:0] [1:0] [2:0] concat=n=3:v=0:a=1 [a]' -map [a] output.mp3
  • PHP拼接三个mp3代码如下:
$str = "ffmpeg -i {$audio1} -i {$audio2} -i {$audio3} -filter_complex '[0:0] [1:0] [2:0] concat=n=3:v=0:a=1 [a]' -map [a] {$output}"
exec($str);

TCPDF是一款PHP脚本编写的导出PDF的开源程序,其特点是有自己的单元格方式排版,也可以用html转PDF,但这种方式有很多样式不支持。还是推荐用其自己的排版方式来。
下面是用过的一些方法注释,以便日后查看:

安装

推荐使用composer安装,在composer官网列表中有其安装方法

TCPDF构造方法

public function __construct($orientation='P', $unit='mm', $format='A4', $unicode=true, $encoding='UTF-8', $diskcache=false, $pdfa=false)
参数说明:

  • $orientation:纸张方向,P竖向,L横向
  • $unit:单位,默认毫米
  • $format:纸张大小
  • $unicode:Unicode文本输入,默认true
  • $encoding:文本编码,默认utf-8
  • $diskcache:说实话,这个我也没用过,就用默认值吧
  • $pdfa:是否开启PDF/A模式,这个我也没用过

例:$pdf = new TCPDF('P', 'mm', 'A4', true, 'UTF-8', false);

设置字体

public function SetFont($family, $style='', $size=null, $fontfile='', $subset='default', $out=true)
参数说明:

  • $family:字体名称,例:DroidSansFallback
  • $style:字体样式,默认为空串,其他选项有B-加粗,I-倾斜,U-下划线,D-中划线,O-上划线
  • $size:尺寸,默认12
  • $fontfile:字体文件,这个我也没怎么用过。。。
  • $subset:没用过T_T