nginx 泛域名 二级域名设置

September 8th, 2010 陈毓端 comments
[文章作者:陈毓端 若转载请标注原文链接:http://www.woyuw.com/?p=928]

域名结构
应用场景:
new.woyuw.com/1001/1/?q=xxx
sport.woyuw.com/1002/2/?q=xxx
mk.woyuw.com/1003/3/?q=xxx
这些URL的实际程序地址是
/index.php?catename=new&cid=1001&id=1&q=xxx
/index.php?catename=sport&cid=1002&id=2&q=xxx
/index.php?catename=mk&cid=1003&id=3&q=xxx

nginx.conf 添加配置

  1. if ($host ~* ^(.*).woyuw.com$) {
  2.     set $sdomain $1;
  3. }
  4. if ($sdomain !~* ^www$) {
  5.     rewrite ^/([0-9a-zA-Z_]+)/([0-9a-zA-Z_]+)/$ /index.php?catename=$sdomain&cid=$1&id=$2&$args last;
  6.     break;
  7. }
Categories: linux Tags: , ,

nginx 实现 apache .htaccess

September 7th, 2010 陈毓端 comments
[文章作者:陈毓端 若转载请标注原文链接:http://www.woyuw.com/?p=902]

今天一个技术前辈问我Nginx是否可以实现apache 的 .htaccess 功能。 因为之前在网络上看过类似的文章但没有实验过(不喜欢这个机制)。我不在意的回答yes。其实nginx是不支持.htaccess或则说是没有内置这么一套机制。
要实现.htaccess的这个功能,先了解下.htaccess 的执行逻辑。
很简单。Apache只要AllowOverride 开启支持.htaccess,就会在每次执行的目录中扫描(.htaccess)文件(^..^多么无语的机制).
当然 apache是每次扫描.htaccess。而nginx 是肯定不能每次扫描这个.htaccess文件了。所以只能将.htaccess 在启动是装入nginx配置。
.htaccess的特点是每次不需要重启apache就可以实现规则控制。
针对这个特点可以利用linux内核中的文件系统变化通知机制来实现动态更新nginx的配置。
1 安装inotify
参考IBM的文章(http://www.ibm.com/developerworks/cn/linux/l-inotify.html)
2 安装 inotify-tools

  1. wget http://github.com/downloads/rvoicilas/inotify-tools/inotify-tools-3.14.tar.gz
  2. tar zvxf inotify-tools-3.14.tar.gz
  3. cd inotify-tools-3.14
  4. ./configure
  5. make && make install

编写.htaccess 监听脚本
vim nginxhtaccess.sh

  1. #!/bin/sh
  2. inotifywait -m -e modify  /usr/local/nginx/html/.htaccesswhile read file
  3.  do
  4.   /usr/local/nginx/sbin/nginx -s reload 
  5. Done

监听/usr/local/nginx/html/ 目录下的.htaccess 文件修改事件。当被修改后就以不暂停nginx的方式将.htaccess规则写入nginx。
如果有多个.htaccess文件 可以用

  1. #!/bin/sh
  2. inotifywait -m -e modify --fromfile /usr/local/nginx/html/allhtaccess.txt | while read file
  3.  do
  4.   /usr/local/nginx/sbin/nginx -s reload 
  5. Done

汇总一个.htaccess 规则文件的地址 allhtaccess.txt
–fromfile /usr/local/nginx/html/allhtaccess.txt

3 修改nginx.conf 的配置文件
添加

  1. include /usr/local/nginx/html/.htaccess; //.htaccess 文件地址

4 启动nginxhtaccess.sh 监听脚本

  1. ./nginxhtaccess.sh &

简单的实现完毕。

Remove view layer label

August 30th, 2010 陈毓端 comments
[文章作者:陈毓端 若转载请标注原文链接:http://www.woyuw.com/?p=890]

  1. <?php
  2. class view{
  3.  private $extractArray=array();
  4.  function assign($name,$valArray){
  5.    $this->extractArray[$name]=$valArray;
  6.  }
  7.  function display($html,$htmlDir=''){
  8.   global $APPConfig;
  9.   @extract($this->extractArray,EXTR_PREFIX_SAME, "wddx");
  10.   if($htmlDir!=''){
  11.    require_once($htmlDir.'/'.$html);
  12.   }else{
  13.    require_once($APPConfig['viewDir'].'/'.$html);
  14.   }
  15.  }
  16. }
  17. ?>
Categories: php Tags:

多领域不同业务模型下的开发模式选择

August 25th, 2010 陈毓端 1 comment
[文章作者:陈毓端 若转载请标注原文链接:http://www.woyuw.com/?p=868]

最近在做一个平台的开发模式设计。最关键的是业务模块的不确定性。如何实现便捷的业务模块添加,这是设计的核心点。毕竟业务随着时间的推移,也会不断的新陈代谢。

我想大家都知道传统CS软件的开发中的dll 、lib技术或多或少的可以用实现软件的升级换代,也就是我们知道的Update new version。换个思路回到基于B/S模型,如何达到业务的升级、推新目的。

来我们再来看下dll到底是一个什么东西?Dynamic Link Library 用来 实现程序模块化,是相对独立的组件。好了我们知道有这么一个好的东西,我们如何把这个好的思想用于PHP开发中呢?

我们来看下面简单的UML图


从上图或许已经可以看出它是一个比较典型的工厂模式。

我们再来学习下什么是工厂模式:提供一个获取某个对象实例的接口,同时使调用代码尽量的避免实例化。

这个例子的现实业务需求是earlylearng 早教模块和nurse 保姆模块及其它后期添加的业务模块。如何模块化的信息发布,做到无缝衔接。

有了工厂模式和dll的思想,就可以把不同的业务模型查看dll,来设计我们的系统。当然开发模式不是万能的 根据不同的业务情况去选择适合的开发模式。

Categories: 开发模式 Tags:

CYDPHP一键集成环境(一键PHP安装包) 1.0 Nginx+MySQL+PHP-CGI+Memcached 集成B/S开发工具箱

August 12th, 2010 陈毓端 18 comments
[文章作者:陈毓端 若转载请标注原文链接:http://www.woyuw.com/?p=844]

CYDPHP 一键集成环境是什么?

Construct Yare Development 构建敏捷开发环境

CYDPHP 绿色 免安装 针对Windows下快速开发PHP及B/S开发模式下日常必备功能的一键整合开发环境。

CYDPHP 功能组件

  • PHP 5.3.3
  • Nginx 0.8.39
  • MySQL 5.1.48
  • memcache 2.2.5
  • eAccelerator 0.9.6
  • Xdebug 2.1.0
  • phpMyAdmin mysql管理
  • AB 压力测试
  • javaScript 压缩工具
  • CSS 压缩工具
  • PHP 代码格式美化
  • MySQL 数据批量生成工具
  • xdebug分析工具
  • SFTP/FTP
  • Windows 常用命令
  • DOS Linux shell 模拟工具
  • 端口进程分析工具
  • 翻译工具
  • 取色工具
  • 快捷文档软件管理工具

CYDPHP 事项

  • 需解压到非中文目录下,否则部分功能无法使用(路径不能包含空格)。
  • 具有端口和进程检测功能。
  • MySQL启动选择(可以选择系统已安装的MySQL)
  • 采用多线程机制,保证部分功能的同时进行

联系方式

软件作者:  陈毓端
MSN:   yuduan2009@hotmail.com
E-mail:   thisduan@gmail.com
下载地址: 【新浪下载】 【天空下载

windows7 不支持 AllocateAndGetTcpExTableFromStack

August 8th, 2010 陈毓端 comments
[文章作者:陈毓端 若转载请标注原文链接:http://www.woyuw.com/?p=838]

周末把开发的集成软件放在windows7环境中测试,发现iphlpapi.dll 在windows7下已经放弃支持AllocateAndGetTcpExTableFromStack,AllocateAndGetUdpExTableFromStack

没用办法只能重新修改程序进行重新编译

只能改用 GetExtendedTcpTable 。

具体参考:

http://msdn.microsoft.com/en-us/library/aa365928(VS.85).aspx

Categories: c, delphi, java, 编程语言 Tags:

php chain model

August 6th, 2010 陈毓端 comments
[文章作者:陈毓端 若转载请标注原文链接:http://www.woyuw.com/?p=835]

<?php
class Chain {
public function edge($val){
echo ‘create ‘.__METHOD__.’: ‘.$val.’ edge’;
}
}
call_user_func_array(array(new Chain,”edge”),array(“two”));
?>
Categories: php Tags:

nginx 小记 (无法获取get post cookie)

August 4th, 2010 陈毓端 comments
[文章作者:陈毓端 若转载请标注原文链接:http://www.woyuw.com/?p=833]

之前给朋友公司架设了nginx phpcgi 应用环境

今天告诉我无法获取get post cookie等

查了php.ini 没用问题

找了半天,原来nginx.conf 

include        fastcgi_params;

被注释了 开启。即可。

Categories: linux, php Tags:

话题区粘性/行为分析系统架构

July 25th, 2010 陈毓端 comments
[文章作者:陈毓端 若转载请标注原文链接:http://www.woyuw.com/?p=824]

项目的重点从新闻/抓取的内容阅读转型到以话题为主,这使的话题区用户行为变得十分重要如用户粘性,访问路径。

用户行为分析包过系列的原始数据采集,仓储,挖掘,报表等。

本系统主要是针对用户访问路径,话题区核心功能的事件驱动分析。

用户行为分析简单的划分为2条收集路线

//主线 队列
 this.MainQuery   = function () {
  //第一次访问当前URL或者刷新 用来处理pv等看做的首次访问逻辑

}

//副线 事件驱动 队列
 this.EventQuery   = function () {
  this.Doc.onclick  =  function() {
   //驱动逻辑 用来收集用户的页面操作区域 点击等消息
  }
 }

 

Categories: 架构 Tags:

redhat 更新源 到centos

July 9th, 2010 陈毓端 comments
[文章作者:陈毓端 若转载请标注原文链接:http://www.woyuw.com/?p=818]

前两天答应一朋友给他安装两台新采购服务器的LAMP环境,晚上抽时间SSH的登录。
我也没有看服务器都安装了什么。
编译mysql时候碰到
configure: error: no acceptable C compiler found in $PATH
天哪 连GCC G++ 基本库都没装
因为是redhat 习惯的
yum install gcc g++
no
This system is not registered with RHN.
RHN support will be disabled.
提示系统未注册RHN
悲哀 伪开源的约束
只能更新源的 采用centos的源
操作步骤:
cd /etc/yum.repos.d/
vi centos.repo
[base]
name=CentOS-$releasever – Base
baseurl=http://centos.ustc.edu.cn/centos/5/os/i386/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5
重新安装
yum install gcc g++
Categories: linux Tags: