Browsed by
Tag: apache

Chrome为什么会快些?

Chrome为什么会快些?

常见的理由是有一个强大的V8 javascript引擎。而最近在研究Ajax时,无意发现Chrome和IE在处理HTTP基础协议时,实际上也存在很大的差异,这些差异可以导致即使处理HTML/JS文件时,两者的处理速度也会很不一样。

测试时采用Apache 2.2.20(Ubuntu)作HTTP服务器。

在Apache中设置Cache-Control,指定no-cache,我们来看看Chrome和IE会怎么处理。

Chrome发送GET请求,包含If-None-Match以及If-Modified-Since等重要参数。Apache比较对应的ETag以及Last-Modified,发现文件没有改变,因此仅返回”304 Not Modified”。可见,Chrome直接使用了自己Cache的内容,并没有理会no-cache指示。

而IE呢?IE理会了no-cache指示,因此在GET请求中,老老实实地抹掉了If-None-Match以及If-Modified-Since参数,Apache返回200OK并重新携带请求的内容,IE重新处理返回的内容。

从对no-cache参数的字面理解看,IE的处理是正确的,而Chrome显得比较奸诈。

对于某些情况,我们确实需要强制浏览器端重新获取内容(尤其是对javascript文件),此时在Apache中不仅要设置no-cache,还必须设置no-store。

同时设置no-cache和no-store后,IE/Chrome都会向Apache重新请求内容,并刷新本地内容。

Apache report error: [error] (13)Permission denied: exec of ‘/cgi-bin/signup.php’ failed

Apache report error: [error] (13)Permission denied: exec of ‘/cgi-bin/signup.php’ failed

在桌面版本Ubuntu上,通过Apache2测试PHP程序时,会遇到几个问题:

(1)Apache2把PHP文件当成普通文档,没有执行php文件,反而提示文件下载并询问存放路径。

(2)Apache2提示无权读取cgi-bin目录的文件。

问题(1)是由于没有安装Apache2的php模块导致的,而问题(2)是由于Apache2没有足够的权限操作cgi-bin目录中的php文件。安装以下模块可以解决:

sudo apt-get install libapache2-mod-php5

sudo apt-get install libapache2-mod-suphp

在Ubuntu中搭建Apache2+Subversion环境

在Ubuntu中搭建Apache2+Subversion环境

以下各项操作基于Ubuntu10.10 desktop版本,其他版本估计也是类似,差别不大。

1、安装软件
安装apache2: sudo apt-get install apache2
(Ubuntu安装完上述软件后,会自动启动web服务,我们可以通过浏览器访问http://localhost。如果一切正常的话,应该能看到一个非常简陋的html页面)
安装subversion: sudo apt-get install subversion
安装apache的svn模块: sudo apt-get install libapache2-svn

2、创建subversion库

创建目录 sudo mkdir -p /var/local/svn/repos

创建subversion库 sudo svnadmin create /var/local/svn/repos

将所有权授予Apache(www-data) sudo chown -R www-data:www-data /var/local/svn/repos

3、配置Apache2(使用基本的用户名和密码验证方式)

修改/etc/apache2/mods-available/dav_svn.conf,完成后的文件如下:

<Location /mss_svn>

DAV svn

SVNPath /var/local/svn/repos

AuthType Basic

AuthName “Subversion Repository”

AuthUserFile /etc/subversion/passwd

Require valid-user

</Location>

创建用户及密码: sudo htpasswd -c /etc/subversion/passwd yxh

此时系统会提示输入用户yxh的密码。用户名和密码保存在上述passwd文件中。

4、启动Apache2,使上述配置生效

sudo service apache2 stop

sudo service apache2 start

5、打开浏览器访问:http://localhost/mss_svn,输入用户名和密码就可以浏览svn库了。

平时使用TortoiseSVN时,也是使用http://localhost/mss_svn就可以对库进行操作了,当然,也需要输入用户名和密码。

(上述localhost也可以换成ip地址或者其他能访问的域名)