May 152012
 

我想大概有60%的程序员会对这个规则有自己的反对意见,并且90%以上的不会去遵循这样的规范。

因为现在大部分高级语言都倾向于把表达要素描述的更佳清晰,这样的结果是标示符非常长。因此一行内用几个比较长的变量名和函数名,就很容易超过80个字符的限制。

关键字:
limit line length
80 characters per line

我想一直在windows环境下做开发的人是很难理解这么奇怪的限制。因为从Windows XP开始DOS环境已经渐渐在人们的视野中消失。现在有Eclipse、Netbeans、Dreamweaver等等这样强大的IDE,大部分都是最大化的情况下工作,所以绝大多数人已经习惯了最大化的软件界面下敲代码,而用这样的软件还要限制到80个字符,右半边剩下的部分显的空空的,可真浪费。何况现在咱们都在用宽屏显示器,没有必要只在显示器的一个角落敲代码吧?如果你这么想,那我希望你能继续看下去这篇文章。

在过去的时候计算机控制台的屏幕本身有一行只有80个字符的限制。

如果你用Windows,你可以打开命令提示符最大化看看。你会发现和你想象的不一样。如果用Ubuntu这样的Linux操作系统,默认打开的终端,它的默认宽度也是仅容纳80个字符。难道使用Linux的人都是傻子吗?不!

可以在以下几个方面解释这些疑惑.

1. 不同环境下可见代码的格式兼容性。

如果你忽然间想试试DOS环境下原生态的编辑器去编辑你的代码,你能想象到你的代码会显示成什么样吗?如果你没有遵守这样的规范,理所当让地去敲下很多行很长的代码。那么你肯定会想赶紧想办法把命令行窗口关掉打开你的宝贝IDE。那万一有一天你需要出差去机房调试,调试的时候发现得修改代码,而这个时候机房只有原厂的标准显示设备,而这个显示设备正好是一行80个字符的显示方式。你还要通过控制台在服务器上安装一个IDE去编辑你的代码吗?不重要的丑陋的代码可能你自己看,比较重要的代码可能有那么几个人一起看,更重要的代码可能是整个部门要看,甚至如果有一天产品真的做的很好,有可能会有一些评估的人,专业的代码安全负责人去看。你希望有一天有人着看着你的代码,只想键盘砸显示器吗?习惯真的很重要。

2. 不同版本之间的比较修改

用过版本控制软件的人对这一点应该比较容易赞同一些。一个比较理性的开发方式下往往会通过Git、Subversion、Mercurial 、CVS等版本控制软件来管理你或者团队的代码。而用过这样软件的人都知道有很多支持版本控制的IDE或者编辑器都是有比较功能。可能是两个窗口比较,也有可能是三个窗口比较。这个时候如果很多行的代码都超过了一定的界限,都会自动换行显示。你辛辛苦苦格式化的代码的清晰结构已经不复存在。这个时候你只想快点把不一样的地方改改,然后赶紧回到最大化的视图环境。如果遵守这个规范,你就不会再经历这样糟糕的体验。再就是喜欢看着边看别人的代码边学习编程的人也是一样。如果原作者一行代码200个字符以上,基本上你怎么调整你的IDE的窗口大小,你都无法使他的源代码全部展现在可视范围内。横向排列吧,也不是,纵向排列吧,也不是。总之就是一个字,烦!

3. 人类感官上的局限性

这个可能是最容易被程序员所遗忘的问题。我们现在为了看电影造了很多宽屏显示器。即便是这样,我们在用宽屏显示器看电影的时候实际上只能注意到局部的画面,其他部分出现什么,可能都只是衬托。细心的人就会发现拍的比较专业一点的影视作品,在主要人物切换对白的时候往往屏幕的焦点也会随之变化。说话的人的影响变清晰,其他人变模糊。不管人的站位是近还是远,都是如此。因为人类的眼睛就是这样工作的。人类又不是鸟类,不需要360度范围都要观察。再举一个例子,你能想象得到一行一行从左边界写到右边界的报纸会是什么样的感受吗?报纸上一小块一小块的排版也都是因为人体特性。

那就是人的眼睛在不变焦点的情况下观察事物总是以焦点为中心上下左右方向上都有突破不了的极限。

没有人喜欢每时每刻都在挑战极限,阅读代码本身就是一个很容易累地事情。何必要折磨自己的同时还要认为蹂躏别人的眼睛是理所当然所能被接受的呢?不信?你可以把一段代码全放到一行内左右拉着看一看,你就明白了。甚至你经常看到的博客也是把宽度限制在一定的宽度之内,使人阅读起来更佳顺畅和舒服。

人的眼睛是更喜欢上下变换焦点,而不是左右变换。从这里还可以想象得到中国的古人竖着写文章是多么地英明。其实现在看书本的方式也没有变,只不过把效率垂直方向的阅读效率从1个字符提高到了80个字符。80倍?^_^

最后想说的是,

换行是门艺术。

May 142012
 

水平方向上它们可以分割左右字符元素。

垂直方向上它们可以使你不同行的代码整齐地对齐,要么左对齐,要么右对齐。

什么时候左对齐,什么时候右对齐我会举具体地例子展示。

这方面的权威信息在哪里能找到?答案是Google

关键字举例:

space tab

space and tab

space or tab

这些查到的资料是根据,而权威是那种好几年,甚至几十年都被大多数人认同的方式。

Unix/Linux、Windows、Mac OS X三种主流的系统上默认文本编辑环境下的TAB一律都是相当于8个空格长度的空白符。

ASCII码中使用一个字节表示的单个空白符<\t>。永远都是。

大家都知道C语言是仅次与汇编语言最接近机器语言的高级语言。能用这种语言写程序的需求都是写出尽可能更省资源更高效的程序。

学过汇编和C语言的人都知道,这种语言的代码风格上都有极致简化表意的倾向。也就是说变量名,函数名等等,这些你看看标准C语言的库函数就会知道。学近代高抽象的高级语言入门的人来看这样极端简化的命名法甚至显得有点变态。不是以英文作为母语的国家的程序员,用自己的母语学习计算机语言的程序员来讲记住这样命名的函数或者系统变量是多么的痛苦,不说大家也都深有体会。翻翻当年在大学学过的C语言教科书,回忆回忆当时你第一次接触的时候第一时间理解到含义的有多少?另外你知道在DOS这样经典系统的环境下超过8个字符的文件,目录名称是不能完全显示出来的吗?

在这样的背景下8个空格长度的TAB键作为缩进和对齐的手段是非常好理解的。

因为追求省资源,追求高效的程序环境中,把语言元素极其简化了的程序代码中8个长度的TAB键可以有以下好处。

1. TAB键在ASCII码中和一个空格一样是用一个字节来表示。当然机器去执行二进制代码的时候比8个空格效率高。8倍呀!

2. 仅占用一个字节而能表现出8个占位符的TAB键的缩进使程序控制结构显得非常的清晰。

(当然是对于熟悉那种简化型表达方式的人来讲)

3. 另外这种情况下8个占位符的TAB键不太容易让代码超出一行80行的限制。

格式化和标识符长度问题折中选择就是4个空格长度的空白占位符。至于用空格还是TAB,只要保持一种统一的格式就可以。

然而,

个人推荐使用空格,这里不是敲4次键盘,而是编辑器或者IDE中设置TAB键的工作方式。具体怎么设置,Google吧。

使用空格可以避免一些无法通过使用TAB键对齐来满足各种不同的编辑环境的情况。空格对齐任何时候都不会有麻烦。

如果只是从左边界的缩进对齐,TAB键和手动空格组合的方式完全可以对齐。但是对齐一种特殊格式的数组的时候如果TAB键和空格混合使用,那么在8个空格长度的编辑器中是100%错位显示。何况现在的机器上已经可以忽略TAB键和空格效率上的微弱差距。

如果你跑程序的机器配置烂到需要用TAB键来代替空格的方式来进行提高执行效率的程度的话,我劝你还是换机器吧,实在想象不出这样的机器还能做什么?网速?一个网页能多大?使用TAB,你能在MB级别上减少空格的数据量吗?如果不能,那写代码的时候还是老老实实用空格吧。完全可以不用顾虑的。何况现在前段代码都是用工具就可以把多余的空格符清除干净,不过那也只是在部署到真正的生产(线上)环境中的时候才这样做。

May 142012
 

关键字: 编辑器, 字体, 语法高亮, 空格, TAB, 缩进, 80个字符, 换行, 命名

程序员的生涯中经常会碰到各式各样风格的代码。大概半年左右就能形成一种习惯。 也许你会沉浸在这种习惯中继续蹂躏着代码,也许会无意中让别的看到你的代码的人抓狂。所以习惯很重要。幽雅、清晰、漂亮、整齐的代码会让你自己和阅览你的代码的人身心愉悦。这样的感觉,当你用自己的十个手指敲下这种代码的时候就会明白一个道理:代码规范不只是规则,而是一门学问。

1. 敲击每一下键盘都要有根据,有根据有目的的打字才能产生高观赏性的代码。

2. 多看看优秀的开源软件的代码,这个过程中你将会学到两个意味深长的词汇:比较、总结

3. 人生当中总是要不停地问同样一个问题。为什么? 打字也一样。

4. 不要自己意淫。计算机科学已经发展现代,已经有无数地黑客和技术狂人在各个领域为你铺垫了基石。

5. 永远都不要以为写代码只是给自己看的,哪怕只是简单的小程序。因为某一天某一个人会看到你的习惯

6. 选择适合你的编辑器。强大的文本编辑器或者IDE不仅能提高你写程序的效率,还能为你解决大部分格式上的难题。

7. 像组织你的代码格式一样组织你的目录结构

8. 把这种习惯当成一种修炼

接下来的文章中我将说明解释一些这方面的问题。

May 122012
 
VOL,VLK,FPP,RTM,OEM,RC的含义

1.FPP(full packaged product [retail]):零售版
就是在各大软件店看到有漂亮包装的那种。可以升级安装,也可以全新安装。 但是需要激活,机器配置更换了还要通知微软,是比较痛苦的东西。

2.OEM(original equipment manufacturer):随机版
只能随机器出货,不能零售,所以叫做随机版。只能全新安装,不能从旧有操作系统升级。如果买笔记型计算机或品牌计算机就会有随机版软件。包装不像零售版精 美,通常只有一片cd和说明书(授权书)。这种系统通常会少一些驱动,而且目前的oem版很少放在光盘里能给你安装,要么就是恢复盘,要么就是硬盘镜像。

3.upgrade:升级版

不细说了,地球人都知道。包装和零售版一样,不过价格却便宜很多。只能升级安装,要全新安装的话,安装程序会检查旧有的操作系统光盘,检查过后就可以装了。大家估计是不会需要这种版本的。

4.beta:测试版

这个阶段的版本会一直加入新的功能。

5.rc(release.candidate):发行候选版本

和beta版最大的差别在于beta阶段会一直加入新的功能,但是到了rc版本,几乎就不会加入新的功能了,而是着重于除错!rc1就代表发行侯选第一版。真要253微软,想出什么rc,其实不就是最新更新的beta嘛。

6.RTM(release to manufacturing)

正式在零售商店上架前,需要一段时间来压片,包装、配销,所以程序代码必须在正式发行前一段时间就要完成,这个完成的程序代码叫做final.code, 这次Windows.xp开发完成,外国媒体用Windows xp.goes.gold来称呼。程序代码开发完成之后,要将母片送到工厂大量压片,这个版本就叫做rtm版。所以说,rtm版的程序码一定和正式版一 样。但是和正式版也有不一样的地方:例如正式版中的oem不能升级安装,升级版要全新安装的话会检查旧版操作系统光盘等,这些就是rtm和正式版不同的地 方,但是它们的主要程序代码都是一样的。 严格的说这种版本还是属于fpp零售版,需要激活的那种。

7.VOL(volume licensing for organizations)

(volume licensing for organizations):团体批量许可证(大量采购授权合约)。可能有人会认为这个不是vlo么?其实vol是取了volume的前3个字母而已, 不是3个词的字母缩写。比如英文wxp pro的vol版本的光盘卷标就是wxpvol_en,其中wx表示是Windows xp,p是professional(vol没有home版本),vol表明是团体批量许可证版本,en是表明是英语。获得途径主要是集团购买,某些 msdn用户也可以得到。这种版本根据购买数量等又细分为“开放式许可证”、“选择式许可证”、“企业协议”、“学术教育许可证”等以下5种版本:
open license
select license
Enterprise agreement
Enterprise subion agreement
academic volume licensing

8.VLK(volume licensing (product) keys)

volume licensing (product) keys,即vlk,它所指的只是一个key(密匙),仅仅是一个为证明产品合法化、以及安装所使用的key,因为根据vol计划规定,vol产品是不需 要激活的!或者说,vlk不是指一种版本,而是指这种版本在部署(deploy)过程中所需要的key,而需要vlk这种key的版本应该叫做vol!只 不过在实际中,没有必要强调这种叫法、称呼的准确性,加之很多人的vol版本光盘是通过企业的选择式许可证、企业协议等方式得到的等等原因,所以才会有很 多人叫他为“选择版”等等。

官方网站有一个表格,上面有一句话:“different products require different volume licensing keys (vlks). refer to the Table below to make sure you have the correct vlk for your microsoft product.”,我想这就很好的说明了vlk指的是key而不是产品了。

很明显的,fpp需要激活,vol不需要激活。大家都来使用vol吧!

最后说说winxp常见的professional和home的区别。

winxp共有3个系列,professional,home edition,64-bit edition。最后一种不是一般微机能装的,用于工作站电脑,就不提了。

最基本的概念就是professional的功能比home edition强!

home edition既不能归为域,又没有连接netware服务器的功能,也不能使用远程桌面和文件加密功能等。professional可以同时支持双 cpu和最多达9个显示器,而home edition只能支持单cpu和单显示器,home edition中的所有功能在professional中都具备,而且professional在组策略、安全管理、多国语言支持、网络管理和配置等方面 更为出色。另外,home edition的升级安装只能从Windows 98/98se/me上进行,而无法在Windows 95/nt4/2000中完成;而profession就没有这个限制。

May 122012
 

我看到很多人在研究windows环境下配置NginX + PHP(FASTCGI) + MySQL。
当然我也尝试过NginX + PHP(FASTCGI) + MySQL + memcached。
之后感觉就是其实windows下都是开发程序,也就是写代码,然后测试代码是否正常执行。
而使用ISAPI方式通过Apache运行正常的php程序,往往以FASTCGI方式在nginx下也可以很好的运行。
因此没有必要非要在windows环境下用FASTCGI的方式运行php。
等程序都开发好了真正上传到linux服务器上的时候根据需要选择ISAPI方式或者FASTCGI方式了。
并且根据这个来选择NginX 或者Apache了。
可能会有人说官方推荐大家使用性能更好的FASTCGI模式,你开发环境(windows)下的php程序只有你自己在跑。
还用担心性能吗?

===========================================================================================================

以下是Windows环境下使用解压包来配置开发环境的过程,对配置文件做最小的改动,并且重装系统之后也可以照常运行

目录结构:
D:\Server 服务器根目录
D:\Server\BAT\ 运行批处理文件通通放这里
D:\Server\SOURCE 下载下来的文件通通放进去

===========================================================================================================

 

 

第一步:MySQL

MySQL永远第一个安装,因为和PHP或者WEB服务器没有关联,它只要独立能跑起来就可以了。
从MySQL官方网站以下下载地址列表中下载Windows (x86, 32-bit), ZIP Archive(mysql-5.5.9-win32.zip)

地址:http://dev.mysql.com/downloads/mysql/

把下载下来的解压包解压到D:\Server目录下
复制my-huge.ini生成新的my.ini
看着官方文档修改my.ini文件
MySQL 5.5 Reference Manual::2 Installing and Upgrading MySQL::2.3 Installing MySQL on Microsoft Windows::2.3.5 Installing MySQL on Microsoft Windows Using a noinstall Zip Archive:: 2.3.5.2 Creating an Option File

这里my.cnf中可以使用相对路径,不过《当前目录》为bin目录,需要注意这一点

我在这里也把两处socket = /tmp/mysql.sock改成D:/Server/mysql-5.5.9-win32/tmp/mysql.sock, 并且在D:\Server\mysql-5.5.9-win32目录下新建一个tmp目录,看了官方文档之后发现windows下其实是用不到这个 mysql.sock,windows下是pipe,而不是sock,不过这个设置不影响正常运行,所以不管了,先这样了。

另外再把tmpdir设置到安装路径下,以便能查看到MySQL到底生成什么临时文件
配置文件中与路径信息相关的配置如下:

[mysqld]
# set basedir to your installation path
basedir=D:/Server/mysql-5.5.9-win32/
# set datadir to the location of your data directory
datadir=D:/Server/mysql-5.5.9-win32/data

tmpdir=D:/Server/mysql-5.5.9-win32/tmp

另外MySQL5.5开始使用InnoDB引擎作为默认引擎,我是跟着官网的推荐走。所以以下跟InnoDB有关的都取消注释,并且修改路径信息

# Uncomment the following if you are using InnoDB tables
innodb_data_home_dir = E:/Server/mysql-5.5.9-win32/data
innodb_data_file_path = ibdata1:2000M;ibdata2:10M:autoextend
innodb_log_group_home_dir = E:/Server/mysql-5.5.9-win32/data
# You can set .._buffer_pool_size up to 50 – 80 %
# of RAM but beware of setting memory usage too high
innodb_buffer_pool_size = 384M
innodb_additional_mem_pool_size = 20M
# Set .._log_file_size to 25 % of buffer pool size
innodb_log_file_size = 100M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50

MySQL 5.5 Reference Manual::2 Installing and Upgrading MySQL::2.3 Installing MySQL on Microsoft Windows::2.3.5 Installing MySQL on Microsoft Windows Using a noinstall Zip Archive:: 2.3.5.4 Starting the Server for the First Time

这里没什么可说明的。

另外比较重要的是字符集设置:

在[client]中添加一行

default-character-set=utf8

在[mysqld]中添加两行

character_set_server=utf8
collation_server=utf8_unicode_ci

 

修改root密码的命令:
D:\Server\mysql-5.5.9-win32\bin\mysqladmin -u root password xxxxxx

===========================================================================================================
第二步:PHP

同样是解压到D:\Server目录下

复制php.ini-development生成新的php.ini文件

===========================================================================================================

 

第三步:Apache

因为官方没有提供没有解压包,只有msi安装程序下载。

不过没关系,用安装程序安装其实就是简单的解压,重装系统之后照样可以正常使用。

安装到D:\Server\”去掉.msi的文件名”
写主机名的步骤我写了,其实写什么无所谓。
localdomain
localhost
han_zhi_xing@hotmail.com
记得一定要自定义安装选择安装路径
D:\Server\httpd-2.2.17-win32-x86-openssl-0.9.8o\

===========================================================================================================

 

第四步: 配置

php的配置放到这一步是因为只有运行了Apache你才能看到php支持情况。
先配置apache:
httpd.conf复制一份改名为httpd.conf.default。以下为需要修改的地方。

—————————————————————————————————————————————————————————-

DocumentRoot “D:/Server/httpd-2.2.17-win32-x86-openssl-0.9.8o/htdocs”
修改为
DocumentRoot “D:/WWWROOT”

 

<Directory “D:/Server/httpd-2.2.17-win32-x86-openssl-0.9.8o/htdocs”>
修改为
<Directory “D:/WWWROOT”>

 

DirectoryIndex index.html
修改为
DirectoryIndex index.html index.php

 

#LoadModule vhost_alias_module modules/mod_vhost_alias.so
下一行添加
LoadModule php5_module “D:/Server/php-5.3.5-Win32-VC9-x86/php5apache2_2.dll”

 

AddType application/x-gzip .gz .tgz
下一行添加
AddType application/x-httpd-php .php4 .php3 .php .htm .html .phtml .ph .inc
AddType application/x-httpd-php-source .phps

 

在文件尾添加
PHPIniDir “D:/Server/php-5.3.5-Win32-VC9-x86″

 

#Include conf/extra/httpd-vhosts.conf
下一行添加
# Alias directories
Include conf/extra/httpd-alias.conf
在extra下新建一个httpd-alias.conf文件,主要是为了使用http://localhost/myadmin的方式访问phpMyAdmin

—————————————————————————————————————————————————————————-

经过以上修改之后你在D:\WWWROOT目录下新建一个phpinfo.php文件
然后访问http://localhost/phpinfo.php
是可以正常访问的。
接下来配置php.ini

访问phpinfo.php文件的时候会发现中间data处有Warning警告,php.ini中修改以下内容就可以了。

—————————————————————————————————————————————————————————-

;date.timezone =
下一行添加
date.timezone = “Asia/Shanghai”

—————————————————————————————————————————————————————————-

;session.save_path = “/tmp”
下一行添加
session.save_path = “E:\Server\SESSION”
这样可以方便查看产生session文件

—————————————————————————————————————————————————————————-

; PHP’s default setting for include_path is “.;/path/to/php/pear”
; http://php.net/include-path
下一行添加
include_path = “.”

—————————————————————————————————————————————————————————-

; extension_dir = “ext”
下一行添加
extension_dir = “D:\Server\php-5.3.5-Win32-VC9-x86\ext”

—————————————————————————————————————————————————————————-

extension=php_gd2.dll
extension=php_mbstring.dll phpMyAdmin会用到这个
extension=php_mysql.dll
这三个是最低要求,gd没有不使用的吧,其他跟根据需要开启就行。

===========================================================================================================

 

 

第五步:phpMyAdmin

修改apache安装目录的conf/extra/httpd-alias.conf文件添加以下内容

# phpMyAdmin
Alias /myadmin “D:/Server/phpMyAdmin-3.3.9.2-all-languages/”
<Directory “D:/Server/phpMyAdmin-3.3.9.2-all-languages/”>
Options FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>

复制phpMyAdmin目录下的config.sample.inc.php文件创建一个config.inc.php文件,并修改以下内容

$cfg['blowfish_secret'] = ‘blowfish_secret_string’; /* 引号内随便填写一些字符 */
取消注释以下内容
$cfg['Servers'][$i]['pmadb'] = ‘phpmyadmin’;
$cfg['Servers'][$i]['bookmarktable'] = ‘pma_bookmark’;
$cfg['Servers'][$i]['relation'] = ‘pma_relation’;
$cfg['Servers'][$i]['table_info'] = ‘pma_table_info’;
$cfg['Servers'][$i]['table_coords'] = ‘pma_table_coords’;
$cfg['Servers'][$i]['pdf_pages'] = ‘pma_pdf_pages’;
$cfg['Servers'][$i]['column_info'] = ‘pma_column_info’;
$cfg['Servers'][$i]['history'] = ‘pma_history’;
$cfg['Servers'][$i]['tracking'] = ‘pma_tracking’;
$cfg['Servers'][$i]['designer_coords'] = ‘pma_designer_coords’;

解决phpMyAdmin无法上传大文件:
在phpMyAdmin根目录下创建一个目录Temp,并在config.inc.php中最下面修改以下内容。
这样就可以把大的sql文件放到这个目录中进行导入了。
$cfg['UploadDir'] = ‘Temp’;
$cfg['SaveDir'] = ‘Temp’;

复制phpMyAdmin目录下scripts\create_tables.sql中的内容,然后进入phpMyAdmin管理界面导入创建一个名为phpmyadmin的数据库,这样就可以解决《链接表的附加功能尚未激活》的问题

===========================================================================================================

 

 

第六步:实现bat批处理文件管理《启动》《关闭》《重启》

下载RunHiddenConsole.exe放到D:\Server目录下,这是一个隐藏cmd窗口的小工具
在D:\Server\BAT目录下创建以下文件:

—————————————————————————————————————————————————————————-

文件:mysql_start.bat

@ECHO OFF
cd “%~dp0″
..\RunHiddenConsole.exe ..\mysql-5.5.9-win32\bin\mysqld.exe

文件:mysql_stop.bat

@ECHO OFF
taskkill /F /IM mysqld.exe

文件:mysql_restart.bat

@ECHO OFF
cd “%~dp0″
taskkill /F /IM mysqld.exe

..\RunHiddenConsole.exe ..\mysql-5.5.9-win32\bin\mysqld.exe

文件:apache_start.bat

@ECHO OFF
cd “%~dp0″
..\RunHiddenConsole.exe ..\httpd-2.2.17-win32-x86-openssl-0.9.8o\bin\httpd.exe

文件:apache_stop.bat

@ECHO OFF
taskkill /F /IM httpd.exe

文件:apache_restart.bat

@ECHO OFF
taskkill /F /IM httpd.exe
cd “%~dp0″
..\RunHiddenConsole.exe ..\httpd-2.2.17-win32-x86-openssl-0.9.8o\bin\httpd.exe

文件:server_start.bat

@ECHO OFF
cd “%~dp0″
..\RunHiddenConsole.exe ..\mysql-5.5.9-win32\bin\mysqld.exe
..\RunHiddenConsole.exe ..\httpd-2.2.17-win32-x86-openssl-0.9.8o\bin\httpd.exe

文件:server_stop.bat

@ECHO OFF
taskkill /F /IM mysqld.exe
taskkill /F /IM httpd.exe

文件:server_restart.bat

@ECHO OFF
taskkill /F /IM mysqld.exe
taskkill /F /IM httpd.exe
cd “%~dp0″
..\RunHiddenConsole.exe ..\mysql-5.5.9-win32\bin\mysqld.exe
..\RunHiddenConsole.exe ..\httpd-2.2.17-win32-x86-openssl-0.9.8o\bin\httpd.exe

之后就可以卸载掉apache安装程序在系统服务中安装的服务,并且删掉开始菜单中的apache快捷方式目录了。

把上面的server_start.bat, server_stop.bat, server_restat.bat文件发送快捷方式到桌面,快捷方式的名字可以随便改了。