包含lighttpdwindows的词条

http://www.itjxue.com  2023-02-21 18:02  来源:未知  点击次数: 

有在windows下的轻量级部署方法吗

iis显然太过重量,所以出问题的可能性也大。

nginx和lighttpd是可以。

不过如果能有纯python的就更好了。

windows服务器怎么反爬虫

手工识别和拒绝爬虫的访问

相当多的爬虫对网站会造成非常高的负载,因此识别爬虫的来源IP是很容易的事情。最简单的办法就是用netstat检查80端口的连接:

netstat -nt | grep youhostip:80 | awk '{print $5}' | awk -F":" '{print $1}'| sort | uniq -c | sort -r -n

这行shell可以按照80端口连接数量对来源IP进行排序,这样可以直观的判断出来网页爬虫。一般来说爬虫的并发连接非常高。

如果使用lighttpd做Web

Server,那么就更简单了。lighttpd的mod_status提供了非常直观的并发连接的信息,包括每个连接的来源IP,访问的URL,连接状

态和连接时间等信息,只要检查那些处于handle-request状态的高并发IP就可以很快确定爬虫的来源IP了。

拒绝爬虫请求既可以通过内核防火墙来拒绝,也可以在web server拒绝,比方说用iptables拒绝:

iptables -A INPUT -i eth0 -j DROP -p tcp --dport 80 -s 84.80.46.0/24

直接封锁爬虫所在的C网段地址。这是因为一般爬虫都是运行在托管机房里面,可能在一个C段里面的多台服务器上面都有爬虫,而这个C段不可能是用户宽带上网,封锁C段可以很大程度上解决问题。

通过识别爬虫的User-Agent信息来拒绝爬虫

有很多爬虫并不会以很高的并发连接爬取,一般不容易暴露自己;有些爬虫的来源IP分布很广,很难简单的通过封锁IP段地址来解决问题;另外还有很多

各种各样的小爬虫,它们在尝试Google以外创新的搜索方式,每个爬虫每天爬取几万的网页,几十个爬虫加起来每天就能消耗掉上百万动态请求的资源,由于

每个小爬虫单独的爬取量都很低,所以你很难把它从每天海量的访问IP地址当中把它准确的挖出来。

这种情况下我们可以通过爬虫的User-Agent信息来识别。每个爬虫在爬取网页的时候,会声明自己的User-Agent信息,因此我们就可以

通过记录和分析User-Agent信息来挖掘和封锁爬虫。我们需要记录每个请求的User-Agent信息,对于Rails来说我们可以简单的在

app/controllers/application.rb里面添加一个全局的before_filter,来记录每个请求的User-Agent信

息:

logger.info "HTTP_USER_AGENT #{request.env["HTTP_USER_AGENT"]}"

然后统计每天的production.log,抽取User-Agent信息,找出访问量最大的那些User-Agent。要注意的是我们只关注那

些爬虫的User-Agent信息,而不是真正浏览器User-Agent,所以还要排除掉浏览器User-Agent,要做到这一点仅仅需要一行

shell:

grep HTTP_USER_AGENT production.log | grep -v -E 'MSIE|Firefox|Chrome|Opera|Safari|Gecko' | sort | uniq -c | sort -r -n | head -n 100 bot.log

统计结果类似这样:

57335 HTTP_USER_AGENT Baiduspider+(+)

56639 HTTP_USER_AGENT Mozilla/5.0 (compatible; Googlebot/2.1; +)

42610 HTTP_USER_AGENT Mediapartners-Google

19131 HTTP_USER_AGENT msnbot/2.0b (+)

从日志就可以直观的看出每个爬虫的请求次数。要根据User-Agent信息来封锁爬虫是件很容易的事情,lighttpd配置如下:

$HTTP["useragent"] =~ "qihoobot|^Java|Commons-HttpClient|Wget|^PHP|Ruby|Python" {

url.rewrite = ( "^/(.*)" = "/crawler.html" )

}

使用这种方式来封锁爬虫虽然简单但是非常有效,除了封锁特定的爬虫,还可以封锁常用的编程语言和HTTP类库的User-Agent信息,这样就可以避免很多无谓的程序员用来练手的爬虫程序对网站的骚扰。

还有一种比较常见的情况,就是某个搜索引擎的爬虫对网站爬取频率过高,但是搜索引擎给网站带来了很多流量,我们并不希望简单的封锁爬虫,仅仅是希望降低爬虫的请求频率,减轻爬虫对网站造成的负载,那么我们可以这样做:

$HTTP["user-agent"] =~ "Baiduspider+" {

connection.delay-seconds = 10

}

对百度的爬虫请求延迟10秒钟再进行处理,这样就可以有效降低爬虫对网站的负载了。

通过网站流量统计系统和日志分析来识别爬虫

有些爬虫喜欢修改User-Agent信息来伪装自己,把自己伪装成一个真实浏览器的User-Agent信息,让你无法有效的识别。这种情况下我们可以通过网站流量系统记录的真实用户访问IP来进行识别。

主流的网站流量统计系统不外乎两种实现策略:一种策略是在网页里面嵌入一段js,这段js会向特定的统计服务器发送请求的方式记录访问量;另一种策

略是直接分析服务器日志,来统计网站访问量。在理想的情况下,嵌入js的方式统计的网站流量应该高于分析服务器日志,这是因为用户浏览器会有缓存,不一定

每次真实用户访问都会触发服务器的处理。但实际情况是,分析服务器日志得到的网站访问量远远高于嵌入js方式,极端情况下,甚至要高出10倍以上。

现在很多网站喜欢采用awstats来分析服务器日志,来计算网站的访问量,但是当他们一旦采用Google

Analytics来统计网站流量的时候,却发现GA统计的流量远远低于awstats,为什么GA和awstats统计会有这么大差异呢?罪魁祸首就是

把自己伪装成浏览器的网络爬虫。这种情况下awstats无法有效的识别了,所以awstats的统计数据会虚高。

其实作为一个网站来说,如果希望了解自己的网站真实访问量,希望精确了解网站每个频道的访问量和访问用户,应该用页面里面嵌入js的方式来开发自己

的网站流量统计系统。自己做一个网站流量统计系统是件很简单的事情,写段服务器程序响应客户段js的请求,分析和识别请求然后写日志的同时做后台的异步统

计就搞定了。

通过流量统计系统得到的用户IP基本是真实的用户访问,因为一般情况下爬虫是无法执行网页里面的js代码片段的。所以我们可以拿流量统计系统记录的

IP和服务器程序日志记录的IP地址进行比较,如果服务器日志里面某个IP发起了大量的请求,在流量统计系统里面却根本找不到,或者即使找得到,可访问量

却只有寥寥几个,那么无疑就是一个网络爬虫。

分析服务器日志统计访问最多的IP地址段一行shell就可以了:

grep Processing production.log | awk '{print $4}' | awk -F'.' '{print $1"."$2"."$3".0"}' | sort | uniq -c | sort -r -n | head -n 200 stat_ip.log

然后把统计结果和流量统计系统记录的IP地址进行对比,排除真实用户访问IP,再排除我们希望放行的网页爬虫,比方Google,百度,微软msn爬虫等等。最后的分析结果就就得到了爬虫的IP地址了。以下代码段是个简单的实现示意:

whitelist = []

IO.foreach("#{RAILS_ROOT}/lib/whitelist.txt") { |line| whitelist line.split[0].strip if line }

realiplist = []

IO.foreach("#{RAILS_ROOT}/log/visit_ip.log") { |line| realiplist line.strip if line }

iplist = []

IO.foreach("#{RAILS_ROOT}/log/stat_ip.log") do |line|

ip = line.split[1].strip

iplist ip if line.split[0].to_i 3000 !whitelist.include?(ip) !realiplist.include?(ip)

end

Report.deliver_crawler(iplist)

分析服务器日志里面请求次数超过3000次的IP地址段,排除白名单地址和真实访问IP地址,最后得到的就是爬虫IP了,然后可以发送邮件通知管理员进行相应的处理。

网站的实时反爬虫防火墙实现策略

通过分析日志的方式来识别网页爬虫不是一个实时的反爬虫策略。如果一个爬虫非要针对你的网站进行处心积虑的爬取,那么他可能会采用分布式爬取策略,

比方说寻找几百上千个国外的代理服务器疯狂的爬取你的网站,从而导致网站无法访问,那么你再分析日志是不可能及时解决问题的。所以必须采取实时反爬虫策

略,要能够动态的实时识别和封锁爬虫的访问。

要自己编写一个这样的实时反爬虫系统其实也很简单。比方说我们可以用memcached来做访问计数器,记录每个IP的访问频度,在单位时间之内,

如果访问频率超过一个阀值,我们就认为这个IP很可能有问题,那么我们就可以返回一个验证码页面,要求用户填写验证码。如果是爬虫的话,当然不可能填写验

证码,所以就被拒掉了,这样很简单就解决了爬虫问题。

用memcache记录每个IP访问计数,单位时间内超过阀值就让用户填写验证码,用Rails编写的示例代码如下:

ip_counter = Rails.cache.increment(request.remote_ip)

if !ip_counter

Rails.cache.write(request.remote_ip, 1, :expires_in = 30.minutes)

elsif ip_counter 2000

render :template = 'test', :status = 401 and return false

end

这段程序只是最简单的示例,实际的代码实现我们还会添加很多判断,比方说我们可能要排除白名单IP地址段,要允许特定的User-Agent通过,要针对登录用户和非登录用户,针对有无referer地址采取不同的阀值和计数加速器等等。

此外如果分布式爬虫爬取频率过高的话,过期就允许爬虫再次访问还是会对服务器造成很大的压力,因此我们可以添加一条策略:针对要求用户填写验证码的

IP地址,如果该IP地址短时间内继续不停的请求,则判断为爬虫,加入黑名单,后续请求全部拒绝掉。为此,示例代码可以改进一下:

before_filter :ip_firewall, :except = :test

def ip_firewall

render :file = "#{RAILS_ROOT}/public/403.html", :status = 403 if BlackList.include?(ip_sec)

end

我们可以定义一个全局的过滤器,对所有请求进行过滤,出现在黑名单的IP地址一律拒绝。对非黑名单的IP地址再进行计数和统计:

ip_counter = Rails.cache.increment(request.remote_ip)

if !ip_counter

Rails.cache.write(request.remote_ip, 1, :expires_in = 30.minutes)

elsif ip_counter 2000

crawler_counter = Rails.cache.increment("crawler/#{request.remote_ip}")

if !crawler_counter

Rails.cache.write("crawler/#{request.remote_ip}", 1, :expires_in = 10.minutes)

elsif crawler_counter 50

BlackList.add(ip_sec)

render :file = "#{RAILS_ROOT}/public/403.html", :status = 403 and return false

end

render :template = 'test', :status = 401 and return false

end

如果某个IP地址单位时间内访问频率超过阀值,再增加一个计数器,跟踪他会不会立刻填写验证码,如果他不填写验证码,在短时间内还是高频率访问,就

把这个IP地址段加入黑名单,除非用户填写验证码激活,否则所有请求全部拒绝。这样我们就可以通过在程序里面维护黑名单的方式来动态的跟踪爬虫的情况,甚

至我们可以自己写个后台来手工管理黑名单列表,了解网站爬虫的情况。

关于这个通用反爬虫的功能,我们开发一个开源的插件:

这个策略已经比较智能了,但是还不够好!我们还可以继续改进:

1、用网站流量统计系统来改进实时反爬虫系统

还记得吗?网站流量统计系统记录的IP地址是真实用户访问IP,所以我们在网站流量统计系统里面也去操作memcached,但是这次不是增加计数

值,而是减少计数值。在网站流量统计系统里面每接收到一个IP请求,就相应的cache.decrement(key)。所以对于真实用户的IP来说,它

的计数值总是加1然后就减1,不可能很高。这样我们就可以大大降低判断爬虫的阀值,可以更加快速准确的识别和拒绝掉爬虫。

2、用时间窗口来改进实时反爬虫系统

爬虫爬取网页的频率都是比较固定的,不像人去访问网页,中间的间隔时间比较无规则,所以我们可以给每个IP地址建立一个时间窗口,记录IP地址最近

12次访问时间,每记录一次就滑动一次窗口,比较最近访问时间和当前时间,如果间隔时间很长判断不是爬虫,清除时间窗口,如果间隔不长,就回溯计算指定时

间段的访问频率,如果访问频率超过阀值,就转向验证码页面让用户填写验证码。

最终这个实时反爬虫系统就相当完善了,它可以很快的识别并且自动封锁爬虫的访问,保护网站的正常访问。不过有些爬虫可能相当狡猾,它也许会通过大量

的爬虫测试来试探出来你的访问阀值,以低于阀值的爬取速度抓取你的网页,因此我们还需要辅助第3种办法,用日志来做后期的分析和识别,就算爬虫爬的再慢,

它累计一天的爬取量也会超过你的阀值被你日志分析程序识别出来。

如何优化windows+IIS67环境下FastCGI配置方法

windows2003+IIS6如何中优化FastCGI配置方法

FastCGI优化配置文件fcgiext.ini,它在%windir%\system32\inetsrv里。我们将尝试用两种办法进行配置:FastCGI管理脚本fcgiconfig.js;记事本编辑fcgiext.ini。

脚本配置FastCGI

打开你的命令行cmd.exe,切换到目录 %windir%\system32\inetsrv。复制下面内容,回车执行以下即可完成。请根据需要设置后面的参数。

1 cscript fcgiconfig.js -set -section:"PHP" -InstanceMaxRequests:5000

2

3 cscript fcgiconfig.js -set -section:"PHP" -EnvironmentVars:PHP_FCGI_MAX_REQUESTS:5000

4

5 cscript fcgiconfig.js -set -section:"PHP" -RequestTimeout:360

6

7 cscript fcgiconfig.js -set -section:"PHP" -ActivityTimeout:120

脚本的含义,分别是:

设置应用程序池回收。FastCGI进程请求数达到InstanceMaxRequests数值5000,应用程序池将自动回收。默认值是1000。

当环境变量PHP_FCGI_MAX_REQUESTS达到10000将自动回收应用程序池。

RequestTimeout 设置请求超时时间,也就是请求允许的最大时间,如果FastCGI进程请求超过此设置将被禁止,值是90秒。

ActivityTimeout 指定FastCGI进程请求的最大活跃时间,在设定时间内,FastCGI进程和IIS没有通信,将终止进程。默认值是70秒。

注意:脚本命令是全局设置,针对服务器上所有以FastCGI运行的PHP网站。因此对于多站点的虚拟机来说,InstanceMaxRequests设置成PHP网站数X500相对理想。

500是变数。如果有10个网站,那么200X50=5000,类推。流量大的服务器,数值设置过小频繁回收应用程序池,并不是什么明智的做法。——虽然,系统回收了不少资源。

RequestTimeout数值过大,无疑将让更多消耗系统资源的请求运行;ActivityTimeout设置为120秒不活动就断开好,还是30秒不活动就断开好,因人而异。

复制粘贴适合懒人

FastCGI配置文件fcgiext.ini设置

InstanceMaxRequests=10000

EnvironmentVars=PHP_FCGI_MAX_REQUESTS:10000

RequestTimeout=360

ActivityTimeout=120

把上面代码复制到fcgiext.ini的末尾,保存就好了。

PHP5.3.6的优化配置

PHP5.3.6的php.ini配置也分为两部分:关于FastCGI的配置;关于PHP本身的配置。我的PHP5.3.6安装在C:\PHP。

PHP.ini关于FastCGI部分

fastcgi.impersonate = 1

cgi.fix_pathinfo=1

cgi.force_redirect = 0

PHP.ini关于自身的部分

一、搜索extension_dir,去掉前面注释逗;地,修改成:

1 extension_dir = "c:/php/ext"

二、搜索date.timezone,去掉前面注释逗;地,修改成:

1 date.timezone = "asia/shanghai"

三、搜索下面,然后去掉前面的注视逗;地

extension=php_gd2.dll

extension=php_mbstring.dll

extension=php_mysql.dll

如此这般你的PHP基本可以畅通无阻了。至于一些更高级的修改,我们没有必要研究那么深,不是吗?

windows 2003+IIS6中优化fastcgi配置文件fcgiext.ini,减少php-cgi.exe进程数量和所占内存大小

本来听说fastcgi比isapi好就在服务器中装上了,配置环境为windows 2003+IIS6+fastcgi(FCGI)+PHP5.2.17,经过与很长一段时间观察,发现工作在FastCGI模式下的PHP会占用越来越多的内存,访问量稍微多点php-cgi进程就多了N个,同样情况下能比原来用isapi模式的时候多出几百M,我的服务器内存只有2G伤不起啊。

我在网上搜索了一下,发现还有不少人面临同样的问题。来自PHP官方的一个比较正式的解释是:php-cgi进程并没有内存泄漏,php-cgi会在每个请求结束的时候回收脚本使用的全部内存,但是并不会释放给操作系统,而是继续持有以应对下一次PHP请求。这样做大概是为了减少内存碎片化或者解决从系统申请内存之后又释放回操作系统所需要的时间不可控问题。可是如果偶然一次PHP请求使用了诸如ftp或者zlib这样的大内存操作,那么将导致一大块系统内存被php-cgi持续占有,不能被利用。

解决这个问题的办法是在web服务器配置中优化fastcgi配置文件参数。

在C:\WINDOWS\system32\inetsrv\fcgiext.ini 文件中可以设定php-cgi进程相关参数,如:

[Types]

php = PHP

[PHP]

ExePath=C:\php-5.3.8-nts-Win32-VC9-x86\php-cgi.exe

maxInstances=100

InstanceMaxRequests=10000

EnvironmentVars=PHP_FCGI_MAX_REQUESTS:10000

RequestTimeout=600

ActivityTimeout=900

在上面的配置中:

ExePath 指定了FastCGI解析程序的路径,

instanceMaxRequests 指定了每个实例可以处理的最大请求数,

maxInstances 指定可以启动的最大实例数目,

EnvironmentVars 创建了一个环境变量 PHP_FCGI_MAX_REQUESTS ,默认值设为10000,

requestTimeout 指定了请求的超时时间为600秒,

activityTimeout 指定了活动会话超时时间为900秒。

一下是建议值:

maxInstances=

把这个值改小

建议

512M 内存的改maxInstances=50

1G 内存的改maxInstances=80

2G 内存的改maxInstances=140

再修改

InstanceMaxRequests=

把这个值改小

建议

512M 内存的改InstanceMaxRequests=200

1G 内存的改InstanceMaxRequests=300

2G 内存的改InstanceMaxRequests=500

改完, 重启IIS。

instanceMaxRequests PHP_FCGI_MAX_REQUESTS 这两个参数决定了一个php-cgi进程被创建出来之后,最多接受的PHP请求数,在lighttpd中默认配置是10000。也就是说这个php-cgi进程每接受10000次PHP请求后会终止,释放所有内存,并重新被管理进程启动。如果把它降低,比如改成100,那么php-cgi重启的周期会大大缩短,偶然的高内存操作造成的问题影响时间也会缩短。

maxInstances 这个参数指定可以启动的最大实例数目,即php-cgi.exe进程的数目。如果把它降低,比如改成100,那么在任务管理器的进程中最多只有php-cgi.exe进程,php-cgi.exe所占用的总内存将大大减少。

我现在用的服务器为windows 2003操作系统,4G内存,一个php-cgi.exe程序占用7-25M内存,我把maxInstances值调为300,减少了php-cgi.exe进程的总数量,占用内存也减小了,反应速度比以前快了不少,至少调整到多少,可根据您的站点访问量来决定。

如何修复windows10上出现的服务器支持 TLS Client-initiated 重协商攻击(CVE-2011-1473)漏洞。

使用SSL开启重协商的服务都会受该漏洞影响

该漏洞存在于SSL renegotiation的过程中。对于使用SSL重协商功能的服务都会受其影响。特别的,renegotiation被用于浏览器到服务器之间的验证。

虽然目前可以在不启用renegotiation进程的情况下使用HTTPS,但很多服务器的默认设置均启用了renegotiation功能。

该漏洞只需要一台普通电脑和DSL连接即可轻易攻破SSL服务器。而对于大型服务器集群来说,则需要20台电脑和120Kbps的网络连接即可实现。

SSL是银行、网上电子邮件服务和其他用于服务器和用户之间保护私人数据并安全通信必不可少的功能。所以本次拒绝服务漏洞影响范围非常广危害非常大。

一、Apache解决办法:

升级到Apache 2.2.15以后版本

二、IIS解决办法:

IIS 5.0启用SSL服务时,也会受影响。可以升级IIS 6.0到更高的版本。

三、Lighttpd解决办法:

建议升级到lighttpd 1.4.30或者更高,并设置ssl.disable-client-renegotiation = "enable"。

四、Nginx解决办法:

0.7.x升级到nginx 0.7.64

0.8.x升级到 0.8.23 以及更高版本。

五、Tomcat解决办法:

1、使用NIO connector代替BIO connector,因为NIO不支持重协商,参考如下配置:

Connector protocol="org.apache.coyote.http11.Http11NioProtocol"

(可能会影响Tomcat性能);

2、配置Nginx反向代理,在Nginx中修复OpenSSL相关问题。

六、Squid解决办法:

升级到3.5.24以及以后版本

扩展资料:

分布式拒绝服务攻击可以使很多的计算机在同一时间遭受到攻击,使攻击的目标无法正常使用,分布式拒绝服务攻击已经出现了很多次,导致很多的大型网站都出现了无法进行操作的情况,这样不仅仅会影响用户的正常使用,同时造成的经济损失也是非常巨大的。

分布式拒绝服务攻击方式在进行攻击的时候,可以对源IP地址进行伪造,这样就使得这种攻击在发生的时候隐蔽性是非常好的,同时要对攻击进行检测也是非常困难的,因此这种攻击方式也成为了非常难以防范的攻击。

参考资料来源:百度百科--分布式拒绝服务攻击

Windows10上安装使用Linux子系统(WSL)

Linux的Windows子系统让开发人员可以直接在Windows上运行Linux环境(包括大多数命令行工具,实用程序和应用程序),而无需建立在虚拟机的开销之上,整个系统共200多M,但包含了你能用到的所有功能,并且和windows完美互操作(省去Linux挂载本地windows分区或目录的操作),目前Linux的windows子系统已经相当完善,可当作完整linux系统使用.

您可以:

从Windows应用商店中 选择您最喜爱的Linux发行版。

运行常用的命令行实用程序,如grep,sed,awk等。

运行Bash shell脚本和Linux命令行应用程序,包括:

工具:vim,emacs,tmux

语言:Javascript / node.js,Ruby,Python,C / C ++,C#和F#,Rust,Go等

服务:sshd,MySQL,Apache,lighttpd

使用发行版的内置包管理器(apt-get)安装其他Linux工具。

从Linux控制台调用Windows应用程序。

在Windows上调用Linux应用程序。

1、打开 [控制面板]

2、找到 [程序与功能] 处的 [启用或关闭windows功能]

3、在 [适用于linux的windows子系统] 一栏处打上勾

4、点击确定并重启电脑

注:以上步骤在win10专业版上测试,win10家庭版可能不支持

使用快捷键: 微软光标键+S 搜索 "功能"

进入功能

勾选适用于Linux的Windows子系统

或者直接PowerShell中运行以下命令

然后出现提示重新启动计算机

在应用商店搜索“Linux”,选择您喜欢的Linux版本,推荐安装Ubuntu

注意:应用商店的程序使用默认路径,不要更换到其他盘符

安装完毕后开始菜单出现Ubuntu图标

现在可以在里面进行任何和linux相关的命令

或者在Windows商店里直接启动

进入Ubuntu系统会自动初始化并安装,稍等几分钟即可

Enjoy !

切记:小心执行 mkdir -rf mnt

Windows系统下怎么安装Lighttpd 非cygwin 环境详细安装方法

我会。。 可是我怎么教你呢。。 好吧。。我承认打字比较麻烦。 下面是这样的 WIN7的话1、对着我的电脑右键单击“属性”选项 2、新弹出来的窗口,看左边,第四项“高级系统设置”3、在新弹出的系统属性中找到第三项“高级”选项卡4、点下面的环境变量5、在弹出的窗口中,下面的那个小窗口,找到变量名为“Path”的这个变量 双击打开他的值而你要做的是,找到你自己安装的JDK 的bin 目录和Cygwin的bin 目录和Cygwin 的usr\bin 目录把他们添加到变量名为Path的值里面。同时在新建个变量名为“JAVA_HOME“的变量。 值指向你的JDK路径。要说的再细致点的话再给点分 O(∩_∩)O 。。。告诉你吧~JAVA_HOME 指向JDK的安装目录的环境配置:首先在上面第五步打开的环境变量窗口中,下面那个框中新建一个系统变量。变量名为“JAVA_HOME”的变量。变量值为“D:\Program Files\Java\jdk1.6.0_24”然后点确定!这个搞定!Path中的配置:1、首先找到你安装JDK的bin目录,例如 D:\Program Files\Java\jdk1.6.0_24\bin2、再找到你安装Cygwin的bin目录,例如 D:\Program Files\Cygwin\bin 3、然后找到你安装Cygwin 的usr下的bin 目录,例如 D:\Program Files\Cygwin\bin 4、在上面第五步打开的环境变量窗口中,下面那个框中找到变量名为“Path”的变量,双击鼠标,弹出的小窗口中看到变量值,然后用鼠标拉到的最后面,切记在最后面,先加个;(分号),这样做是因为PATH中的变量是要用;隔开的。最后把你上面找到的那三个自己的路径依次复制到Path的变量值的后面。例如: ;D:\Program Files\Java\jdk1.6.0_24\bin;D:\Program Files\Cygwin\bin;D:\Program Files\Cygwin\bin 然后确定。确定。再确定。哦了。搞定了。。累死我了。。

(责任编辑:IT教学网)

更多

推荐PowerPoint文章