Nginx的GeoIP模块,解析IP信息

发表时间:2014-07-24     分类:nginx    标签: nginx geoip 

如果想屏蔽某个地区的 IP 访问的话,用 iptables 把来自某个国家的 IP 重定向到预定页面不是特别灵活的办法,如果只有一个 IP 可用而有多个网站在同一 VPS 上怎么办?用 iptable 屏蔽某个网站的话也会屏蔽同一 VPS 上的其他网站的访问。所以正统的办法还是用 GeoIP 配合对应的 web 服务器模块,比如:apache + mod_geoip 或者 nginx + http_geoip_module 等。1,首先安装 MaxMind 的 GeoIP 库其官网是: http://www.maxmind.com MaxMind 提供了免费的 IP 地域数据库(GeoIP.dat),不过这个数据库文件是二进制的,需要用 GeoIP 库来读取,所以除了要下载 GeoIP.dat 文件外(见下一步),还需要安装能读取这个文件的库。wget http://geolite.max......

阅读全文»

MySQL存储过程基础

发表时间:2014-07-24     分类:Mysql    标签: mysql procedure 

一、基本语法及简单实例1、创建简单的测试环境mysql> use test; Database changed mysql> show tables; Empty set (0.00 sec) mysql> CREATE TABLE t(s1 INT); Query OK, 0 rows affected (0.06 sec) mysql> INSERT INTO t VALUES(5); Query OK, 1 row affected (0.02 sec)2、选择分隔符mysql> DELIMITER //我们一般使用";"作为分隔符,但是在编写存储过程的时候这会带来一些问题,因为存储过程中有许多语句,修改会";"作为分隔符可使用语句"DEL......

阅读全文»

php-fpm环境下,使用fastcgi_finish_request提高页面响应速度

发表时间:2014-06-20     分类:PHP    标签: php fastcgi_finish_request 

当PHP运行在FastCGI模式时,PHP FPM提供了一个名为fastcgi_finish_request的方法.按照文档上的说法,此方法可以提高请求的处理速度,如果有些处理可以在页面生成完后再进行,就可以使用这个方法.听起来可能有些茫然,我们通过几个例子来说明一下:<?php echo '例子:'; fastcgi_finish_request(); /* 响应完成, 关闭连接 */ /* 记录日志 */ file_put_contents('log.txt', '生存还是毁灭,这是个问题.'); ?>通过浏览器访问此脚本, 结果发现并没有输出相应的字符串,但却生成了相应的文件.由此说明在调用fastcgi_finish_request后,客户端响应就已经结束,但与此同时服务端脚本却继续运行!合理利用这个特性可以大大提升用户体验,趁热打铁再来一个例......

阅读全文»

php php-fpm慢日志

发表时间:2014-06-20     分类:PHP    标签: php nginx 慢日志 

php执行错误,执行超时。php-fpm.conf的配置文件中有一个参数request_slowlog_timeout是这样描述的; The timeout for serving a single request after which a PHP backtrace will be ; dumped to the 'slowlog' file. A value of '0s' means 'off'. ; Available units: s(econds)(default), m(inutes), h(ours), or d(ays) ; Default Value: 0 ;request_slowlog_timeout = 0当request_slowlog_timeout 设为一个具体秒时request_slowlog_timeout =5,表示如果哪个脚本执行时间大于5......

阅读全文»

indexer: error while loading shared libraries: libmysqlclient.so.18

发表时间:2014-05-15     分类:Linux    标签: sphinx libmysqlclient 

/usr/local/sphinx/bin/indexer:error while loading shared libraries:libmysqlclient.so.18 cannot opent shared object file: No such file or directory 这主要是因为你安装库后,没有配置相应的环境变量.可以通过连接修正这个问题 ln -s /usr/local/mysql/lib/libmysqlclient.so.18 /usr/lib/libmysqlclient.so.18对于64bit Linux,命令为:ln -s /usr/local/mysql/lib/libmysqlclient.so.18 /usr/lib64/libmysqlclient.so.18重试,OK......

阅读全文»

tar C参数 打包路径

发表时间:2014-05-08     分类:Linux    标签: linux tar 

压缩:tar czvf /data/backup/test.tar.gz /data/a/b/directory解压: cd /data/test tar xzvf /data/backup/test.tar.gz问题是,解压后的文件,在/data/test/data/a/b/directory里面要想解压在当前目录路径。这样写就可以解决了 tar czvf /data/backup/test.tar.gz /data/a/b/directory改成 tar czvf /data/backup/test.tar.gz -C /data/a/b directory-C是临时切换工作目录,-P是绝对路径,在这里只用到-C参数就行了 ......

阅读全文»

(error) ERR wrong number of arguments for 'del' command

发表时间:2014-04-30     分类:redis    标签: redis xargs 

Redis并没有提供批量删除记录的方法,这有时候很不方便,特别是重新初始化数据的时候。一般有两种做法:如果业务场景明确,可以通过DBID进行区分,Redis默认的DBID是0,默认的配置文件是有16个DB,可以在应用中通过select方法指定数据库的ID进行存取。然后通过FlushDB命令能清空某个ID的数据库,达到重新初始化的目的。如果某个ID的数据库已经有很多类型的记录了,无法整个库清空,那么就需要批量的删除key值,这时可以采用Linux管道.1,删除DBID为1的test开头的key值:[root@matt redis]# /usr/local/redis/src/redis-cli -n 1 keys “test*” | xargs /usr/local/redis/src/redis-cli -n 1 del (integer) 50952,删除key name 与 aaa*......

阅读全文»

yii modules layout 配置

发表时间:2014-04-25     分类:yiiframework    标签: yii modules layout 

在YII中,如果我们使用了modules区分了前后台,那么在不同的modules中需要使用各自的layout文件,在使用中发现经常会调用不到modules中的layout,下面介绍一下如何才能正确的调用到modules的其中一种方法:1 components/Controller.php中默认定义了public $layout的值,一旦这里设置了值,如果layout的名字与模块layout的名字不同的话,则无法正确加载到layout,因此最好注释掉这样的代码,转而在每个modules的XXXXModule.php的init方法中设置control的layout变量的值;2 在每个modules的XXXXModule.php的init方法中设置modules的layout变量的值有几种方式:第一种,$this->layout = 'index';第二种,$this-&g......

阅读全文»

nginx pathinfo配置

发表时间:2014-04-17     分类:nginx    标签: nginx pathinfo path 

     设置:     一、nginx.conf      location ~ \.php { root html; fastcgi_pass 127.0.0.1:9090; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME html$fastcgi_script_name; #include fastcgi_params; ##[配置支持php的path_info] include fastcgi.conf; ##----......

阅读全文»

yii Transaction事务处理

发表时间:2014-03-21     分类:yiiframework    标签: yii 事务 

我们在数据库的使用中, 经常是使用事务的操作来保证数据的一致性, 那么在Yii中, 怎么使用事务呢, 其实很简单.$transaction = Yii::app()->db->beginTransaction(); //创建事务 // 将需要事务处理的操作放进try里 try { $a = XXX::model()->findByPk(X); $a->x = 1; $a->update(); $b = YYY::model()->findByPk(Y); $b->y = 2; $b->update(); $transaction->commit(); //提交事务会真正的执行数据库操作 } catch (Exception $e) { ......

阅读全文»

linux php eaccelerator安装

发表时间:2014-03-20     分类:PHP    标签: linux php eaccelerator 

eAccelerator是一个自由开放源码php加速器,优化和动态内容缓存,提高了php脚本的缓存性能,使得PHP脚本在编译的状态下,对服务器的开销几乎完全消除。 它还有对脚本起优化作用,以加快其执行效率。使您的PHP程序代码执效率能提高1-10倍。本文是讲如何安装eaccelerator首先准备工作是eaccelerator的安装包。可以通过官网下载: http://eaccelerator.net/我下载的是 eaccelerator-eaccelerator-42067ac.tar.gz:#解压# tar -zxvf eaccelerator-eaccelerator-42067ac.tar.gz#进入到目录# cd eaccelerator-eaccelerator-42067ac#目录请根据自己的环境调整# export PHP_PREFIX='/usr/local/php' ......

阅读全文»

nginx yii rewrite配置

发表时间:2014-03-14     分类:yiiframework    标签: yii nginx rewrite 

nginx yii rewrite配置1. Nginx配置 在nginx.conf的相应站点的 server {段添加类似如下代码:location / { if (!-e $request_filename){ rewrite ^/(.*) /index.php last; } }2. 在Yii的protected/conf/main.php去掉如下的注释 'urlManager'=>array( 'urlFormat'=>'path', 'rules'=>array( '<controller:\w+>/<id:\d+>'=>'<controller>/view', '<controller:\w+>/<actio......

阅读全文»

nginx service启动/重启脚本

发表时间:2014-03-13     分类:nginx    标签: linux nginx 

第一步先运行命令关闭nginxsudo kill `cat /usr/local/nginx/logs/nginx.pid`第二步vi /etc/init.d/nginx输入以下内容#!/bin/sh## nginx - this script starts and stops the nginx daemin## chkconfig:   - 85 15 # description:  Nginx is an HTTP(S) server, HTTP(S) reverse \#               proxy and IMAP/POP3 proxy server# processname: nginx# config:      /usr/local/nginx......

阅读全文»

php源码编译添加常用扩展

发表时间:2014-03-12     分类:Linux    标签: linux php 

php源码编译添加常用扩展./configure  --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-openssl --enable-fpm --enable-sockets --enable-sysvshm --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-mbstring --with-freetype-dir --with-jpeg-dir=/usr/local/jpeg --with-png-dir --with-zlib-dir --with-mysqli  --with-gd --enable-pdo --enable-bcmath --with-libxml-dir=/usr --enable-xml --with-co......

阅读全文»

php源码编译常见错误解决方案

发表时间:2014-03-12     分类:PHP    标签: linux php 

在CentOS编译PHP5的时候有时会遇到以下的一些错误信息,基本上都可以通过yum安装相应的库来解决。以下是具体的一些解决办法:checking for BZip2 support… yes checking for BZip2 in default path… not found configure: error: Please reinstall the BZip2 distributionFix: yum install bzip2-develchecking for cURL support… yes checking if we should use cURL for url streams… no checking for cURL in default path… not found configure: error: Please reinstall the libcur......

阅读全文»

CentOs6.3源码安装Mysql5.6.14

发表时间:2014-03-12     分类:Linux    标签: mysql linux 

CentOS 6.4下通过yum安装的MySQL是5.1版的,比较老,所以就想通过源代码安装高版本的5.6.14。正文:一:卸载旧版本使用下面的命令检查是否安装有MySQL Serverrpm -qa | grep mysql有的话通过下面的命令来卸载掉rpm -e mysql //普通删除模式 rpm -e --nodeps mysql // 强力删除模式,如果使用上面命令删除时,提示有依赖的其它文件,则用该命令可以对其进行强力删除二:安装MySQL安装编译代码需要的包yum -y install make gcc-c++ cmake bison-devel ncurses-devel下载MySQL 5.6.14wget http://cdn.mysql.com/Downloads/MySQL-5.6/mysql-5.6.14.tar.gz tar xvf mysql-5......

阅读全文»

php-fpm nginx 9000端口

发表时间:2014-03-10     分类:nginx    标签: nginx php-fpm 

启动php-fpm时,出现以下错误 。 ERROR: unable to bind listening socket for address '127.0.0.1:9000': Address already in use (48)[25-Jul-2013 06:00:36] ERROR: FPM initialization failed出现上述问题,有两种可能性:第一:如上文所述,9000端口已被占用netstat -ntlp | grep 9000killall php-pfm启动php-pfm第二:php-fpm.conf 未配置listen php-fpm.sock直接在php-fpm.conf 配置 listen = /tmp/php-cgi.sock当然,路径自己定义。......

阅读全文»

nginx.conf配置文件详解

发表时间:2014-03-09     分类:nginx    标签: linux nginx nginx.conf 

nginx.conf配置文件详解#定义Nginx运行的用户和用户组user www www;#nginx进程数,建议设置为等于CPU总核心数。worker_processes 8;#全局错误日志定义类型,[ debug | info | notice | warn | error | crit ]error_log /var/log/nginx/error.log info;#进程文件pid /var/run/nginx.pid;#一个nginx进程打开的最多文件描述符数目,理论值应该是最多打开文件数(系统的值ulimit -n)与nginx进程数相除,但是nginx分配请求并不均匀,所以建议与ulimit -n的值保持一致。worker_rlimit_nofile 65535;#工作模式与连接数上限events{#参考事件模型,use [ kqueue | rtsig | epoll |......

阅读全文»

mac 安装nginx make [objs/src/core/ngx_crypt.o] Error 1解决方法

发表时间:2014-03-06     分类:Linux    标签: linux nginx 

在自己macbook上安装nginx时,不过make的时候却得到了下面错误信息:make[1]: *** [objs/src/core/ngx_crypt.o] Error 1cc1: warnings being treated as errorssrc/core/ngx_crypt.c: In function ‘ngx_crypt_apr1’:src/core/ngx_crypt.c:76: warning: ‘MD5_Init’ is deprecated (declared at /usr/include/openssl/md5.h:113)src/core/ngx_crypt.c:77: warning: ‘MD5_Update’ is deprecated (declared at /usr/include/openssl/md5.h:114)src/core/ngx_cry......

阅读全文»

Redis主从服务器安装与配置

发表时间:2013-12-18     分类:Linux    标签: redis 

Redis的介绍数据库主要类型有对象数据库,关系数据库,键值数据库等等,对象数据库太超前了,现阶段不提也罢;关系数据库就是平常说的MySQL,PostgreSQL这些熟的不能再熟的东西,至于键值数据库则是本文要着重说的,其代表主要有MemcacheDB,Tokyo Cabinet等等。Redis本质上也是一种键值数据库的,但它在保持键值数据库简单快捷特点的同时,又吸收了部分关系数据库的优点。从而使它的位置处于关系数据库和键值数据库之间。Redis不仅能保存Strings类型的数据,还能保存Lists类型(有序)和Sets类型(无序)的数据,而且还能完成排序(SORT)等高级功能,在实现INCR,SETNX等功能的时候,保证了其操作的原子性,除此以外,还支持主从复制等功能。详细描述参见官方手册,同时,官方提供了一个名为Retwis的项目的源代码,可以对照着官方介绍学习,注意其中关于Data ......

阅读全文»