欢迎光临, 访客. 请先 登入註册一个帐号.
十月 21, 2017, 09:04:48 下午
19594 文章 在 3864 主题 由 4580 会员
最新註册会员: aa123aa1
LifeType 中文开发论坛  |  支援  |  安装与设定  |  lighttpd on FreeBSD with Lifetype « 上篇主题 下篇主题 »
页: [1]
作者 主题: lighttpd on FreeBSD with Lifetype  (阅读 36694 次)
ericj
新手见习
*
文章: 43



检视个人资料 个人网站
« 于: 四月 21, 2006, 09:18:01 下午 »

这里以FreeBSD的ports安装为例,其他OS应该也是差不多,
lighttpd目前似乎没有windows的版本。

1.安装 www/php5-cgi 或者 www/php4-cgi,我是安装php5-cgi,底下是我的 make config 选项
程式码:
    [X] REDIRECT   Enable force-cgi-redirect support
    [X] DISCARD    Enable discard-path support
    [X] FASTCGI    Enable fastcgi support
    [X] PATHINFO   Enable path-info-check support
    [X] MULTIBYTE  Enable zend multibyte support
2.安装www/lighttpd  我的选项是
程式码:
   [X] MYSQL     Enable MYSQL support
   [X] CML       Enable Cache Meta Language support
3 安装 lang/php5-extensions
   把一些会用到的 php module 安装进去
   如果不要用的话,再到 /usr/local/etc/php/extensions.ini
   把不要用的註解掉就好了。(载入越多module你的php就会越耗记忆体)


4. lighttpd 比较特殊的是 它需要用 phpx-cgi 而不是一般apache使用的 mod_php
    所以我是把 apache2 移除 , mod_php 移除 , phpX-*extensons 移除通通重装。
    在 FreeBSD 下面,可以移除 mod_phpX ,装 php5-cgi 后,
    再用 php5-extensions 来重新安装extenstions

5.再来是 lighttpd 设定的部份 "/usr/local/etc/lighttpd.conf"
我 enable 的 module 有
程式码:
    "mod_rewrite",    "mod_alias",    "mod_access",    "mod_fastcgi",    "mod_rrdtool",    "mod_accesslog"
程式码:
    server.document-root = "/home/plog/"      ##请改成你的lifetype位置
    server.errorlog = "/var/log/lighttpd.error.log"   ##请自行 touch一个,再chown www:www
    index-file.names = ( "summary.php", "index.php", "index.html", "index.htm", "default.htm" )
    accesslog.filename = "/var/log/lighttpd.access.log" #跟errorlog一样,请自行touch一个再chown

程式码:
## 这是因为 /home/plog/tmp 是不可以被读取的,等同于之前在 /home/plog/tmp下的.htaccess的
    $HTTP["url"] =~ "/tmp" {
        url.access-deny = ( "" )
    } 

程式码:
    fastcgi.map-extensions = ( "/album" => ".php", "/post" => ".php", "/archives" => ".php", "/static" => ".php", "/rss" => ".php", "/category" => ".php", "/trackbacks" => ".php", "/comment" => ".php", "/resource" => ".php", "/get" => ".php", "/blog" => ".php", "/user" => ".php" )
    ##  这些是因为 /home/plog下有些档案,要用php的方式去处理,而不是下载回来,要设定不然,像是相簿、资料夹就无法使用

程式码:
    fastcgi.server  = ( ".php" =>
        ( "localhost" =>
            (
                "socket" => "/tmp/php-fastcgi.socket",
                "bin-path" => "/usr/local/bin/php",
                "bin-environment" => (
                "PHP_FCGI_CHILDREN" => "5",
                "PHP_FCGI_MAX_REQUESTS" => "1000"
             ),
             "bin-copy-environment" => ( "PATH", "SHELL", "USER" ),
             "broken-scriptfilename" => "enable"
         )
    )
    )   ##这些是我目前 php-fastcgi的设定,跟你server的负荷能力有关

程式码:
    url.rewrite=   (
        "^([0-9]+)_[^/]+/archive/([0-9]{6}).html$" => "index.php?blogId=$1&Date=$2",
    "^([0-9]+)_[^/]+/albums/([0-9]+)_[^.]+.html$" => "index.php?op=ViewAlbum&blogId=$1&albumId=$2",
    "^([0-9]+)_[^/]+/albums/$" => " index.php?op=ViewAlbum&blogId=$1&albumId=0",
    "^([0-9]+)_[^/]+/categories/([0-9]+)_[^.]+.html$" => "index.php?blogId=$1&postCategoryId=$2",
    "^([0-9]+)_[^/]+/feeds/categories/([0-9]+)_[^.]+/(.*)$" => "rss.php?blogId=$1&categoryId=$2&profile=$3",
    "^([0-9]+)_[^/]+/feeds/(.*)$" => "rss.php?blogId=$1&profile=$2",
    "^([0-9]+)_[^/]+/trackbacks/([0-9]+)_[^.]+.html$" => "index.php?op=Trackbacks&blogId=$1&articleId=$2",
    "^([0-9]+)_[^/]+/comment/([0-9]+)_[^.]+.html$" => "index.php?op=Comment&blogId=$1&articleId=$2",
    "^([0-9]+)_[^/]+/resources/([^.]+).([^.]+).html$"  => "index.php?op=ViewResource&blogId=$1&resource=$2.$3",
    "^([0-9]+)_[^/]+/(.+)$" =>  "index.php?op=Template&blogId=$1&show=$2",
    "^([0-9]+)(_[^/]+)?$" => "index.php?blogId=$1",
    "^([0-9]+)_[^/]+/archive/([0-9]{8}).html$" => "index.php?blogId=$1&Date=$2",
    "^([0-9]+)_[^/]+/get/(.+)$" => "resserver.php?blogId=$1&resource=$2")
    ##这些是我的url-rewrite规则,目前看起来没什么问题,我过因为我使用的是自订网址,不确定一般网址会怎样

其实 lighttpd 的设定档很人性化,一下子就懂了,re-write rule也是。
比对一下 /home/plog/下的 .htaccess 再改过来 lighttpd 的格式就好了

他的特色是对于 static page的处理超强,有支援串流格式 (flv),省资源。
在Linux下当web server效能很棒。试试看吧!

大概要注意的就是 phpX-cgi , lighttpd 的re-write rule, php-fastcgi在lighttpd 下的设定
当 lighttpd cache起来的时候,速度超快的!
已记录

Pentium4 1.5GHz + 512MB SDRAM + 200G vinum mirror RAID
FreeBSD6.1+lighttpd+php5-cgi+MySQL5.1
markwu
系统管理员
超级会员
*****
文章: 3928


Mark Wu


检视个人资料 个人网站
« 回覆文章 #1 于: 四月 22, 2006, 01:20:01 上午 »

这是一篇很棒的文章!

其实可以再加上 eaccelerator 与  zend optimizer 的 support,让 web server 可以执行 php 的 opcode,而非每次 request 都要重新 compile 一次。

这样可以加大你 server 的负载能力。

至于你说的:

引用
这些是我目前 php-fastcgi的设定,跟你server的负荷能力有关

的确是这样。最好的方式就是先试 run 几次,然后用 ab 或 ab2 做一下压力测试,并且估一下你的平均 request 所使用的 memory 数量,然后由此回推他的最高的max  concurrent reuqest 数目。

例如平均的 request memory 用量是 10m,然后你有 1 G 的记忆体,开机后只剩 800M,那么 max concurrent reuqest 最好不要超过 80。当然,这是很保守的算法,这还是跟你的机器有很大的关系。

太大,会造成一直使用 swap memory,速度越来越慢,最后死机给你看。

**BTW,我直接把这篇先置顶了!谢谢你的分享!

Mark
已记录

Augu
新手见习
*
文章: 1


检视个人资料
« 回覆文章 #2 于: 十二月 19, 2006, 09:24:40 下午 »

lighttpd 的 windows 版本 Kevin Worthington 有 porting。
http://www.kevinworthington.com:8181/index.php/category/computers/lighttpd/

已记录
alex867
新手见习
*
文章: 2


检视个人资料
« 回覆文章 #3 于: 一月 16, 2007, 11:33:52 上午 »

请问一下
我已经改用lighttpd来当我的server
但是发现像是http://aaa.bbb.ccc/blog/5 会找不到 但是http://aaa.bbb.ccc/blog/5/ 就可以(末端多个斜线)

这个是哪里要设定呀?
已记录
lss
我不是被~拉~~出来的,不要叫我大大!
总版主
超级会员
*****
文章: 1511



检视个人资料 个人网站
« 回覆文章 #4 于: 一月 16, 2007, 02:28:43 下午 »

lighttpd 的 .htaccess 写法不一样(好像连档名也不太一样的样子),请参考官方网站的文件修改以让 .htaccess 的设定能生效。

lss
已记录

没找过 常见问题集或不知道 如何在 LifeType 中文开发论坛发问的人,恕不回答问题
hollowaysxp
新手见习
*
文章: 6


检视个人资料
« 回覆文章 #5 于: 五月 22, 2007, 09:29:03 下午 »

我是羽毛2.0的用户。
我用FreeBSD6.2,没想到FreeBSD 6.2还有提供lighthttpd。

我好像从以前Win32开始都是玩羽毛和IIS。
其它的httpd还满少碰的。
已记录

FreeBSD6.2+Apache2.0.59+php4.4.4+mysql4.1.21+phpMyAdmin2.9.2
LifeType1.2.2
页: [1]
LifeType 中文开发论坛  |  支援  |  安装与设定  |  lighttpd on FreeBSD with Lifetype « 上篇主题 下篇主题 »
    前往: