使用LNMP构建Linux+PHP+OpenResty+MySQL环境

Publish: September 9, 2019 Category: 运维 No Comments

LNMP作为中小型WEB应用构建方案得到了的很广泛的应用。LNMP顾名思义就是Linux+Nginx+MySQL+PHP,过去十年时间(Nginx09年发布第一个开发版),作为一种近乎经典的WEB服务构建方案,受到广大开发者的青睐。

LNMP脚本让本来复杂的环境构建任务变得轻松,运维人员只需下载脚本、执行、选择几个版本等配置,后面的编译配置都由脚本自动化完成。我引用了官方的几点说明如下:

无需一个一个的输入命令,无需值守,编译安装优化编译参数,提高性能,解决不必要的软件间依赖,特别针对配置自动优化。

支持自定义Nginx、PHP编译参数及网站和数据库目录、支持生成LetseEcrypt证书、LNMP模式支持多PHP版本、支持单独安装Nginx/MySQL/MariaDB/Pureftpd服务器,同时提供一些实用的辅助工具如:虚拟主机管理、FTP用户管理、Nginx、MySQL/MariaDB、PHP的升级、常用缓存组件Redis/Xcache等的安装、重置MySQL root密码、502自动重启、日志切割、SSH防护DenyHosts/Fail2Ban、备份等许多实用脚本。

阅读剩余部分...

简单例子讲明白Redis事务

Publish: June 26, 2019 Category: 运维 No Comments

熟悉关系型数据库的同学对应该对事务比较了解,简单的说:事务表示一组动作,要么全部执行,要么全部不执行。还是用经典的银行转帐来做说明,用户a要给用户b转一笔款,正确的执行流程是a账户减少指定金额,b账户增加指定金额。这两个动作要么同时执行,要么都不执行才能保证数据的准确性,以保证数据一致。

Redis事务理解和示例

Redis提供了“简单”的事务,将一组需要一起执行的命令放到multi和exec两个命令之间,multi代表事务开始,exec代表事务结束,他们之间的命令是原子顺序执行的。我们一转帐来进行模拟这个过程:

#设置用户a和b的额度都是100

127.0.0.1:6379> set user:a:quota 100
OK
127.0.0.1:6379> set user:b:quota 100
OK
#执行转帐事务:a减掉20 b增加20
127.0.0.1:6379> MULTI
OK
127.0.0.1:6379> DECRBY user:a:quota 20
QUEUED
127.0.0.1:6379> INCRBY user:b:quota 20
QUEUED
127.0.0.1:6379> EXEC
1) (integer) 80
2) (integer) 120

#查看执行结果

127.0.0.1:6379> MGET user:a:quota user:b:quota
1) "80"
2) "120"

可以看到decrby和incrby命令返回结果都是QUEUED,代表命令并没有真正执行,而是暂时保存在redis中,当exec命令执行之后转帐行为才算完成。如果要停止执行该事务可以使用discard命令代替exec命令即可。

阅读剩余部分...

最简单的Redis可视化管理工具phpRedisAdmin

Publish: May 22, 2019 Category: 运维 1 Comment

redis是一个开源的,内存数据结构存储,用于数据库、缓存和消息代理。支持字符串(strings)、哈希、列表、集合、带有范围查询的有序集合(sorted sets)、bitmaps、hyperloglogs、具有半径查询的地理空间索引 (geospatial)和流(streams)等功能。其高性能、开源、简单易用的特性受到广大开发者的青睐,在我们的日常应用中却没有一个很简单易用的可视化客户端。但是为web程序员来说phpRedisAdmin是一个不错的选择,下面我们来介绍如何使用phpRedisAdmin。

安装&配置

phpRedisAdmin是一个web版的BS架构的redis可视化管理工具,因此需要有web服务器,从名字里可以看出其依赖于php环境,这里我们选用经典的lnmp方案。规划好web目录,使用下面两种方式来安装。

  • composer方式

如果使用composer包管理工具,可以直接执行下面两条命令

curl -s http://getcomposer.org/installer | php
php composer.phar create-project -s dev erik-dubbelboer/php-redis-admin path/to/install

阅读剩余部分...

MQTT自签CA构建SSL加密消息通道服务

Publish: September 28, 2018 Category: 编程,代码分享,运维 6 Comments

SSL工作原理简介

需要知道的知识

  1. CA是什么?
    CA证书授权中心(Certificate Center),也就是证书签发机构,比如Godaddy、WoSign,如果自己给自己签发证书,那我们自己就是CA,只不过别人不认可。他有两个重要属性,即:一、本身受信任,国际认可;二、给他受信任的申请对象签发证书。
  2. 什么是对称加密非对称加密,什么是公钥私钥?
    通俗一点讲对称加密就是:用密钥加密明文得到的密文,使用该密钥解密得到明文。非对称加密:用密钥A加密明文得到的密文,使用密钥B解密得到明文,加密和解密的密钥不是同一个,我们称密钥A为私钥,密钥B为公钥。

因此要记住的一点常识:私钥用于加密,公钥用于解密。



阅读剩余部分...

PHP源码加密之ionCube加密

Publish: December 12, 2017 Category: 运维 No Comments

生产服务器部署解密环境

加密操作分为两部分,首先要在生产环境中部署解密扩展.具体操作流程可以参考:
一、下载loader-wizard.php(支持php5.3、php5.4、php5.5、php5.6、php7.0版本)
ioncube提供了一个安装的向导程序,可以非常方便的帮助检测php的运行环境,自动给出提示。
1.1 通过下面的地址下载loader-wizard:http://www.ioncube.com/loader-wizard/loader-wizard.zip
1.2 下载之后,将其解压缩,到apache的www或者htdoc目录。





阅读剩余部分...