Posts Tagged www

”httpready” Accept Filter

在FreeBSD下使用ports安装apache22会出现类似的warming:
No such file or directory: Failed to enable the ”httpready” Accept Filter

解决方法是:
#kldload accf_http

并将/boot/defaults/loader.conf中,以便下次启动自动装载模块
accf_data_load="YES"
accf_http_load="YES"

个人觉得这好像是一个apache22的bug,不能启动FreeBSD自带的一个基于http端口过滤的模块。这个模块的作用很不错——检查HTTP请求是否完整,符合规则accpt一个Http进程,
否则就扔掉。

linux下也有一个类似的东西,工作在 accept 的 socket 上面。代码:

val = 5;      setsockopt(srv_socket->fd, SOL_TCP, TCP_DEFER_ACCEPT, &val, sizeof(val)) ;

,

No Comments

实现网页iframe透明的方法

IE5.5和NN6以上的浏览器支持Frame ,Iframe对象的allowTransparency 方法,如果某对象的背景颜色设置为Transparency的,它将继承包含它容器的特性。我们可以通过这个特性实现透明背景的开/关

代码如下:

a.html如下:

<HTML><HEAD><TITLE></TITLE>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
</HEAD>
<BODY style="BACKGROUND-COLOR: transparent">
<H1>透明文档</H1>
<P>此IFRAME无背景颜色</P>
<P>BODY:<br><BODY STYLE="background-color:transparent"></P></BODY></HTML>

b.html如下:

<HTML><HEAD><TITLE></TITLE>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
</HEAD>
<BODY style="BACKGROUND-COLOR: transparent">
<H1>透明文档</H1>
<P>此IFRAME 设为绿色。</P>
<P>BODY: <br><BODY STYLE="background-color:transparent"></P></BODY></HTML>

如果a.html透明的,它将继承IFRAME的背景颜色 如果容器IFRAME也是透明的,a.html将继承Iframe的父容器的颜色,如果一个对象不透明,它将覆盖其容器的颜色,默认是透明的。

Internet Explorer 5.5 以上版本允许你设置透明属性,通过设置是否可被透明,你可以改变背景的颜色。[在不设置透明属性的情况下,默认背景颜色为白色]

IFRAME定义如下:

<IFRAME ID="frame1" SRC="a.html" allowTransparency="true" HEIGHT=180 WIDTH=300> </IFRAME> <IFRAME ID="frame2" SRC="b.html" allowTransparency="true" STYLE="background-color:#459800" HEIGHT=180 WIDTH=300> </IFRAME>

按钮定义如下:

<INPUT TYPE="button" VALUE="不透明" onclick="turnTransparencyOff()"> <INPUT TYPE="button" VALUE="透明" onclick="turnTransparencyOn()">

<script>
//函数turnTransparencyOff():

function turnTransparencyOff()
{ document.all.frame1.allowTransparency = false; document.all.frame2.allowTransparency = false; }

//函数turnTransparencyOn():

function turnTransparencyOn()
{ document.all.frame1.allowTransparency = true; document.all.frame2.allowTransparency = true; }
</script>

No Comments

403错误列表

错误代码:403.1

403.1错误是由于"执行"访问被禁止而造成的,若试图从目录中执行 CGI、ISAPI 或其他可执行程序,但该目录不允许执行程序时便会出现此种错误。

错误代码:403.2

403.2错误是由于"读取"访问被禁止而造成的。导致此错误是由于没有可用的默认网页并且没有对目录启用目录浏览,或者要显示的 HTML 网页所驻留的目录仅标记为"可执行"或"脚本"权限。

错误代码:403.3

403.3错误是由于"写入"访问被禁止而造成的,当试图将文件上载到目录或在目录中修改文件,但该目录不允许"写"访问时就会出现此种错误。

错误代码:403.4

403.4错误是由于要求SSL而造成的,您必须在要查看的网页的地址中使用"https"。

错误代码:403.5

403.5错误是由于要求使用 128 位加密算法的 Web 浏览器而造成的,如果您的浏览器不支持128位加密算法就会出现这个错误,您可以连接微软网站进行浏览器升级。

错误代码:403.6

403.6错误是由于IP 地址被拒绝而造成的。如果服务器中有不能访问该站点的 IP 地址列表,并且您使用的 IP 地址在该列表中时您就会返回这条错误信息。

错误代码:403.7

403.7错误是因为要求客户证书,当需要访问的资源要求浏览器拥有服务器能够识别的安全套接字层 (SSL) 客户证书时会返回此种错误。

错误代码:403.8

403.8错误是由于禁止站点访问而造成的,若服务器中有不能访问该站点的 DNS 名称列表,而您使用的 DNS 名称在列表中时就会返回此种信息。请注意区别403.6与403.8错误。

错误代码:403.9

403.9错误是由于连接的用户过多而造成的,由于Web 服务器很忙,因通讯量过多而无法处理请求时便会返回这条错误。

错误代码:403.10

403.10错误是由于无效配置而导致的错误,当您试图从目录中执行 CGI、ISAPI 或其他可执行程序,但该目录不允许执行程序时便会返回这条错误。

错误代码:403.11

403.11错误是由于密码更改而导致无权查看页面。

错误代码:403.12

403.12错误是由于映射器拒绝访问而造成的。若要查看的网页要求使用有效的客户证书,而您的客户证书映射没有权限访问该 Web 站点时就会返回映射器拒绝访问的错误。

错误代码:403.13

403.13错误是由于需要查看的网页要求使用有效的客户证书而使用的客户证书已经被吊销,或者无法确定证书是否已吊销造成的。

错误代码:403.15

403.15错误是由于客户访问许可过多而造成的,当服务器超出其客户访问许可限制时会返回此条错误。

错误代码:403.16

403.16错误是由于客户证书不可信或者无效而造成的。

错误代码:403.17

403.17错误是由于客户证书已经到期或者尚未生效而造成的

No Comments

apache+mod ssl 如何申请正式SSL证书

第一步:生成CSR文件和密钥

CSR包含公司的信息,包括域名,公司名,联系方式等,还有密钥对中的公钥,私钥应该保存在本地,注意,必须保存好本地的私钥,如果遗失或者泄漏,这个证书就没有用了。

“OpenSSL”工具被用来生成CSR和密钥,它来自于OpenSSL包,一般被安装在/usr/local/ssl/bin目录下,如果您安装在其他目录下,请做相应调整:

1. 切换目录到SSL KEY,输入

cd /usr/local/ssl/private

2. 输入下列命令生成密钥对:

openssl genrsa -des3 1024 > /ssl.key

3. 切换目录到SSL Certificate:

cd /usr/local/ssl/crt

4. 使用下列命令生成CSR文件:

openssl req -new -key /ssl.key > ssl.csr

第二步:提交CA,签名

一般有:

1.verisign 的 Secure Site,一年报价 RMB 6000 www.itrus.com.cn

2. thawte 的 SSL123,一年报价 129$ http://www.thawte.com

3. geotrust 的 RapidSSL,一年报价 RMB 488 www.myssl.cn

这里主要是对网站做认证,然后对CSR提交签名,(你可以在网站上,对CSR做检查,如果CSR有问题,不要急着付钱,有些地方先让你付钱,然后说你的CSR或者,提交的资料有问题,骗钱,这个大家当心)签名好以后,发把证书发回来,记得用文本方式保存下来。

第三步:装回证书

1.将证书内容存成一个文件

您会收到一封来自迅通诚信的邮件,证书内容附在服务器中。如果证书是以附件的形式(Cert.cer)夹带在邮件中,您就可以直接应用它。如果您的 证书中以文本的方式存在邮件中,您就需要将邮件中的证书部分的内容用Vi或Notepad存成一个纯文本文件。不要将其存成Microsoft Word 或其它字处理软件格式,并确定证书内容中不含有空行和空格。如下所示:

将证书文件存到某个目录下,比如: /etc/ssl/crt/。公钥文件和私钥文件都钥存到这个目录下。私钥可以标记成private.key,公钥标记成public.crt。

我们建议您将存私钥的目录改为只读属性。

2.下载中间级证书

如果您申请的是级联式服务器证书,您需要安装中间级证书,以构成一个证书链,使浏览器信任您的证书;否则无须安装,可直接进入下一步。 将中间级证书存成一个文本文件,命名为"intermediate.crt",将它存到第一步中的相同目录下:/etc/ssl/crt/ 。

配置httpd.conf文件

要将证书应用到您的服务器中,必须配置httpd.conf文件,您需要加入下列SSL 目录信息:

SSLCertificateFile /etc/ssl/crt/public.crt //本地证书文件
SSLCertificateKeyFile /etc/ssl/crt/private.key //私钥文件
SSLCertificateChainFile /etc/ssl/crt/intermediate.crt //中间级证书文件,应用于全球服务器证书

您需要根据具体情况修改SSL 目录信息

将httpd.conf文件存盘并重新启动Apache,您可以用以下命令启动Apache:

apachectl stop
apachectl&nbs p;startssl

您现在已经将服务器证书应用到您的Apache服务器了。

,

No Comments

基于虚拟主机的PHP配置

有个朋友想在我的主机上安置一个站点,PHP的。安置了以后才发现,他的系统默认是session.auto_start的。正好与我这个站点的设置有冲突,使用统一个PHP设置不太可能了。查看了官方的手册,找到了解决方案:

我用PHP5配置为:

打开服务器的AllowOverride 权限
AllowOverride All

<IfModule mod_php5.c>  php_value include_path ".:/usr/local/lib/php"   php_admin_flag safe_mode on</IfModule>

PHP4的:

<IfModule mod_php4.c>  php_value include_path ".:/usr/local/lib/php"  php_admin_flag safe_mode on</IfModule>

文物级的PHP3:<IfModule mod_php3.c>  php3_include_path ".:/usr/local/lib/php"  php3_safe_mode on</IfModule>

找到PHP.ini中的配置选项后替换掉上面例子中的配置就可以了。其中,php_admin_flag使用与“是非型”、“整数型”以及“浮点数型”的php配置;而php_value则对应了“字符型”。放置在<VirtualHost >之间就可以实现为每个虚拟主机设置不同的配置了。

最后还是提醒PHP的广大开发者:尽量使用PHP的默认配置作为基础环境,如果必须修改相关的设置参数,可以使用php的ini_set()函数来实现。

, ,

No Comments

设置Apache支持cache

默认情况下,apache安装完以后,是不允许被cache的。如果外接了cache或squid服务器要求进行web加速的话,就需要在htttpd.conf里进行设置,当然前提是在安装apache的时候要激活mod_cache的模块。
以下简单介绍一下安装与配置的步骤:
1.        apache版本:httpd-2.0.49.tar.gz
2.        安装httpd-2.0.49.tar.gz:
# tar –zxvf httpd-2.0.49.tar.gz
# cd httpd-2.0.49
#./configure –enable-cache –enable-disk-cache –enable-mem-cache
#mke
#make install

3.        检验是否安装了cache模块
/usr/local/apache2/bin/apachectl –l
如果有mod_cache.c
  mod_disk_cache.c
  mod_mem_cache.c
这3个模块,说明该apache可以支持cache了
4.更改httpd.conf的设置
vi /usr/local/apache2/conf/httpd.conf
在末尾添加上:
<IfModule mod_cache.c>

CacheForceCompletion 100
  CacheDefaultExpire 3600
  CacheMaxExpire 86400
  CacheLastModifiedFactor 0.1
</IfModule>

5.设置虚拟目录
然后保存退出。启动apache

6.参数的解释:
mod_cache:
CacheEnable: 启动 mod_cache,其后接两个参数。第一个参数指定快取的种类,应设为 mem (记忆体快取) 或 disk (磁碟快取) 之其一;第二个参数指定使用快取的 URI 路径,如果对整个网站 (或虚拟主机) 进行快取,简单指定为根目录(/) 即可。
CacheForceCompletion: 这个值指定当 HTTP request 被取消时,内容的产生动作要完成的百分比;预设是 60(%)。
CacheDefaultExpire: 指定快取的预设过期秒数;预设值是一小时 (3600)。
CacheMaxExpire: 指定快取最大的过期秒数;预设值是一天 (86400)。
CacheLastModifiedFactor: 用来从回应里 Last Modified 资讯算出 expire date。
计算方式是:
expire period (过期时距) = 最后更新后至今的时间间距 * CacheLastModifiedFactor

expire date = 目前时间 + expire period
不过无论如何,过期时间不能超过 CacheMaxExpire 的设定值。

现在。如果用squid对该服务器进行反向代理的话,就可以通过cache 实现web的加速了。

1 Comment

给IIS Web服务器装上一把锁

为了为了提高IIS的安全性,微软提供了两 个工具:IIS Lockdown和URLScan,其中IIS Lockdown 2.1包含了URLScan。IIS Lockdown 2.1具有如下功能:

⑴ 禁用或者删除不必要的IIS服务和组件。

⑵ 修改默认配置,提高系统文件和Web内容目录 的安 全性。

⑶ 用URLScan来过滤HTTP请求。

本文介绍如何运用IIS Lockdown 2.1的前两项功能。注 意本文的说明针对 IIS Lockdown 2.1版本,以前版本的用法大 不相同。

一、注意事项

IIS Lockdown会改变IIS的运行方式,因此很可能与依 赖IIS某些功能的应用冲突。特别地,如果要在一个运行 Microsoft Exchange 2000 Server、Exchange Server 5.5或Microsoft SharePoint Portal Server的服务器上安装IIS Lockdown和URLScan,应当加倍小心。

微软的两篇文章解释了可能遇到的困难和解决办法:《 XADM:在Exchange 2000环境中使用IIS Lockdown向导的已知问题和调整策略》(http://support.microsoft.com/default.aspx? scid=kb;en-us;q309677),以及《SPS:IIS Lockdown工具影响SharePoint Portal Server》(http://support.microsoft.com/default.aspx? scid=kb;en-us;q309675)。

另外,在正式应用IIS Lockdown或URLScan之前,务必搜索微软的知识库,收集可能出 现问题的最新资料。掌握这些资料并了解其建议之后,再在测 试服务器上安装IIS Lockdown,全面测试Web应用需要的IIS功能是否受到影响。最 后,做一次全面的系统备份,以便在系统功能受到严重影响时 迅速恢复。

二、安装

IIS Lockdown 2.1可以从http://www.microsoft.com/downloads/rel ease.asp?releaseid=33961下 载。下载之后得到一个 iislockd.exe,双击运行,把它解压缩到一个临时目录并启动 IIS Lockdown向导。但是,如果要用IIS Lockdown来保护多个服务 器,最好按照下文的说明把它解压缩到一个专用目录,这样就 不必每次运行IIS Lockdown都要重新解压缩了。

必须注意的是,下载得到的是一个自解压缩的执行文件 ,这个执行文件与压缩包里面的应用执行文件同名。因此,如 果把iislockd.exe解压缩到它本身所在的目录,就会引起文件 名称冲突。请按照下面的安装步骤执行,以避免可能出现的问 题: 
㈠ 将iislockd.exe下载到一个临 时目录。
㈡ 打开控制台窗口,进入临时目录,执行命令“iislockd.exe /q /c /t:c:IISLockdown”解开压缩,/q要求以“安静”模式操作, /c要求IIS Lockdown只执行提取文件的操作,和-t选项一起使用,-t选项 指定了要把文件解压缩到哪一个目录(例如在本例中,要求把 文件解压缩到c:IISLockdown目录)。表一列出了 iislockd.exe解压缩得到的主要文件,注意iislockd.exe包含 了URLScan的文件,但本文不准备详细探讨URLScan。

表一:IIS Lockdown 2.1主要文件
IIS Lockdown文件 说明
iislockd.exe IIS Lockdown主执行文件。
iislockd.ini 配置和选项文件。
iislockd.chm 联机帮助。
runlockdunattended.doc 有关“无人值守”运行方式的文 档。
404.dll “文件没有找到”应答文件。
URLScan文件 说明
urlscan.exe URLScan安装程序包 。

No Comments

关于无法访问网站的解决方法

最近不知出于何种原因一度各大开源网站不能访问,先是sourceforge.net, 接着是FreeBSD.org,现在sf.net可以访问了,php.net又不行了,估计这是跟互联网入口的管理有关。

上有政策下有对策,我将自己域名的freebsd.litrin.net指向了Freebsd.org,解决了问题,除此之外,可以使用https://www.daveproxy.co.uk/ 作代理访问。

No Comments

用LDAP实现Apache验证

在使用APACHE的时候有时会接触到验证的问题,而APACHE本身自带的验证已经是非常全的了,习惯上直接利用apache的mysql验证模块实现,但这里我们用APACHE与LDAP整合来说明一下APACHE的验证.

1.安装openldap

openldap-stable-20040329.tgz http://www.openldap.org
db-4.1.25.NC.tar.gz http://www.sleepycat.com

gunzip < db-4.1.25.NC.tar.gz |tar xvf -
cd db-4.1.25.nc
./configure
make
make install

gunzip < openldap-stable-20040329.tgz |tar xvf -
cd openldap-2.1.29
CPPFLAGS="-I/usr/local/BerkeleyDB.4.1/include" LDFLAGS="-L/usr/local/BerkeleyDB.4.1/lib" ./configure –prefix=/usr/local/openldap –enable-ldbm
make depend
make
make test
make install

PATH=$PATH:/usr/local/openldap/bin
export PATH

修改/usr/local/openldap/etc/openldap/slapd.conf

include         /usr/local/openldap/etc/openldap/schema/core.schema
include         /usr/local/openldap/etc/openldap/schema/corba.schema
include         /usr/local/openldap/etc/openldap/schema/cosine.schema
include         /usr/local/openldap/etc/openldap/schema/inetorgperson.schema
include         /usr/local/openldap/etc/openldap/schema/java.schema
include         /usr/local/openldap/etc/openldap/schema/misc.schema
include         /usr/local/openldap/etc/openldap/schema/nis.schema
include         /usr/local/openldap/etc/openldap/schema/openldap.schema

database        bdb
suffix          "dc=ldaptest,dc=com"
rootdn          "cn=root,dc=ldaptest,dc=com"
# Cleartext passwords, especially for the rootdn, should
# be avoid.  See slappasswd( and slapd.conf(5) for details.
# Use of strong authentication encouraged.
rootpw          123456

建立basedn.ldif文件
dn: dc=ldaptest,dc=com
dc: ldaptest
objectClass: domain

建立userdn.ldif
dn:cn=user1,dc=ldaptest,dc=com
cn: user1
sn: USER1
uid: user1
userPassword: user1
objectClass: inetOrgPerson

dn:cn=user2,dc=ldaptest,dc=com
cn: user2
sn: USER2
uid: user2
userPassword: user2
objectClass: inetOrgPerson

dn:cn=user3,dc=ldaptest,dc=com
cn: user3
sn: USER3
uid: user3
userPassword: user3
objectClass: inetOrgPerson

dn:cn=user4,dc=ldaptest,dc=com
cn: user4
sn: USER4
uid: user4
userPassword: user4
objectClass: inetOrgPerson

启动LDAP服务器
/usr/local/openldap/libexec/slapd

添加记录:
ldapadd -D "cn=root,dc=ldaptest,dc=com" -w 123456 -f /basedn.ldif
ldapadd -D "cn=root,dc=ldaptest,dc=com" -w 123456 -f /userdn.ldif

2.安装apr-1.2.2

./configure
make
make install

3.安装apr-util-1.2.2               

./configure –prefix=/usr/local/apr-util –with-apr=/usr/local/apr –with-ldap –with-ldap-include=/usr/local/openldap/include

–with-ldap-lib=/usr/local/openldap/lib
make
make install

4.安装openssl

./configure
make
make install

5.安装apache-2.2.0(安装再根下的apache2的目录下)

./configure –prefix=/apache2 –enable-so –enable-authnz-ldap –enable-ldap
make
make install

6.配置httpd.conf

将ServerNmae 修改为自己本机的域名或者IP
在最后一行加入 include conf/app_auth.conf

7.配置/apache2/conf/app_auth.conf

<Location />
AuthType basic
AuthName "private area"
AuthBasicProvider ldap
AuthzLDAPAuthoritative off
AuthLDAPURL ldap://localhost:389/dc=ldaptest,dc=com?uid?sub?(objectClass=*)
require ldap-user "user1"
#require ldap-user "user3"
#require ldap-user "user4"
#require ldap-user "user2"
require valid-user
</Location>

8.当配置完所有的软件以后,就可以启动APACHE了
/apache2/bin/apachectl start

这时候配置的是默认情况,也就是对整个服务器各目录都进行验证,如果需要对单独的地方进行验证,可以查阅Location的用法

No Comments

何谓Ajax

Ajax并不是一种新技术。它实际上是几种已经在各自领域大行其道技术的强强结合。Ajax混合了:

  • 基于XHTML/CSS等现有的web页面技术
  • 由DOM实现动态显示与交互
  • 通过XML等形式进行数据交换及处理
  • 使用javascript整合上述技术

总的来说:Ajax能 够实现不刷新浏览器窗口而满足用户的操作,简单的说其实就是动态生成Javascript代码以及所需的数据文件(XML)。现在一些看上去很Cool的网站,很多是用这项技术实现的,其中包括: orkut、Gmail、Google Group、Google Suggest、Google Maps、Flickr、A9.com等。2SIMPLE的Co-mment系统虽然没有用到XMLHttpRequest,其理念已经暗合容Ajax,实现了不刷新网页提供动态内给用户。

但Ajax也并非没有缺点,最大的就是浏览器去相关性——Gmail的Ajax就不支持opare访问,但这缺点完全是由于各个浏览之间对于HTML DOM以及Javascript解释的不一致造成的。

No Comments