Apache核心(Core)指令和区别

<Directory>和<Location>指令都是Apache配置文件httpd.conf中的常见指令,它们都能对其指定的作用域进行访问控制,区别在于<Directory>针对的是文件系统,而<Location>针对的是网络空间。

 

文件系统是指服务器所在机器上的所能看见的磁盘系统中的目录,比如Linux下的/usr/local/apache,或Windows系统中的C:/Program Files/Apache。<Directory>指令可以对真实存在于文件系统中的目录及其子目录进行访问控制,具体能进行怎样粒度的访控可以参考Apache手册的<Directory>使用说明。比如apache的DocumentRoot配置成/usr/local/www,该目录中有一个网页文件index.htm,那么以下配置代码就能阻止任何人访问www目录。
<Directory /user/local/www>
Order allow,deny
Deny from all
</Directory>
此时,如果用http://yourdomain.com/index.htm来请求index.htm文件时,Apache就会根据以上配置信息拒绝所有外来请求。这里仅仅举个例子,在实际应用中,以上配置可能没什么意义。

 

网络空间是指网站被服务器发送或者呈现在浏览器中的视图,例如有一个网页地址http://yourdomain.com/test1/index.htm,通过映射的方法,它的实际存储位置可以在服务器的/usr/local/www/test2/目录中,这个时候,想要对/test1这个网络路径进行访问控制,那么就可以配置<Location>属性。还有一种应用情况,现在很多网页是通过数据库信息动态生成的,或者用velocity这类模板引擎渲染而来,这样生成的看似静态的网页实际上并没有真实存在于服务器的文件系统中,因此对这类地址如果用<Directory>指令就无法达到期望的访问控制效果,就是说配<Directory>是不起作用的,而用<Location>指令就能达到目的。例如:
<Location /test1>
Order allow,deny
Deny from all
</Location>

以上配置能将所有发向http://yourdomain.com/test1/*的请求都拒绝。同<Directory>一样,具体能在<Location>指令中做怎样粒度的权限控制可以参考Apache手册的<Location>使用说明。

 

除此之外,Apache对于httpd.conf文件中<Directory>和<Location>(以及<Files>、<VirtualHost>)和它们各自的正则表达式版本(<DirectoryMatch>、<FilesMatch>、<LocationMatch>等)有指定的合并顺序,因此一个配置段的指令可能会被后边的配置段指令比如覆盖。这里有几个例子可以很好的说明这个情况,例如:
<Location />
Order deny,allow
Allow from all
</Location>

# 这个<Directory>段将不会实际生效
<Directory />
Order allow,deny
Allow from all
Deny from badguy.example.com
</Directory>
由于合并时处理<Directory>在先,处理<Location>在后,因此上面<Directory>配置里的Deny from badguy.example.com会被<Location>覆盖掉,这是配置httpd.conf时要注意的地方。

 

还有一点,改过Apache的httpd.conf配置文件后,必须重启Apache服务。

Eclipse中的红叉

Eclipse中的红叉
项目出现红叉但Java类没有错误(或从外部导入了几个jar包发现工程上出现红叉,但展开又没有详细的指明任何错误.)
解决方法:
1.检查Build Path中的各个依赖jar及library是否有warning的标志,若有,处理之;
2.clean 工程;
3.右键找到pde tools下的update classpath;
4.一般有什么问题都会在视图Problems中显示,所以可以在其中查找问题,按问题说明做相应处理即可。
(今天我遇到的就是A cycle was detected in the build path of project ,这样我们可以如下window->preference->java->complier->building->build path problems->cirluar dependency 设置为warning就可以了)
5.Java Compiler 版本的问题

evasi0n完美越狱iOS6.1.2

越狱教程:

第一步:通过 iOS 6.1.2 将iPhone 4S 系统更新到iOS 6.1.2,避免使用OTA更新。下载evasi0n 1.5.3 for Windows ,目前版本:1.5.3,并且是中文界面,并启动该应用。连接iPhone 4S到电脑上,等待evasi0n 检测到你的设备,之后点击越狱。

第二步:你会看到 evasi0n 问你是否需要解锁,点击主屏上的越狱图标。该图标会在主屏第二页出现,如果你有太多的应用,它将出现在靠后的位置。点击越狱图标(只点击一次),你会看到设备黑屏一下。这非常正常,只需要耐心等待便可。

第三步:Evasi0n 最后会报告越狱进程完成。这时,你需要做的就是点击退出关掉该应用,剩余的只要在你的手机上操作便可。接下来你的iPhone会重启多次,你会看到evasi0n标志(白色背景)。那心等待,越狱过程就要结束了。

第四步:一旦越狱结束,就会出现白色背景的evasi0n图标后不久,你可以打开设备。你会看到手机屏幕第二页上有Cydia的图标。首次加载Cydia需要初始化。之后,之后你会回到主屏,打开设备,再次启东Cydia,就可以下载诸多越狱插件和应用了。

备注:该教程只适用于iPhone 4S,因为到目前为止,只有iPhone 4S可以更新到iOS 6.1.2.据说本次更新修复了3G相关问题,该问题还导致了电池寿命等问题。如果你遇到了这些问题,可以更新试试。如果没有,最好就不要更新了,iOS 6.1.2没有任何新功能。