??xml version="1.0" encoding="utf-8" standalone="yes"?>日韩成人网免费视频,中文在线有码,偷拍自拍一区http://www.aygfsteel.com/zhouzhou163/category/3641.html专注于java ee技?包括struts,jsf,webwork,spring,hibernate,ibatiszh-cnSat, 24 Dec 2011 15:03:04 GMTSat, 24 Dec 2011 15:03:04 GMT60一个简单的phpQ算术运验证码http://www.aygfsteel.com/zhouzhou163/articles/366121.htmlrobbin163robbin163Mon, 12 Dec 2011 02:17:00 GMThttp://www.aygfsteel.com/zhouzhou163/articles/366121.htmlhttp://www.aygfsteel.com/zhouzhou163/comments/366121.htmlhttp://www.aygfsteel.com/zhouzhou163/articles/366121.html#Feedback0http://www.aygfsteel.com/zhouzhou163/comments/commentRss/366121.htmlhttp://www.aygfsteel.com/zhouzhou163/services/trackbacks/366121.html
<?php 
//session_start();
//生成验证码图?nbsp;
Header("Content-type: image/PNG"); 
srand((double)microtime()*1000000);//播下一个生成随机数字的U子Q以方便下面随机数生成的使用
//session_start();//随机数存入session?/div>
$_SESSION['authnum']="";
$im = imagecreate(70,20) or die("Cant's initialize new GD image stream!"); //制定囄背景大小
$black = ImageColorAllocate($im, 0,0,0); //讑֮三种颜色
$white = ImageColorAllocate($im, 255,255,255); 
$gray = ImageColorAllocate($im, 200,200,200);
imagefill($im,0,0,$gray); //采用区域填充法,讑֮Q?,0Q?/div>
//生成数字和字母؜合的验证码方?/div>
//$ychar="0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z";
$ychar="0,1,2,3,4,5,6,7,8,9";
$list=explode(",",$ychar);
$answer='';
$authnum=0;
for($i=0;$i<2;$i++){
$randnum=rand(0,10);
$authnum=$authnum+intval($randnum);
error_log("auth:$authnum :dddd:$randnum",0);
$answer=$answer.intval($randnum)."+";
}
$answer=rtrim($answer,"+");
$answer=$answer.'=?';
//$authnum=''.$answer;
//while(($authnum=rand()%100000)<10000); //生成随机的五们数
//五位整数验证码l入囄 
//$_COOKIE['authnum']=$authnum;
//error_log("auth:$authnum",0);
setCookie("authnum",$authnum,null,'/');
//imagestring($im, 5, 10, 3, $authnum, $black);
imagestring($im, 5, 10, 3, $answer, $black);
// ?col 颜色字W串 s d image 所代表的图像的 xQy 座标处(囑փ的左上角?0, 0Q?/div>
//如果 font ?1Q?Q?Q? ?5Q则使用内置字体
/*
for($i=0;$i<200;$i++) //加入q扰象素 
$randcolor = ImageColorallocate($im,rand(0,255),rand(0,255),rand(0,255));
imagesetpixel($im, rand()%70 , rand()%30 , $randcolor); 
 
 */
ImagePNG($im); 
ImageDestroy($im);



robbin163 2011-12-12 10:17 发表评论
]]>Apache:在一个IP地址上运行多个基于域名的web站点 转蝲http://www.aygfsteel.com/zhouzhou163/articles/336930.htmlrobbin163robbin163Wed, 03 Nov 2010 06:57:00 GMThttp://www.aygfsteel.com/zhouzhou163/articles/336930.html作者:linlonx@灵龙-技?实验?地址Qhttp://www.linlonx.com/post/288/

  您的服务器有只一个IP地址Q而在DNS中有很多域名(CNAMES)映射到这个机器。您而您惌在这个机器上q行www.example.com?a style="text-decoration: none; color: #333333; ">www.example.org两个站点?/p>

  注意
  在您的Apache服务器配|中创徏一个虚拟主机ƈ不会自动在您的DNS中对L名做相应更新。您必须自己在DNS中添加域名来指向您的IP地址。否则别人是无法看到您的web站点的。您可以在您的hosts文g中添加这一条目来进行测试,但这U方法仅适用于那些有q些hosts文g的机器来使用?nbsp;

  服务器配|?br />   # 保Apache在监?0端口
  Listen 80

  # 拟主机在所有IP地址上监?br />   NameVirtualHost *:80

  <VirtualHost *:80>
  DocumentRoot /www/example1
  ServerName www.example.com

  # 你可以在q里d其他指o

  </VirtualHost>

  <VirtualHost *:80>
  DocumentRoot /www/example2
  ServerName www.example.org

  # 你可以在q里d其他指o

  </VirtualHost>

  因ؓ星号匚w所有IP地址Q所以主服务器不接收Mh。因?a style="text-decoration: none; color: #333333; ">www.example.com首先出现在配|文件中Q所以它拥有最高优先Q可以认为是默认或主服务器。这意味着如果一个请求不能与某个ServerName指o相匹配,它将会由W一?lt;VirtualHost>D|伺服?/p>

  注意
  如果您愿意,您可以用定的IP地址来取?*"。在q种情况下,VirtualHost的参数必MNameVirtualHost的参数相W:

  NameVirtualHost 172.20.30.40

  <VirtualHost 172.20.30.40>
  # 其他 ...

  然而,当您的IP地址无法定的时候,使用"*"是很方便的,比如_您的ISPl您配置的是动态IP地址Q而您又用了某种动态域名解析系l时。因?*"匚wMIP地址Q所以在q种情况下,不论IP地址如何变化Q您都不需要另外进行配|?/p>

  上述配置是您在l大多数情况下用基于域名的虚拟L时将要用到的。事实上Q仅在一U情况下q样的配|不会让您满意:您想Z同的IP地址或是端口提供不同的内宏V?/p>

  在多于一个IP的情况下使用Z域名的虚拟主机?br />   注意
  在这里讨论的M技术都可以推广C用Q意数量的IP地址?/p>

  服务器有两个IP地址。一?172.20.30.40)用于L务器server.domain.com Q另外一?172.20.30.50)用于构徏两个或多个虚拟主机?/p>

  服务器配|?br />   Listen 80

  # "?服务器运行于Q?72.20.30.40
  ServerName server.domain.com
  DocumentRoot /www/mainserver

  # q是另外一个IP地址
  NameVirtualHost 172.20.30.50

  <VirtualHost 172.20.30.50>
  DocumentRoot /www/example1
  ServerName www.example.com

  # 你可以在q里d其他指o ...

  </VirtualHost>

  <VirtualHost 172.20.30.50>
  DocumentRoot /www/example2
  ServerName www.example.org

  # 你可以在q里d其他指o ...

  </VirtualHost>

  M不是针对172.20.30.50的请求都由L务器来伺服。而提交给172.20.30.50却没有主机名或没?Host:"头的hQ都由ww.example.com伺服?/p>

  在不同的IP的地址(比如一个内部和一个外部地址)上提供相同的内容
  服务器有两个IP地址(192.168.1.1?72.20.30.40)。这个机器位于内?局域网)|络和外?q域|?之间。在外部Q域名server.example.com指向外部地址(172.20.30.40)Q而在内部则指向内部地址(192.168.1.1)?/p>

  服务器可以ؓ来自内部和外部的h提供同样的内容,您只需要一?lt;VirtualHost>配置D就可以了?/p>

  服务器配|?br />   NameVirtualHost 192.168.1.1
  NameVirtualHost 172.20.30.40

  <VirtualHost 192.168.1.1 172.20.30.40>
  DocumentRoot /www/server1
  ServerName server.example.com
  ServerAlias server
  </VirtualHost>

  现在Q从不同的网l提交的h都会由同一?lt;VirtualHost>D|伺服?/p>

  注意
  在内|中Q您可以使用serverq个名字来代替server.example.comq个全名?/p>

  跟上面一P在上q的例子里,您可以用"*"来代替具体的IP地址Q这样就可以Ҏ有的地址都返回相同的内容了?/p>

  在不同的端口上运行不同的站点
  如果您想让同一个IP的不同端口伺服多个域名。您可以借助在NameVirtualHost指o中定义端口的Ҏ来达到这个目的。如果您想用不?name:port"?lt;VirtualHost name:port>或是直接用Listen指oQ您的配|将无法生效?/p>

  服务器配|?br />   Listen 80
  Listen 8080

  NameVirtualHost 172.20.30.40:80
  NameVirtualHost 172.20.30.40:8080

  <VirtualHost 172.20.30.40:80>
  ServerName www.example.com
  DocumentRoot /www/domain-80
  </VirtualHost>

  <VirtualHost 172.20.30.40:8080>
  ServerName www.example.com
  DocumentRoot /www/domain-8080
  </VirtualHost>

  <VirtualHost 172.20.30.40:80>
  ServerName www.example.org
  DocumentRoot /www/otherdomain-80
  </VirtualHost>

  <VirtualHost 172.20.30.40:8080>
  ServerName www.example.org
  DocumentRoot /www/otherdomain-8080
  </VirtualHost>

  建立ZIP的虚拟主?br />   一个有两个IP地址(172.20.30.40?72.20.30.50)分别对应域名www.example.com?a style="text-decoration: none; color: #333333; ">www.example.org的配|如下:

  服务器配|?br />   Listen 80

  <VirtualHost 172.20.30.40>
  DocumentRoot /www/example1
  ServerName www.example.com
  </VirtualHost>

  <VirtualHost 172.20.30.50>
  DocumentRoot /www/example2
  ServerName www.example.org
  </VirtualHost>

  如果存在L务器Q那么对没有出现在Q一?lt;VirtualHost>D中的请?比如Q对localhost的请?都会׃服务器来伺服?/p>

  LZ端口和基于IP的虚拟主?br />   如果您的服务器有两个IP地址(172.20.30.40?72.20.30.50)分别对应域名www.example.com?a style="text-decoration: none; color: #333333; ">www.example.org 。对每个域名Q您都希望在80端口?080端口发布您的|站。您可以q样配置Q?/p>

  服务器配|?br />   Listen 172.20.30.40:80
  Listen 172.20.30.40:8080
  Listen 172.20.30.50:80
  Listen 172.20.30.50:8080

  <VirtualHost 172.20.30.40:80>
  DocumentRoot /www/example1-80
  ServerName www.example.com
  </VirtualHost>

  <VirtualHost 172.20.30.40:8080>
  DocumentRoot /www/example1-8080
  ServerName www.example.com
  </VirtualHost>

  <VirtualHost 172.20.30.50:80>
  DocumentRoot /www/example2-80
  ServerName www.example.org
  </VirtualHost>

  <VirtualHost 172.20.30.50:8080>
  DocumentRoot /www/example2-8080
  ServerName www.example.org
  </VirtualHost>

  LZ域名和基于IP的虚拟主?br />   您想在一些地址上配|基于域名的虚拟L而在另外一些地址上配|基于IP的虚拟主机?/p>

  服务器配|?br />   Listen 80

  NameVirtualHost 172.20.30.40

  <VirtualHost 172.20.30.40>
  DocumentRoot /www/example1
  ServerName www.example.com
  </VirtualHost>

  <VirtualHost 172.20.30.40>
  DocumentRoot /www/example2
  ServerName www.example.org
  </VirtualHost>

  <VirtualHost 172.20.30.40>
  DocumentRoot /www/example3
  ServerName www.example3.net
  </VirtualHost>

  # IP-based
  <VirtualHost 172.20.30.50>
  DocumentRoot /www/example4
  ServerName www.example4.edu
  </VirtualHost>

  <VirtualHost 172.20.30.60>
  DocumentRoot /www/example5
  ServerName www.example5.gov
  </VirtualHost>

  ?lt;Virtual_host>和mod_proxy模块一起?br />   下面的例子允怸个前端机器代理一个运行在其他机器上的虚拟L。在如下CZ中,?92.168.111.2机器上配|了一个同名的虚拟L。这P万一在同一台机器上代理了多个主机名QProxyPreserveHostOn 指o能确保指定的L名顺利通过代理?/p>

  <VirtualHost *:*>
  ProxyPreserveHost On
  ProxyPass / http://192.168.111.2
  ProxyPassReverse / http://192.168.111.2/
  ServerName hostname.example.com
  </VirtualHost>

  使用"_default_"虚拟L
  为所有端口配|?_default_"虚拟L
  q样配置可以捕获所有指向没指定的IP地址和端口的h。比如:一个没被Q何虚拟主Z用的地址/端口寏V?/p>

  服务器配|?br />   <VirtualHost _default_:*>
  DocumentRoot /www/default
  </VirtualHost>

  q样一个用通配W端口的默认虚拟L可以有效的防止请求被L务器接收?/p>

  如果一个地址/端口对已l被一个基于域名的虚拟L使用Q那?_default_"虚拟L决不会处理发向这个地址/端口对的h。如果一?Host:"h头中包含未知信息Q或者干脆就没有Q那么它会被W一个基于域名的虚拟L(也就是在配置文g中最先出现的使用了那个地址/端口对的虚拟L)处理?/p>

  您可以用AliasMatch或RewriteRule来重写Q何请求,使它指向一个简单信息页?或脚??/p>

  Z同的端口配置"_default_"虚拟L
  与第一U一P但我们想让服务器侦听很多端口而第二个"_default_"虚拟L单独侦听80端口?/p>

  服务器配|?br />   <VirtualHost _default_:80>
  DocumentRoot /www/default80
  # ...
  </VirtualHost>

  <VirtualHost _default_:*>
  DocumentRoot /www/default
  # ...
  </VirtualHost>

  侦听80端口?_default_"虚拟L(必须出现在所有用通配W端口的虚拟L之前)会捕h有发向一个未指定的IP地址的请求。主服务器将不会用于伺服Mh?/p>

  为单独一个端口配|?_default_"虚拟L
  如果我们只想?0端口上徏立唯一的一?_default_"虚拟LQ我们应该这样配|:

  服务器配|?br />   <VirtualHost _default_:80>
  DocumentRoot /www/default
  ...
  </VirtualHost>

  发向一个未指定地址?0端口的请求将会由q个虚拟L伺服Q而发向未讑֮地址的其他端口的h则由L务器伺服?/p>

  一个基于域名的虚拟LULZ个基于IP的虚拟主?br />   如果一个具有ww.example.org域名的虚拟主?是Z域名配置CZ中的W二?得到了自qIP地址。ؓ了避免一些域名服务器或代理服务器在移植期间仍对这个域名做老的解析Q我们可以采用一U过渡方法:同时提供新旧两个IP地址的解析?/p>

  辑ֈq个目的很简单。因为我们只要简单的把新地址(172.20.30.50)加入VirtualHost指op了?/p>

  服务器配|?br />   Listen 80
  ServerName www.example.com
  DocumentRoot /www/example1

  NameVirtualHost 172.20.30.40

  <VirtualHost 172.20.30.40 172.20.30.50>
  DocumentRoot /www/example2
  ServerName www.example.org
  # ...
  </VirtualHost>

  <VirtualHost 172.20.30.40>
  DocumentRoot /www/example3
  ServerName www.example.net
  ServerAlias *.example.net
  # ...
  </VirtualHost>

  现在q个虚拟L可以用新地址(表现Z个基于IP的虚拟主?和旧地址(表现Z个基于域名的虚拟L)同时q行讉K了?/p>

  使用ServerPath指o
  如果我们在同一个服务器上运行了两个Z域名的虚拟主机。ؓ了匹配正的虚拟LQ客L必须发送正的"Host:" 头。而旧的用HTTP/1.0的客L无法发送这L_q样Apache无法L别客L惌q接哪个虚拟L(会用主虚拟主机来伺服q个h)。ؓ 了尽量提供向下兼Ҏ,我们可以提供一个主虚拟L来返回一个页面,在页面中加入指向Z域名的虚拟主机的URL前缀的链接?/p>

  服务器配|?br />   NameVirtualHost 172.20.30.40

  <VirtualHost 172.20.30.40>
  # 主虚拟主?br />   DocumentRoot /www/subdomain
  RewriteEngine On
  RewriteRule ^/.* /www/subdomain/index.html
  # ...
  </VirtualHost>

  <VirtualHost 172.20.30.40>
  DocumentRoot /www/subdomain/sub1
  ServerName www.sub1.domain.tld
  ServerPath /sub1/
  RewriteEngine On
  RewriteRule ^(/sub1/.*) /www/subdomain$1
  # ...
  </VirtualHost>

  <VirtualHost 172.20.30.40>
  DocumentRoot /www/subdomain/sub2
  ServerName www.sub2.domain.tld
  ServerPath /sub2/
  RewriteEngine On
  RewriteRule ^(/sub2/.*) /www/subdomain$1
  # ...
  </VirtualHost>

  ׃ServerPath指o的作用,发送到htp://www.sub1.domain.tld/sub1/的请求M被sub1-vhost所伺服?br />   如果客户端发送了正确?Host:"_发送到htp://www.sub1.domain.tld、的h只会被sub1-vhost所伺服。如果没有发?Host:"_客户端将会得C主虚拟主机发送的信息面?/p>

  h意,q里q有一点小问题Q如果客L没有发?Host:"_发送到http://www.sub2.domain.tld/sub1/的请求还是会被sub1-vhost所伺服?/p>

robbin163 2010-11-03 14:57 发表评论
]]>
վ֩ģ壺 ¡| | | ԭ| ɽ| Ϸ| | ߺ| »| | | ˮ| п| | | | | | ܿ| ԭ| | Ͻ| | | | | ѭ| Ž| | ȫ| | İ| ߺ| | | | | ¡| | Т| |