Linux下的Apache缓存系统
作者: claymore 发表于: 2009-09-26 04:25:49
Apache 从2.0开始就已经可以使用缓存模块了,不过在2.0的时候还是实验性的,到了2.2已经完全可以放心的使用。Apache 的缓存实现主要依靠 mod_cache、mod_disk_cache、mod_file_cache 及 mod_mem_cache。只需在配置编译的时候加上参数:–enable-cache、 –enable-disk-cache、–enable-file-cache、 –enable-mem-cache 即可。
关于 Apache 的编译安装本文就不再说了,可以参考以前的文章。这里主要介绍一下如何配置使用 Apache 的缓存功能。
具体来说,Apache 的缓存方式有两种,一种是基于硬盘文件的缓存,由 mod_disk_cache 实现,另一种是使用内存缓存,由 mod_mem_cache 实现,不过它们都是依赖 mod_cache 模块的,mod_cache 模块提供了一些缓存配置的指令供它们使用,而 mod_file_cache 模块是搭配 mod_mem_cache 模块使用的,下面分别进行介绍。
1、基于硬盘文件的缓存
基于硬盘文件存储的缓存由 mod_disk_cache 模块实现,先看个简单的配置例子:
CacheDefaultExpire 86400
CacheEnable disk /
CacheRoot /tmp/apacheCache
CacheDirLevels 5
CacheDirLength 5
CacheMaxFileSize 1048576
CacheMinFileSize 10
把上面的配置加到 Apache 的 httpd.conf 文件中,如果缓存相关的模块都已经编译进了 Apache 的核心,则无需加载模块,直接就能使用上面的指令。指令的详细说明如下:
关于 Apache 的编译安装本文就不再说了,可以参考以前的文章。这里主要介绍一下如何配置使用 Apache 的缓存功能。
具体来说,Apache 的缓存方式有两种,一种是基于硬盘文件的缓存,由 mod_disk_cache 实现,另一种是使用内存缓存,由 mod_mem_cache 实现,不过它们都是依赖 mod_cache 模块的,mod_cache 模块提供了一些缓存配置的指令供它们使用,而 mod_file_cache 模块是搭配 mod_mem_cache 模块使用的,下面分别进行介绍。
1、基于硬盘文件的缓存
基于硬盘文件存储的缓存由 mod_disk_cache 模块实现,先看个简单的配置例子:
CacheDefaultExpire 86400
CacheEnable disk /
CacheRoot /tmp/apacheCache
CacheDirLevels 5
CacheDirLength 5
CacheMaxFileSize 1048576
CacheMinFileSize 10
把上面的配置加到 Apache 的 httpd.conf 文件中,如果缓存相关的模块都已经编译进了 Apache 的核心,则无需加载模块,直接就能使用上面的指令。指令的详细说明如下:
阅读全文...
Cannot initialize zend_mm storage [win32]
作者: claymore 发表于: 2009-09-25 21:15:54
Basically it means that you have exhausted every available thread and PHP can not start a new one. I recommend running PHP as CGI, application/x-httpd-php “/php/php.exe”, instead of using php5_module “/php/sapi/php5apache2.dll” to solve that problem. As a side note the win32 version of Apache can only handle a maximum pool of 600 threads, anything over that the threads get held in a wait proccess, no matter what ThreadLimit or Threadsperchild is set to. Yes the thread get assigned, but it not executed until the current working thread limit falls back below 600! Apache running under Win(64) or running under any version of Linux does not have those limitations.
阅读全文...
Windows NT系统下的Apache性能优化
作者: claymore 发表于: 2009-09-13 00:09:51
一般来说,WinNT系统下使用IIS,而Apache在Linux下应用的比较多,但是依然有很多人在WinNT系统下使用Apache而非IIS,可能是基于对Windows系统的熟悉吧。今天就来说一下在Windows系统下如果优化Apache的性能。
mpm_winnt.c是专门针对Windows NT优化的MPM(多路处理模块),它使用一个单独的父进程产生一个单独的子进程,在这个子进程中轮流产生多个线程来处理请求。也就是说 mpm_winnt只能启动父子两个进程, 不能像Linux下那样同时启动多个进程。
mpm_winnt主要通过ThreadsPerChild和MaxRequestsPerChild两个参数来优化Apache,下面详细来说明一下。
ThreadsPerChild
这个参数用于设置每个进程的线程数, 子进程在启动时建立这些线程后就不再建立新的线程了. 一方面因为mpm_winnt不能启动多个进程, 所以这个数值要足够大,以便可以处理可能的请求高峰; 另一方面该参数以服务器的响应速度为准的, 数目太大的反而会变慢。因此需要综合均衡一个合理的数值。
mpm_winnt上的默认值是64, 最大值是1920. 这里建议设置为100-500之间,服务器性能高的话值大一些,反之值小一些。
MaxRequestsPerChild
该参数表示每个子进程能够处理的最大请求数, 即同时间内子进程数目.设置为零表示不限制, mpm_winnt上的默认值就是0.
mpm_winnt.c是专门针对Windows NT优化的MPM(多路处理模块),它使用一个单独的父进程产生一个单独的子进程,在这个子进程中轮流产生多个线程来处理请求。也就是说 mpm_winnt只能启动父子两个进程, 不能像Linux下那样同时启动多个进程。
mpm_winnt主要通过ThreadsPerChild和MaxRequestsPerChild两个参数来优化Apache,下面详细来说明一下。
ThreadsPerChild
这个参数用于设置每个进程的线程数, 子进程在启动时建立这些线程后就不再建立新的线程了. 一方面因为mpm_winnt不能启动多个进程, 所以这个数值要足够大,以便可以处理可能的请求高峰; 另一方面该参数以服务器的响应速度为准的, 数目太大的反而会变慢。因此需要综合均衡一个合理的数值。
mpm_winnt上的默认值是64, 最大值是1920. 这里建议设置为100-500之间,服务器性能高的话值大一些,反之值小一些。
MaxRequestsPerChild
该参数表示每个子进程能够处理的最大请求数, 即同时间内子进程数目.设置为零表示不限制, mpm_winnt上的默认值就是0.
阅读全文...
Apache配置文件httpd.conf
作者: claymore 发表于: 2009-09-09 13:38:24
原文说明
- 引自www.linuxsir.org
- 原文地址:http://www.7880.com/Info/Article-3df0ef00.html
文件全局说明
基于 NCSA 服务的配置文件。这是Apache服务器主要配置文件。它包含服务器的影响服务器运行的配置指令。参见<URL:http://httpd.ache.org/doc-2.0/>以取得关于这些指令的详细信息
不要只是简单的阅读这些指令信息而不去理解它。这里只是做了简单的说明,如果你没有参考在线文件,你就会被警告。
这些配置指令被分为下面三个部分: 1. 控制整个Apache服务器行为的部分(即全局环境变量) 2. 定义主要或者默认服务参数的指令,也为所有虚拟主机提供默认的设置参数 3. 虚拟主机的设置参数
配置和日志文件名:如果你指定的文件名以“/”开始(win32下以“dirver:/”),服务器将使用绝对路径,如果文件名不是以“/”开始的,那么它将把ServerRoot 的值附加在文件名的前面,例如,对“logs/foo.log",如果ServerRoot的值为“/usr/local/apache2”,则该文件应为“/usr/local/apache2/logs/foo.log”
阅读全文...
2003应用程序错误事件487、3299
作者: claymore 发表于: 2009-09-08 11:02:45
最近学校的BBS每两天当一次,刚开始没注意,最近频繁了,仔细查看了下日志,今天早上出现了两个错误,一个是Zend Optimizer的487错误,一个是Apache的3299错误。
事件 ID ( 487 )的描述(在资源( Zend Optimizer )中)无法找到。本地计算机可能没有必要的注册信息或消息 DLL 文件来从远程计算机显示消息。您可能可以使用 /AUXSOURCE= 标识来检索词描述;查看帮助和支持以了解详细信息。下列信息是事件的一部分: Unable to view file mapping, 试图访问无效的地址。
在网上搜了搜,估计是目录的权限问题,于是做了以下操作,修改了C:\Windows\Temp的权限,允许Network Service进行读取和运行的权限;另外修改了php.ini,php.ini文件中设置upload_tmp_dir = "C:\Windows\Temp\",原来这个upload_tmp_dir 是没有设置的,查看了一下php.ini,居然很多东西没有配置,估计是前任的师兄用的是phpStudy配套PHP配置环境,所以安装后都没进行什么配置,出问题也是难怪的。
The Apache service named reported the following error:
>>> httpd.exe: Could not reliably determine the server's fully qualified domain name, using 202.115.144.85 for ServerName .
有关更多信息,请参阅在 http://go.microsoft.com/fwlink/events.asp 的帮助和支持中心。
这个是Apache错误3299的错误提示,这个错误在昨天给LINUX远程安装Apache的时候也遇到过,就是server name没有设置。于是打开httpd.conf设置 ServerName 202.115.144.81:80,这下问题应该解决了。另外查看了一下这个配置文件,发现还是一些地方没设置好,修改了监听端口为
事件 ID ( 487 )的描述(在资源( Zend Optimizer )中)无法找到。本地计算机可能没有必要的注册信息或消息 DLL 文件来从远程计算机显示消息。您可能可以使用 /AUXSOURCE= 标识来检索词描述;查看帮助和支持以了解详细信息。下列信息是事件的一部分: Unable to view file mapping, 试图访问无效的地址。
在网上搜了搜,估计是目录的权限问题,于是做了以下操作,修改了C:\Windows\Temp的权限,允许Network Service进行读取和运行的权限;另外修改了php.ini,php.ini文件中设置upload_tmp_dir = "C:\Windows\Temp\",原来这个upload_tmp_dir 是没有设置的,查看了一下php.ini,居然很多东西没有配置,估计是前任的师兄用的是phpStudy配套PHP配置环境,所以安装后都没进行什么配置,出问题也是难怪的。
The Apache service named reported the following error:
>>> httpd.exe: Could not reliably determine the server's fully qualified domain name, using 202.115.144.85 for ServerName .
有关更多信息,请参阅在 http://go.microsoft.com/fwlink/events.asp 的帮助和支持中心。
这个是Apache错误3299的错误提示,这个错误在昨天给LINUX远程安装Apache的时候也遇到过,就是server name没有设置。于是打开httpd.conf设置 ServerName 202.115.144.81:80,这下问题应该解决了。另外查看了一下这个配置文件,发现还是一些地方没设置好,修改了监听端口为
阅读全文...
分类: Diaries | Feeling Of Life
引用: 0
评论: 0
点击: 150
RedHat5下Apache+MySQL+PHP的安装
作者: claymore 发表于: 2009-09-07 17:40:11
1.Apache的安装
今天帮点击音乐网写完了在LINUX下的资源采集,顺便安装了HTTP服务器,使用的是APACHE,不过安装过程还是挺郁闷的(通过winscp远程连接LINUX在终端下安装)。
首先下载了一个*.tar.gz包,
# tar -zxvf httpd-2.2.6.tar.gz
# cd httpd-2.2.6/
# ./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd --enable-so
//这里的—prefix指定apache的安装将安装到:/usr/local/apache目录下,--sysconfdir指定apache配置文件httpd.conf安装到:/etc/httpd目录下。(这两个路径可以自己任意指定指定,但是自己一定要在安装时记清楚,因为这个路径后面还要用到)
另外一些模块的启用也应该在这里configure的时候指定,比如说
--enable-cache --enable-disk-cache --enable-file-cache --enable-mem-cache
# make
# make install
如果不出意外的话,successful!
启动运行apache:
# /usr/local/apache/bin/apachectl start
然后在本机浏览器里面输入:http://127.0.0.1,回车,默认会显示:it works字样,证明apache已经在工作状态中了。
一般安装就上面的过程,不过在START的时候出现了个错误 Could not reliably determine the server's fully qualified domain name ,解决方法是只要把/conf/httpd.conf文件的#ServerName 前的#去掉就好了。
最后在start,没有问题,但是客户端还是无法访问,我想不是配置问题就是防火墙问题,首先检查是否是防火墙问题,的确是。
/root$ ps
PID TTY TIME CMD
1 ? 00:00:00 init
2 ? 00:00:00 migration/0
3 ? 00:00:00 ksoftirqd/0
4 ? 00:00:00 migration/1
5 ? 00:00:00 ksoftirqd/1
6 ? 00:00:00 migration/2
7 ? 00:00:00 ksoftirqd/2
8 ? 00:00:00 migration/3
9 ? 00:00:00 ksoftirqd/3
10 ? 00:00:00 events/0
11 ? 00:00:00 events/1
12 ? 00:00:00 events/2
13 ? 00:00:00 events/3
14 ? 00:00:00 khelper
15 ? 00:00:00 kacpid
50 ? 00:00:00 kblockd/0
51 ? 00:00:00 kblockd/1
52 ? 00:00:00 kblockd/2
53 ? 00:00:00 kblockd/3
63 ? 00:00:00 pdflush
64 ? 00:00:00 pdflush
66 ? 00:00:00 aio/0
67 ? 00:00:00 aio/1
68 ? 00:00:00 aio/2
69 ? 00:00:00 aio/3
54 ? 00:00:00 khubd
65 ? 00:00:08 kswapd0
142 ? 00:00:00 kseriod
213 ? 00:00:00 scsi_eh_0
229 ? 00:00:00 kjournald
507 ? 00:00:00 minilogd
1004 ? 00:00:00 udevd
1325 ? 00:00:00 kauditd
1423 ? 00:00:00 kmirrord
1424 ? 00:00:00 kmir_mon
1477 ? 00:00:00 kjournald
1478 ? 00:00:00 kjournald
1479 ? 00:00:00 kjournald
1747 ? 00:00:00 sshd
1776 ? 00:00:00 xinetd
1794 ? 00:00:00 crond
11728 ? 00:00:00 sshd
29433 ? 00:00:00 httpd
29470 ? 00:00:00 sshd
29472 ? 00:00:00 sftp-server
29490 ? 00:00:00 sshd
29492 ? 00:00:00 bash
29521 ? 00:00:00 ps
/root$ ps
PID TTY TIME CMD
1 ? 00:00:00 init
2 ? 00:00:00 migration/0
3 ? 00:00:00 ksoftirqd/0
4 ? 00:00:00 migration/1
5 ? 00:00:00 ksoftirqd/1
6 ? 00:00:00 migration/2
7 ? 00:00:00 ksoftirqd/2
8 ? 00:00:00 migration/3
9 ? 00:00:00 ksoftirqd/3
10 ? 00:00:00 events/0
11 ? 00:00:00 events/1
12 ? 00:00:00 events/2
13 ? 00:00:00 events/3
14 ? 00:00:00 khelper
15 ? 00:00:00 kacpid
50 ? 00:00:00 kblockd/0
51 ? 00:00:00 kblockd/1
52 ? 00:00:00 kblockd/2
53 ? 00:00:00 kblockd/3
63 ? 00:00:00 pdflush
64 ? 00:00:00 pdflush
66 ? 00:00:00 aio/0
67 ? 00:00:00 aio/1
68 ? 00:00:00 aio/2
69 ? 00:00:00 aio/3
54 ? 00:00:00 khubd
65 ? 00:00:08 kswapd0
142 ? 00:00:00 kseriod
213 ? 00:00:00 scsi_eh_0
229 ? 00:00:00 kjournald
507 ? 00:00:00 minilogd
1004 ? 00:00:00 udevd
1325 ? 00:00:00 kauditd
1423 ? 00:00:00 kmirrord
1424 ? 00:00:00 kmir_mon
1477 ? 00:00:00 kjournald
1478 ? 00:00:00 kjournald
1479 ? 00:00:00 kjournald
1747 ? 00:00:00 sshd
1776 ? 00:00:00 xinetd
1794 ? 00:00:00 crond
11728 ? 00:00:00 sshd
29433 ? 00:00:00 httpd
29470 ? 00:00:00 sshd
29472 ? 00:00:00 sftp-server
29490 ? 00:00:00 sshd
29492 ? 00:00:00 bash
29522 ? 00:00:00 ps
/root$ setup
TERM environment variable needs set.
/root$ Firmware
-bash: line 11: Firmware: command not found
/root$ service iptables on
Usage: /etc/init.d/iptables {start|stop|restart|condrestart|status|panic|save}
/root$ service iptables off
Usage: /etc/init.d/iptables {start|stop|restart|condrestart|status|panic|save}
/root$ /etc/init.d/iptables stop
Flushing firewall rules: [ OK ]
Setting chains to policy ACCEPT: filter [ OK ]
Unloading iptables modules: [ OK ]
这样就OK了,客户端也能正常访问了。
PS:
linux 下 apache启动、停止、重启命令
基本的操作方法:
本文假设你的apahce安装目录为/usr/local/apache2,这些方法适合任何情况
apahce启动命令:
推荐/usr/local/apache2/bin/apachectl start apaceh启动
apache停止命令
/usr/local/apache2/bin/apachectl stop 停止
apache重新启动命令:
/usr/local/apache2/bin/apachectl restart 重启
要在重启 Apache 服务器时不中断当前的连接,则应运行:
/usr/local/sbin/apachectl graceful
如果apache安装成为linux的服务的话,可以用以下命令操作:
service httpd start 启动
service httpd restart 重新启动
service httpd stop 停止服务
如果你想一开机就让apache自动运行的话,那么进行如下操作:
编辑etc/rc.d/rc.local
# vi /etc/rc.d/rc.local
在最后加上一句: /usr/local/apache/bin/apachectl start
看这里的/usr/local/apache的安装路径用到了吧,所以大家装的时候一定要记清楚哦。。。。
2.MySQL的安装
用tar.gz的文件安装,也就是那个样子,重要的是注意./configure的时候
./configure \
今天帮点击音乐网写完了在LINUX下的资源采集,顺便安装了HTTP服务器,使用的是APACHE,不过安装过程还是挺郁闷的(通过winscp远程连接LINUX在终端下安装)。
首先下载了一个*.tar.gz包,
# tar -zxvf httpd-2.2.6.tar.gz
# cd httpd-2.2.6/
# ./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd --enable-so
//这里的—prefix指定apache的安装将安装到:/usr/local/apache目录下,--sysconfdir指定apache配置文件httpd.conf安装到:/etc/httpd目录下。(这两个路径可以自己任意指定指定,但是自己一定要在安装时记清楚,因为这个路径后面还要用到)
另外一些模块的启用也应该在这里configure的时候指定,比如说
--enable-cache --enable-disk-cache --enable-file-cache --enable-mem-cache
# make
# make install
如果不出意外的话,successful!
启动运行apache:
# /usr/local/apache/bin/apachectl start
然后在本机浏览器里面输入:http://127.0.0.1,回车,默认会显示:it works字样,证明apache已经在工作状态中了。
一般安装就上面的过程,不过在START的时候出现了个错误 Could not reliably determine the server's fully qualified domain name ,解决方法是只要把/conf/httpd.conf文件的#ServerName 前的#去掉就好了。
最后在start,没有问题,但是客户端还是无法访问,我想不是配置问题就是防火墙问题,首先检查是否是防火墙问题,的确是。
/root$ ps
PID TTY TIME CMD
1 ? 00:00:00 init
2 ? 00:00:00 migration/0
3 ? 00:00:00 ksoftirqd/0
4 ? 00:00:00 migration/1
5 ? 00:00:00 ksoftirqd/1
6 ? 00:00:00 migration/2
7 ? 00:00:00 ksoftirqd/2
8 ? 00:00:00 migration/3
9 ? 00:00:00 ksoftirqd/3
10 ? 00:00:00 events/0
11 ? 00:00:00 events/1
12 ? 00:00:00 events/2
13 ? 00:00:00 events/3
14 ? 00:00:00 khelper
15 ? 00:00:00 kacpid
50 ? 00:00:00 kblockd/0
51 ? 00:00:00 kblockd/1
52 ? 00:00:00 kblockd/2
53 ? 00:00:00 kblockd/3
63 ? 00:00:00 pdflush
64 ? 00:00:00 pdflush
66 ? 00:00:00 aio/0
67 ? 00:00:00 aio/1
68 ? 00:00:00 aio/2
69 ? 00:00:00 aio/3
54 ? 00:00:00 khubd
65 ? 00:00:08 kswapd0
142 ? 00:00:00 kseriod
213 ? 00:00:00 scsi_eh_0
229 ? 00:00:00 kjournald
507 ? 00:00:00 minilogd
1004 ? 00:00:00 udevd
1325 ? 00:00:00 kauditd
1423 ? 00:00:00 kmirrord
1424 ? 00:00:00 kmir_mon
1477 ? 00:00:00 kjournald
1478 ? 00:00:00 kjournald
1479 ? 00:00:00 kjournald
1747 ? 00:00:00 sshd
1776 ? 00:00:00 xinetd
1794 ? 00:00:00 crond
11728 ? 00:00:00 sshd
29433 ? 00:00:00 httpd
29470 ? 00:00:00 sshd
29472 ? 00:00:00 sftp-server
29490 ? 00:00:00 sshd
29492 ? 00:00:00 bash
29521 ? 00:00:00 ps
/root$ ps
PID TTY TIME CMD
1 ? 00:00:00 init
2 ? 00:00:00 migration/0
3 ? 00:00:00 ksoftirqd/0
4 ? 00:00:00 migration/1
5 ? 00:00:00 ksoftirqd/1
6 ? 00:00:00 migration/2
7 ? 00:00:00 ksoftirqd/2
8 ? 00:00:00 migration/3
9 ? 00:00:00 ksoftirqd/3
10 ? 00:00:00 events/0
11 ? 00:00:00 events/1
12 ? 00:00:00 events/2
13 ? 00:00:00 events/3
14 ? 00:00:00 khelper
15 ? 00:00:00 kacpid
50 ? 00:00:00 kblockd/0
51 ? 00:00:00 kblockd/1
52 ? 00:00:00 kblockd/2
53 ? 00:00:00 kblockd/3
63 ? 00:00:00 pdflush
64 ? 00:00:00 pdflush
66 ? 00:00:00 aio/0
67 ? 00:00:00 aio/1
68 ? 00:00:00 aio/2
69 ? 00:00:00 aio/3
54 ? 00:00:00 khubd
65 ? 00:00:08 kswapd0
142 ? 00:00:00 kseriod
213 ? 00:00:00 scsi_eh_0
229 ? 00:00:00 kjournald
507 ? 00:00:00 minilogd
1004 ? 00:00:00 udevd
1325 ? 00:00:00 kauditd
1423 ? 00:00:00 kmirrord
1424 ? 00:00:00 kmir_mon
1477 ? 00:00:00 kjournald
1478 ? 00:00:00 kjournald
1479 ? 00:00:00 kjournald
1747 ? 00:00:00 sshd
1776 ? 00:00:00 xinetd
1794 ? 00:00:00 crond
11728 ? 00:00:00 sshd
29433 ? 00:00:00 httpd
29470 ? 00:00:00 sshd
29472 ? 00:00:00 sftp-server
29490 ? 00:00:00 sshd
29492 ? 00:00:00 bash
29522 ? 00:00:00 ps
/root$ setup
TERM environment variable needs set.
/root$ Firmware
-bash: line 11: Firmware: command not found
/root$ service iptables on
Usage: /etc/init.d/iptables {start|stop|restart|condrestart|status|panic|save}
/root$ service iptables off
Usage: /etc/init.d/iptables {start|stop|restart|condrestart|status|panic|save}
/root$ /etc/init.d/iptables stop
Flushing firewall rules: [ OK ]
Setting chains to policy ACCEPT: filter [ OK ]
Unloading iptables modules: [ OK ]
这样就OK了,客户端也能正常访问了。
PS:
linux 下 apache启动、停止、重启命令
基本的操作方法:
本文假设你的apahce安装目录为/usr/local/apache2,这些方法适合任何情况
apahce启动命令:
推荐/usr/local/apache2/bin/apachectl start apaceh启动
apache停止命令
/usr/local/apache2/bin/apachectl stop 停止
apache重新启动命令:
/usr/local/apache2/bin/apachectl restart 重启
要在重启 Apache 服务器时不中断当前的连接,则应运行:
/usr/local/sbin/apachectl graceful
如果apache安装成为linux的服务的话,可以用以下命令操作:
service httpd start 启动
service httpd restart 重新启动
service httpd stop 停止服务
如果你想一开机就让apache自动运行的话,那么进行如下操作:
编辑etc/rc.d/rc.local
# vi /etc/rc.d/rc.local
在最后加上一句: /usr/local/apache/bin/apachectl start
看这里的/usr/local/apache的安装路径用到了吧,所以大家装的时候一定要记清楚哦。。。。
2.MySQL的安装
用tar.gz的文件安装,也就是那个样子,重要的是注意./configure的时候
./configure \
"--prefix=/usr/local/mysql" \
"--localstatedir=/data/mysql/data" \
"--with-comment=Source" \
"--with-server-suffix=-Linuxtone.Org" \
"--with-mysqld-user=mysql" \
"--without-debug" \
"--with-big-tables" \
"--with-charset=gbk" \
"--with-collation=gbk_chinese_ci" \
"--with-extra-charsets=all" \
"--with-pthread" \
"--enable-static" \
"--localstatedir=/data/mysql/data" \
"--with-comment=Source" \
"--with-server-suffix=-Linuxtone.Org" \
"--with-mysqld-user=mysql" \
"--without-debug" \
"--with-big-tables" \
"--with-charset=gbk" \
"--with-collation=gbk_chinese_ci" \
"--with-extra-charsets=all" \
"--with-pthread" \
"--enable-static" \
阅读全文...
16个简单实用的.htaccess小贴示
作者: claymore 发表于: 2009-06-14 13:39:14
.htaccess 文件 (Hypertext Access file) 是Apache Web服务器的一个非常强大的配置文件,对于这个文件,Apache有一堆参数可以让你配置出几乎随心所欲的功能。.htaccess 配置文件坚持了Unix的一个文化——使用一个ASCII 的纯文本文件来配置你的网站的访问策略。
这篇文章包括了16个非常有用的小技巧。另外,因为.htaccess 是一个相当强大的配置文件,所以,一个轻微的语法错误会造成你整个网站的故障,所以,在你修改或是替换原有的文件时,一定要备份旧的文件,以便出现问题的时候可以方便的恢复。
1. 使用.htaccess 创建自定义的出错页面。对于Linux Apache来说这是一项极其简单的事情。使用下面的.htaccess语法你可以轻松的完成这一功能。(把.htaccess放在你的网站根目录下)
ErrorDocument 401 /error/401.php
ErrorDocument 403 /error/403.php
ErrorDocument 404 /error/404.php
ErrorDocument 500 /error/500.php
ErrorDocument 403 /error/403.php
ErrorDocument 404 /error/404.php
ErrorDocument 500 /error/500.php
2. 设置网站的时区
SetEnv TZ America/Houston
3. 阻止IP列表
有些时候,你需要以IP地址的方式阻止一些访问。无论是对于一个IP地址还是一个网段,这都是一件非常简单的事情,如下所示:
阅读全文...
Apache2 使用 mod_gzip 增进传输效能
作者: claymore 发表于: 2008-11-03 10:20:42
要加快网页传输的速度,一个方法是增加网络的频宽,另一个方法是降低数据量,这是大家都知道的道理. HTTP 通讯协议基本上就是 server 接受 client 的 request (GET) 然后送出被要求的资料,如果 server 端可以送出一份压缩过的数据而可以被 client 端接受,那么虽然是传送相同的资料,但是经过压缩就可以有效的降低数据量.
本站使用 Win32 的 Apache 2.0.54,如果想要达成上面讲的机制,要另加一个 gzip 的模块 mod_gzip,这里可以下载 mod_gzip 预先编译好的版本 mod_gzip-2.0.53-w32.zip,用在 Apache 2.0.54 没问题. 用法如下:
在 httpd.conf 加上
在 httpd.conf 加上
LoadModule gzip_module modules/mod_gzip.so
<ifmodule mod_gzip.c>
mod_gzip_on Yes
mod_gzip_compression_level 9
mod_gzip_item_include file \.css$
mod_gzip_item_include file \.js$
mod_gzip_item_include mime text/.*
</ifmodule>
其中 mod_gzip_compression_level 9 是最高压缩,mod_gzip_item_include 是设定什么样的数据文件要压缩,上例中 *.css 及 *.js 会被压缩传送. 图档如 .jpg, .png,或音乐 .mp3 等,则不宜再压缩,因为档案本身就已经是压缩过的.
修改完后要 restart Apache. Apache 如果接到 browser 送来的 Accept-Encoding 含有 gzip 就会以 gzip 压缩再传送(Accept-Encoding: gzip,deflate ),现在新的 browser 都已经支持. 如果 browser 没有送来支持的讯息,server 端就会以不压缩的原数据传送.
阅读全文...
分类: Related | Web Developing
引用: 0
评论: 0
点击: 223
Apache2 使用 mod_deflate 增进传输效能
作者: claymore 发表于: 2008-11-03 10:18:15
在前篇提过使用 mod_gzip 增进传输效能,但似乎有些地方有问题,如果加上mod_gzip_item_include mime application/x-httpd-php,照理说应该会把 php 的输出压缩传出,但是在 browser 看到的是空白一片. 只好试试 Apache2 官方包装内的 mod_deflate,结果没有出现同样的问题,官方版还是比较有保障.
用法如下:
在 httpd.conf 加上
在 httpd.conf 加上
LoadModule deflate_module modules/mod_deflate.so
<ifmodule mod_deflate.c>
DeflateCompressionLevel 9
AddOutputFilterByType DEFLATE text/html text/plain text/xml application/x-httpd-php
AddOutputFilter DEFLATE css js
</ifmodule>
其中 DeflateCompressionLevel 9 是最高压缩,经实验证明,压缩能力跟 mod_gzip 是一样的,style.css 12911 bytes,压缩传送同样是 3342 bytes.
Apache2 还是推荐使用 mod_deflate 较好.
阅读全文...
分类: Related | Web Developing
引用: 0
评论: 0
点击: 213
使用Apache2的mod_deflate模块
作者: claymore 发表于: 2008-11-03 10:13:38
今天看了精神奕奕的两篇文章:《Apache2 使用 mod_gzip 增进传输效能》和《Apache2 使用 mod_deflate 增进传输效能》。看起来这是位WordPress前辈啊,05年初就开始接触了WordPress。
文章介绍了使用mod_gzip模块和mod_deflate模块压缩传输数据,提供传输性能的方法。WordPress本身支持gzip压缩输入,不过仅限于WordPress输出的页面,比如Blog页面以及WordPress后台页面等等。而其他地方,比如模版的js文件和CSS文件,因为这些文件不用被PHP引擎执行,没经过WordPress的处理,所以没有压缩。不过,K2模版的几个js是特例,因为他们都是做成PHP文件,包含了wp-blog-header.php文件,并在文件启动了gzip压缩。
我的服务器安装了mod_deflate模块,到Apache 2.2 文档里看了一下,找到mod_deflate模块的文档。精神奕奕的文章里说的DeflateCompressionLevel等命令都不能在.htaccess文件里使用,只能用AddOutputFilter命令[via]。于是在.htaccess文件里加上:
阅读全文...
分类: Related | Web Developing
引用: 0
评论: 0
点击: 182









