最简单的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目录。





阅读剩余部分...

记一次vsftp搭建过程

Publish: May 13, 2016 Category: 运维 No Comments

毫不夸张的讲 Probably the most secure and fastest FTP server for UNIX-like systems.

项目中有用到ftp,特来学习

编译

查看vsftp的安装文件INSTALL
解压文件包,编译

tar -zxvf vsftpd-3.0.3.tar.gz
cd  vsftpd-3.0.3
make

阅读剩余部分...

Nginx服务器下CodeIgniter多应用开发&部署

Publish: July 8, 2015 Category: 运维 No Comments

基于CI的WEB项目开发过程中经常会遇到角色问题,通常情况下我们会基于权限控制实现访问控制,但有时候对一些上一定规模的项目简单的一个应用(applicaton)采用这种方式显得不够明晰。通常会采用在一个框架内部署多个应用,也就是我们在CI的官方文档中提到的一个CodeIgniter中运行多个应用。

多应用开发:

在一个 CodeIgniter 下运行多个应用程序,如果你希望在一个 CodeIgniter 下管理多个不同的应用程序,只需简单的 将 application 目录下的所有文件放置到每个应用程序独立的子目录下即可。
例如,你要创建两个应用程序:"foo" 和 "bar",你可以像下面这样组织你的目录结构:

applications/foo/
applications/foo/config/
applications/foo/controllers/
applications/foo/libraries/
applications/foo/models/
applications/foo/views/
applications/bar/
applications/bar/config/
applications/bar/controllers/
applications/bar/libraries/
applications/bar/models/
applications/bar/views/`

要选择使用某个应用程序时,你需要打开 index.php 文件然后设置 $application_folder 变量。例如,选择使用 "foo" 这个应用,你可以这样:
$application_folder = 'applications/foo'
简单来说:多个应用就用多个入口文件(index.php),比如说你有两个应用,一个admin,一个home,默认访问home的话,你就在index.php里面设置
$application_folder = 'application/home'
然后想访问admin应用的话,可以在index.php同级目录下复制index.php到admin.php,修改
$application_folder = 'application/admin'
然后修改admin文件夹里面的config/config.php里面
$config['index_page'] = 'admin.php'
就可以实现多应用共存了。访问主页就是http://domain/,访问admin的时候就是http://domain/admin.php

部署

Apache下部署跟单应用部署不存在问题,但是在在nginx可能会存在问题。
单应用下的配置通常如下(该配置基于LNMP来做,成产环境下情自行配置)

server
    {
    listen 80;
    #listen [::]:80;
    server_name abc.com;
    index index.html index.htm index.php default.html default.htm default.php;
    root  /home/wwwroot/abc.com;;

    include other.conf;
location / {
           rewrite ^/(?!index\.php|assets|favicon.ico)(.*)$ /index.php/$1last;
      }        

location ~ [^/]\.php(/|$)
    {
        try_files $uri $uri/ /index.php?$query_string;
        fastcgi_pass  unix:/tmp/php-cgi.sock;
        fastcgi_index index.php;
        include fastcgi.conf;
    }

    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
    {
        expires      30d;
    }

    location ~ .*\.(js|css)?$
    {
        expires      12h;
    }
    access_log  /home/wwwlogs/abc.com.log  access;
}

对上面的配置简单的解释,开始的配置不做过多解释,可以自行搜索,从location开始。

location / {
           rewrite ^/(?!index\.php|assets|favicon.ico)(.*)$ /index.php/$1last;
}

我们知道rewrite的作用是重写,last指令会重新将rewrite后的地址在server标签中匹配location执行。首先匹配所有uri中对静态文件等index.php请求一样对待,
location ~ [^/]\.php(/|$){}
对所有的php文件递交给fastgi处理。明白了上面,看一个完整的适合两个应用的CI Nginx配置。

server
{
    listen 80;
    #listen [::]:80;
    server_name abc.com;
    index index.html index.htm index.php default.html default.htm default.php;
    root  /home/wwwroot/abc.com;

location / {
        rewrite ^/(?!index\.php|admin\.php|assets|a.txt|favicon.ico)(.*)$ /index.php/$1last;
    }

    location ~ admin\.php(/|$)
    {
    try_files $uri $uri/ /admin.php?$query_string;
        fastcgi_pass  unix:/tmp/php-cgi.sock;
        fastcgi_index admin.php;
        include fastcgi.conf;
    }

    location ~ [^/]\.php(/|$)
    {
    try_files $uri $uri/ /index.php?$query_string;
        fastcgi_pass  unix:/tmp/php-cgi.sock;
        fastcgi_index index.php;
        include fastcgi.conf;
    }
    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
    {
        expires      30d;
    }
    location ~ .*\.(js|css)?$
    {
        expires      12h;
    }
    access_log  /home/wwwlogs/abc.com.log  access;
}

原理其实是一样的,只不过多了一个入口,因为每个应用的入口文件统一,所知只需对特定的入口文件精确匹配即可,额外家了一项location即:

 location ~ admin\.php(/|$)
    {
    try_files $uri $uri/ /admin.php?$query_string;
        fastcgi_pass  unix:/tmp/php-cgi.sock;
        fastcgi_index admin.php;
        include fastcgi.conf;
    }

然后对其他部分做简单修改。
重启或者重新载入nginx配置生效即可。

总结:

Codeigniter这样做多赢用违背了统一入口规范,对开发来说页比较蹩脚,希望CI4能有所改善。