[文章作者:陈毓端 若转载请标注原文链接: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 添加配置
- if ($host ~* ^(.*).woyuw.com$) {
- set $sdomain $1;
- }
- if ($sdomain !~* ^www$) {
- rewrite ^/([0-9a-zA-Z_]+)/([0-9a-zA-Z_]+)/$ /index.php?catename=$sdomain&cid=$1&id=$2&$args last;
- break;
- }
[文章作者:陈毓端 若转载请标注原文链接: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
- wget http://github.com/downloads/rvoicilas/inotify-tools/inotify-tools-3.14.tar.gz
- tar zvxf inotify-tools-3.14.tar.gz
- cd inotify-tools-3.14
- ./configure
- make && make install
编写.htaccess 监听脚本
vim nginxhtaccess.sh
- #!/bin/sh
- inotifywait -m -e modify /usr/local/nginx/html/.htaccess | while read file
- do
- /usr/local/nginx/sbin/nginx -s reload
- Done
监听/usr/local/nginx/html/ 目录下的.htaccess 文件修改事件。当被修改后就以不暂停nginx的方式将.htaccess规则写入nginx。
如果有多个.htaccess文件 可以用
- #!/bin/sh
- inotifywait -m -e modify --fromfile /usr/local/nginx/html/allhtaccess.txt | while read file
- do
- /usr/local/nginx/sbin/nginx -s reload
- Done
汇总一个.htaccess 规则文件的地址 allhtaccess.txt
–fromfile /usr/local/nginx/html/allhtaccess.txt
3 修改nginx.conf 的配置文件
添加
- include /usr/local/nginx/html/.htaccess; //.htaccess 文件地址
4 启动nginxhtaccess.sh 监听脚本
简单的实现完毕。
[文章作者:陈毓端 若转载请标注原文链接:http://www.woyuw.com/?p=868]
最近在做一个平台的开发模式设计。最关键的是业务模块的不确定性。如何实现便捷的业务模块添加,这是设计的核心点。毕竟业务随着时间的推移,也会不断的新陈代谢。
我想大家都知道传统CS软件的开发中的dll 、lib技术或多或少的可以用实现软件的升级换代,也就是我们知道的Update new version。换个思路回到基于B/S模型,如何达到业务的升级、推新目的。
来我们再来看下dll到底是一个什么东西?Dynamic Link Library 用来 实现程序模块化,是相对独立的组件。好了我们知道有这么一个好的东西,我们如何把这个好的思想用于PHP开发中呢?
我们来看下面简单的UML图

从上图或许已经可以看出它是一个比较典型的工厂模式。
我们再来学习下什么是工厂模式:提供一个获取某个对象实例的接口,同时使调用代码尽量的避免实例化。
这个例子的现实业务需求是earlylearng 早教模块和nurse 保姆模块及其它后期添加的业务模块。如何模块化的信息发布,做到无缝衔接。
有了工厂模式和dll的思想,就可以把不同的业务模型查看dll,来设计我们的系统。当然开发模式不是万能的 根据不同的业务情况去选择适合的开发模式。
[文章作者:陈毓端 若转载请标注原文链接: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
下载地址: 【新浪下载】 【天空下载】









[文章作者:陈毓端 若转载请标注原文链接:http://www.woyuw.com/?p=838]
周末把开发的集成软件放在windows7环境中测试,发现iphlpapi.dll 在windows7下已经放弃支持AllocateAndGetTcpExTableFromStack,AllocateAndGetUdpExTableFromStack
没用办法只能重新修改程序进行重新编译
只能改用 GetExtendedTcpTable 。
具体参考:
http://msdn.microsoft.com/en-us/library/aa365928(VS.85).aspx
[文章作者:陈毓端 若转载请标注原文链接: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”));
?>
[文章作者:陈毓端 若转载请标注原文链接:http://www.woyuw.com/?p=833]
之前给朋友公司架设了nginx phpcgi 应用环境
今天告诉我无法获取get post cookie等
查了php.ini 没用问题
找了半天,原来nginx.conf
include fastcgi_params;
被注释了 开启。即可。
[文章作者:陈毓端 若转载请标注原文链接:http://www.woyuw.com/?p=824]
项目的重点从新闻/抓取的内容阅读转型到以话题为主,这使的话题区用户行为变得十分重要如用户粘性,访问路径。
用户行为分析包过系列的原始数据采集,仓储,挖掘,报表等。
本系统主要是针对用户访问路径,话题区核心功能的事件驱动分析。
用户行为分析简单的划分为2条收集路线
//主线 队列
this.MainQuery = function () {
//第一次访问当前URL或者刷新 用来处理pv等看做的首次访问逻辑
}
//副线 事件驱动 队列
this.EventQuery = function () {
this.Doc.onclick = function() {
//驱动逻辑 用来收集用户的页面操作区域 点击等消息
}
}

[文章作者:陈毓端 若转载请标注原文链接: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++