On this page... (hide)
- 1. 常用文档
- 2. Debian下基本安装
- 3. php相关配置
- 3.1 启用php支持
- 3.2 优化php的FastCGI设置
- 3.3 安装 XCache
- 3.4 安装eAccelerator模块加速
- 3.5 在lighty下使用wp-super-cache
- 4. 启用WebDAV
- 4.1 服务器端配置
- 4.2 WebDAV的访问客户端
1. 常用文档
2. Debian下基本安装
在Debian下安装很简单:“apt-get install lighttpd”就可以了。
安装之后默认使用www-data用户启动服务进程,默认的页面根目录在/var/www,配置文件都在/etc/lighttpd下面,日志文件在/var/log/lighttpd。
3. php相关配置
3.1 启用php支持
如果要启用php支持,可以这样(使用的是fast-cgi方式):
- 首先“apt-get install php5-cgi”来安装php5相关的包(当然也可以改为安装php4-cgi来仅使用php4版本)
- 修改/etc/lighttpd/conf-available/10-fastcgi.conf,将里面的“php4-cgi”字样改为“php5-cgi”以使配置脚本正确调用php5包中提供的指令。
- “lighty-enable-mod fastcgi”来启用lighttpd的fastcgi模块支持,再“/etc/init.d/lighttpd force-reload”来强制lighttpd重新读取配置文件来激活php解析。
这样已经可以在/var/www目录下放置php程序了。php自身的参数配置可以修改/etc/php5/cgi/php.ini来实现。
3.2 优化php的FastCGI设置
详见http://trac.lighttpd.net/trac/wiki/Docs%3APerformanceFastCGI 。
由于服务器内存紧张,没有启用XCache等组件,我在这里主要是调整了FastCGI启动php的进程和线程数。除了按照文中通过估计单位时间pv来确定需要准备的php总线程数外,也可以考虑用试验法……top指令是可以看到所有php线程的,按大写的T键,使线程/进程们按照已经占用的所有cpu时间来排序,如果仍然有几乎没有怎么工作的php线程,则通常可以认为是总线程数有富余。
此外,文中建议避免少量进程带大量线程,因为这样一旦一个进程挂掉,会一次死掉很多线程,其他进程就很有可能负载暴增,造成进程死亡的连锁反应。
3.3 安装 XCache
XCache 在 Debian 中有官方安装包,而 eAccelerator 没有,需要自行编译,因此暂时使用的 XCache 。只需 apt-get install php5-xcache 后重启 lighttpd 即可,网站系统的执行效率有可以感觉到的明显提升。其默认设置的缓存容量为 16M ,在小内存的系统上可能还有进一步优化的余地。
3.4 安装eAccelerator模块加速
安装了eAccelerator后php线程占用的内存有所增加(当然占用内存多少和线程执行的php脚本本身的特点也有关系),但脚本执行的速度也是能够感觉到有加速的。
安装eAccelerator的方法详见http://www.howtoforge.com/eaccelerator_php5_debian_etch (如果是其他Linux发行版,在该网站也可以找到对应的说明文档)。大致步骤有:
cd /tmp
wget http://bart.eaccelerator.net/source/0.9.5.2/eaccelerator-0.9.5.2.tar.bz2
tar xvfj eaccelerator-0.9.5.2.tar.bz2
cd eaccelerator-0.9.5.2
phpize
./configure
make
make install
然后设置eAccelerator的配置参数(/etc/php5/conf.d/eaccelerator.ini),如果没有这个文件,可以自行建立,如果服务器内存足够那么文件内容通常写成这样:
eaccelerator.shm_size="16"
eaccelerator.cache_dir="/var/cache/eaccelerator"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime="1"
eaccelerator.debug="0"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="0"
eaccelerator.shm_prune_period="0"
eaccelerator.shm_only="0"
eaccelerator.compress="1"
eaccelerator.compress_level="9"
如果服务器内存很紧张,比如服务器总共才128M内存,那么可以这样写(参考自Nginx 0.7.x + PHP 5.2.6(FastCGI)+ MySQL 5.1 在128M小内存VPS服务器上的配置优化):
eaccelerator.shm_size="1"
eaccelerator.cache_dir="/var/cache/eaccelerator"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime="1"
eaccelerator.debug="0"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="3600"
eaccelerator.shm_prune_period="3600"
eaccelerator.shm_only="0"
eaccelerator.compress="1"
eaccelerator.compress_level="9"
eaccelerator.keys = "disk_only"
eaccelerator.sessions = "disk_only"
eaccelerator.content = "disk_only"
其中省内存的配置对每个PHP进程大约只多占用1M内存,但在我服务器上实测性能大约能提高10%。此外也可以参考http://www.eaccelerator.net/wiki/Settings 的说明自行琢磨着调整这些参数。
建立eAccelerator需要的缓存存储目录:
chmod 0777 /var/cache/eaccelerator
重启lighttpd,在info.php应该可以看到带有“eAccelerator”的字样。
出于服务器安全考虑,在安装eAccelerator成功后,会去除服务器上的软件编译环境:
3.5 在lighty下使用wp-super-cache
详细步骤说明文档见:在Lighttpd上使用wp-super-cache
4. 启用WebDAV
4.1 服务器端配置
以下步骤在Debian Lenny版本下测试通过(参考了How To Set Up WebDAV With Lighttpd On Debian Etch):
除lighttpd包外,还需要安装lighttpd-mod-webdav apache2-utils两个包,后者主要是要用到里面的htpasswd配置工具。
激活lighty的认证模块:
编辑/etc/lighttpd/lighttpd.conf文件,确认mod_alias和mod_webdav都已经激活。
新建一个passwd.dav文件来存储认证用的用户名和密码,并设定适当的权限。这里test是用作示例的用户名,-c参数表示不管passwd.dav文件是否已经存在,都重新建立这个文件(这里我是把dav文件存储在了/var/www下,在实际应用中需要确保所在目录不会被公开访问到):
chown root:www-data /var/www/passwd.dav
chmod 640 /var/www/passwd.dav
然后我们再回来编辑/etc/lighttpd/lighttpd.conf文件,搞一个启用了WebDAV的虚拟站点:
server.document-root = "/var/www/web1"
alias.url = ( "/webdav" => "/var/www/web1" )
$HTTP["url"] =~ "^/webdav($|/)" {
webdav.activate = "enable"
webdav.is-readonly = "disable"
webdav.sqlite-db-name = "/var/run/lighttpd/lighttpd.webdav_lock.db"
auth.backend = "htpasswd"
auth.backend.htpasswd.userfile = "/var/www/passwd.dav"
auth.require = ( "" => ( "method" => "basic",
"realm" => "webdav",
"require" => "valid-user" ) )
}
}
如果按照这个配置文件,那么站点的根目录是只读的(也就是普通的http访问),而/webdav/目录是可写的WebDAV访问方式。这是靠配置文件中alias.url和$HTTP["url"] =~ "^/webdav($|/)"这两句来实现的。但我在这里遇到了一个问题,我的客户端似乎与alias.url不兼容,所以最后我只好把WebDAV配置到站点的根目录了。。
都搞好以后重启lighty,WebDAV应该就已经生效了:
4.2 WebDAV的访问客户端
- cadaver是一个命令行的客户端,常被用于配置完成后的基本功能测试。
- Windows下可以在网络邻居中新建连接,将WebDAV服务映射成一个本地路径(当然还有DreamWeaver等很多应用程序支持WebDAV);或者用AnyClient这个Java的图形化客户端也相当不错。
- Mac下有很多程序都有WebDAV的连接功能,比如Transmit、ForkLift等等。