Zend Framework 2.0在Windows上的安装配置

所有人都知道IT行业里技术更新速度非常快,Zend Framework 1还用得意犹未尽,Zend Framework 2又发布了。尽管如此,我们还是要学习Zend Framework 2,并开始使用它。今天讲讲Zend Framework 2在windows的上的安装,安装步骤如下:

1. 到https://github.com/zendframework/ZendSkeletonApplication下载zip包,解压到你服务器的根目录。

2. 打开windows的cmd,cd到刚刚解压的ZendSkeletonApplication的目录下,执行:D:\wamp\bin\php\php5.3.10\php.exe composer.phar self-update(这里的PHP可执行文件的路径修安排替换成你电脑上的路径),提示:

Updating to version ***********************************************************.
Downloading: 100%
表示更新完成。

3. 在cmd中输入D:\wamp\bin\php\php5.3.10\php.exe composer.phar install,这时候在下载Zend的类库文件等,需要耐心等待。

4. 下载完成之后,你要配置下虚拟主机了,要保证你的服务器rewrite的功能打开。以apache为例,在httpd.ini中加入:

<VirtualHost *:80>
   DocumentRoot "D:/wamp/www/Zend2/public"
   ServerName .local
   # This should be omitted in the production environment
   SetEnv APPLICATION_ENV development
   <Directory "D:/wamp/www/Zend2/public">
       Options Indexes MultiViews FollowSymLinks
       AllowOverride All
       Order allow,deny
       Allow from all
   </Directory>
</VirtualHost>

5.浏览器的地址栏中输入localhost,你就会看到以下页面,就表示Zend Framework 2安装成功了:

20130308215830

A Pragmatic Philosophy(II)

2.Software Entropy
Entropy is a term from physics that refers to the amount of “disorder” in a system. Unfortunately, the laws of thermodynamics guarantee that the entropy in the universe tends toward a maximum. When disorder increases in software, programmers call it “software rot.”

In inner cities, some buildings are beautiful and clean, while others are rotting hulks. Why? Researchers in the field of crime and urban discovered a fascinating trigger mechanism, one that very quickly turns a clean, intact, inhabited building into a smashed and abandoned derelict.

A broken window.

One broken window, left unrepaired for any substantial length of time, instills in the inhabitants of the building a sense of abandonment-a sense that the powers that be don’t care about the building. So another window gets broken. People start littering. Graffiti appears. Serious structural damage begins. In a relatively short space of time, the building becomes damaged beyond the owner’s desire to fix it, and the sense of a abandonment becomes reality.

The “Broken Window Theory” has inspired police departments in New York and other major cities to crack down on the small stuff in order to keep out the big stuff. It works: keeping on top of broken windows, graffiti, and other small infractions has reduced the serious crime level.

Tip 4
Don’t Live with Broken Windows

Don’t leave “broken windows” (bad designs, wrong decisions, or poor code) unrepaired. Fix each one as soon as it is discovered. If there is insufficient time to fix it properly, then board it up. Perhaps you can comment out the offending code, or display a “Not Implemented” message, or substitute dummy data instead. Take some action to prevent further damage and to show that your’re on top of the situation.

You may be thinking that no one has the time to go around cleaning up all the broken glass of a project. If you continue to think like that, then you’d better plan on getting a dumpster, or moving to another neighborhood. Don’t let entropy win.

dll源代码调试全攻略~包括ISAPI,API HOOK,GINA等dll的源代码调试方法~

首先明白一点的是,只要有模块(exe,dll,sys等是模块)对应的正确符号文件,我们都可以使用代码去调试。

1:普通dll
首先写一个exe加载要调试的dll,下好断点后再按f5,会弹出一个框,让你输入调用该dll的程序,我们只要填入加载该dll的exe的路径即可。

或者在project->setting->debug里填入调用该dll的路径也是一样的。

2:com,activex控件。
和上述基本一致。如果是IE插件,那么就填入IE的路径。

3:shell扩展
这个需要注意一些问题:下面的话来自Windows Shell扩展编程完全指南(系统崩溃请找该文的作者,切勿来找我,谢谢)
当shell扩展被 Explorer调用后, 它会在内存中呆上一段时间, 这会使你无法重新编译并生成Shell扩展DLL文件.

要让 Explorer 更迅速地卸载Shell扩展执行文件,需要创建如下注册表项:
HKLM\Software\Microsoft\Windows\CurrentVersion\Explorer\AlwaysUnloadDLL
并将其值设为 “1”. 对于Win9x, 这是你能做的最好的方法。

而在Win NT/2000上, 你可以找到如下键:
HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer
并创建一个名为DesktopProcess的DWORD值 1. 这会使桌面和任务栏运行在同一个进程中, 而其他每一个 Explorer 窗口都运行在它自己的每一个进程内. 也就是说,你可以在单个的Explorer 窗口内进行调试, 而后只要你关闭该窗口,你的DLL就会被马上卸载, 这就避免了因为DLL正被Windows使用而无法替换更新. 而如果不幸出现这种情况,你就不得不注销登录后再重新登录进Windows从而强制卸载使用中的Shell扩展DLL.

———–
完成上面的任务后,和普通DLL那样调试,不过要选择系统目录里面的explorer.exe

4:ISAPI DLL
建议使用vs2003以及以上版本的vc。
MFC ISAPI都有一个全局类,命名为C+工程名+Extension
在此类的构造函数的第一行之前加上下面三行代码的其中一行
1:)MessageBox(NULL,”Please debug me!”,”Debug”,MB_OK|MB_SERVICE_NOTIFICATION);
2:)DebugBreak();
3:)_asm int 3
然后在生成目录的文件夹上点右键,以debug为例,选择”共享与安全”,在web共享里面选择”共享“该文件夹,权限设置为”执行“最后点确定。
运行IIS,在浏览器里面输入http://127.0.0.1/debug/isapi的名字(如testisapi.dll,如果需要输入密码则运行inetmgr,找到debug虚拟目录,点属性,然后勾选匿名访问。
这时会弹出一个对话框,先别点确定,回到vs2003中,在要调试的地方下好断点,然后在任务管理器中找到用户名为IWAM_XX的DLLHOST的进程ID,然后在vs2003菜单中选择调试->进程->选择刚才找到的进程ID,然后点附加,再点刚才弹出的框的确定(如果使用2或者3则点取消),然后程序就会停在断点下了,如果没停则是没下好断点,或者RPWT。

5:消息钩子
这个简单啊。。都不想再说了,假设写了个键盘钩子,需要勾住计算器的击键操作。先下好断点,在vs2003菜单中选择调试->进程->选择计算器,点附件按钮,最后在计算器上击键,程序就会停在断点处。

6:API HOOK
如果是注入到别的进程的API HOOK,那么调试方法和消息钩子一样。挂钩本进程,则直接启动调试。。。实在太简单了。

7:GINA
这个稍微繁琐。方法多种多样。
1:)参考下面的文章
如何在单个计算机上调试 GINA DLL
http://support.microsoft.com/kb/260901/zh-cn
How to debug a GINA DLL on a single computer
http://support.microsoft.com/default.aspx?scid=kb;EN-US;Q260901
2::)用NTSD调试,修改下面注册表,(来自MSDN,不行请找微软)
HKEY_LOCAL_MACHINE
Software
Microsoft
Windows NT
CurrentVersion
Image File Execution Options
winlogon.exe
Debugger = ntsd -d
3:)双机kernel windbg与user ntsd联合调试,在vm里面设置系统以调试方式启动,然后在目标系统的注册表加上
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\WinLogon.EXE\Debugger

ntsd -d -x -g

,然后重新启动vm里面的系统,选择调试方式启动,然后开启windbg,选择内核调试,连接上系统。等啊等,winlogon会被ntsd中断,并且反映到windbg里面,这时是打开代码下断点的好机会。这个就是所谓的kernel windbg与user ntsd联合调试。

———-
8:其它调试方式
使用TRACE宏把信息输出到dbgview上。这个方便,并且不干扰程序的执行。

该文章转自CSDN!

怎样复制Windows cmd中的内容

通常在windows里面的方法就是左键选中起始位置,然后拖动鼠标到达终止位置,再ctrl+c,或者右键选择复制即可。但是在cmd的环境下,就没有这么简单了,方法如下:
1、在需要复制的内容的起始部分,单击鼠标右键,选择“标记”;
2、此刻直接左键拖动鼠标即可实现内容的选定了;
3、选择完毕,直接按键盘的回车键,即可完成复制操作了!

 

 

参考文献:

http://hi.baidu.com/wuhongtianfj/item/05ec14a5f376dc218819d358

 

Tonitech版权所有 | 转载请注明出处: http://www.tonitech.com/?p=323

Windows访问NAT连接的虚拟机服务器

        在NAT的连接模式下,Windows是可以直接访问虚拟机中的linux搭建的LAMP服务器的,先使用ifconfig查看虚拟机的IP地址,然后在Windows浏览器地址栏中输入IP地址访问,如果出现该也无法显示,一般情况下是linux的防火墙没有配置。所以需要配置linux防火墙,开启80和3306端口,80端口是http的,3306是mysql的。使用语句“vim /etc/sysconfig/iptables”出现:

-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT

下面输入  

-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT 
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT

然后写入文件。
最后重启防火墙:

/etc/init.d/iptables restart

这样之后配置就生效了,在去Windows下浏览器输入虚拟机linux的IP地址,就可以访问服务器了。