lighttpd虚拟主机的配置

[不指定 2010/06/08 07:58 | by admin ]
一、常规虚拟主机的配置

1、在lighttpd.conf最后加上如下代码:

$HTTP["host"] == "www.a.com" {
server.name = "www.a.com"
server.document-root = "/home/wwwroot/htdocs/a"
server.errorlog = "/var/log/lighttpd/www.a.com-error.log"
accesslog.filename = "/var/log/lighttpd/www.a.com-access.log"
}


$HTTP["host"] == "www.b.com" {
server.name = "www.b.com"
server.document-root = "/home/wwwroot/htdocs/b"
server.errorlog = "/var/log/lighttpd/www.b.com-error.log"
accesslog.filename = "/var/log/lighttpd/www.b.com-access.log"
}

2、另建lighttpd-vhost.conf,并在lighttpd.conf里调用
在lighttpd.conf最后加上:
include "/etc/lighttpd/lighttpd-vhost.conf"
新建的lighttpd-vhost.conf内容为:

$HTTP["host"] == "www.a.com" {
server.name = "www.a.com"
server.document-root = "/home/wwwroot/htdocs/a"
server.errorlog = "/var/log/lighttpd/www.a.com-error.log"
accesslog.filename = "/var/log/lighttpd/www.a.com-access.log"
}


$HTTP["host"] == "www.b.com" {
server.name = "www.b.com"
server.document-root = "/home/wwwroot/htdocs/b"
server.errorlog = "/var/log/lighttpd/www.b.com-error.log"
accesslog.filename = "/var/log/lighttpd/www.b.com-access.log"
}

我喜欢用这种方法,文件较简洁,虚拟主机配置全部放入单独的lighttpd-vhost.conf文件,这种方法是参考apache虚拟主机而改来的,在nginx下同样适用。

二、简单虚拟主机

简单的虚拟主机需要使用mod_simple_vhost模块.它的特点是简单的就可以绑定域名,但是如果在商业运作当中,这样也是有很大隐患!在这里只需要将这个模块添加到server.modules中,即:

server.modules              = (
...
"mod_simple_vhost",
...
)

一个完整的document root由三个值server-root、hostname、document-root决定
我们可以这样设定:

simple-vhost.server-root         = "/var/www"
simple-vhost.document-root       = "/public_html/"

Sponsored Links
如果按照以上这样设定,那么我们便可以很方便的绑定多个域名到服务器,只需要在/var/www目录添加文件夹,文件夹就输入需要绑定的域名,然后进入文件夹,在里面建立public_html文件夹就可以实现绑定了.那么完整的路径便是

/var/www/www.xmlchina.org/public_html


三、复杂虚拟设置匹配

复杂虚拟设置匹配,在这里同样需要开启模块的支持,即在server.modules中添加mod_evhost即可,方法如上.

复杂虚拟设置匹配,一般可以用作泛域名解析用,它是使用正则进行匹配,如此便可以实现多子域名的绑定.

在lighttpd.conf中便有这一条的解释

# define a pattern for the host url finding
# %% => % sign
# %0 => domain name + tld
# %1 => tld
# %2 => domain name without tld
# %3 => subdomain 1 name
# %4 => subdomain 2 name
#
# evhost.path-pattern = "/home/storage/dev/www/%3/htdocs/"

那么我们可以按照官方的方法进行设置,下面是我的配置.

$HTTP["host"] =~ "www.xmlchina.org$" {
evhost.path-pattern        = "/var/www/%0/%3"
}

%0 = xmlchina.org
%3 = www
这里文档路径是/var/www/xmlchina.org/www

还可进行二级域名解析,如:

$HTTP["host"] =~ "^(.*).xmlchina.org$" {
evhost.path-pattern        = "/var/www/%0/%3"
}

%0 = xmlchina.org
%3 = 任意第二级域名前缀

复杂虚拟设置匹配可以实现可变目录的绑定,轻松解决多二级域名的解析难题

总结

这里提供的三个方法,各有各的好处.但是就服务器安全角度来说,建议使用第一条.原因嘛!慢慢琢磨啦.

phpfastcgi+lighttpd的安装

[不指定 2010/06/08 07:28 | by admin ]
lighttpd的安装
1、先安装mysql
2、安装php,php的编译参数加上 --enable-fastcgi --enable-force-cgi-redirect
3、安装lighttpd
   a、安装pcre
        tar zxvf pcre-7.9.tar.gz
        cd pcre-7.9/
        ./configure
        make
        make install
        cd ../
    b、安装lighttpd
        tar xzvf lighttpd-1.4.26.tar.gz
        cd lighttpd-1.4.26
        ./configure --prefix=/web/lighttpd
        make
        make install

mkdir /etc/lighttpd
cp doc/lighttpd.conf /etc/lighttpd/
cp doc/sysconfig.lighttpd /etc/sysconfig/lighttpd
cp doc/rc.lighttpd.redhat /etc/init.d/lighttpd

vi /etc/init.d/lighttpd
lighttpd="/usr/sbin/lighttpd修改为lighttpd="/web/lighttpd/sbin/lighttpd" 改为你的lighttpd的安装路径
vi /etc/lighttpd/lighttpd.conf  修改配置文件

打开需要的模块,去掉前面的# ( "mod_rewrite",  "mod_alias", "mod_access", "mod_fastcgi",  "mod_cgi",   "mod_compress", "mod_accesslog" )

server.document-root        = "/srv/www/htdocs/"   修改为自己的路径
如:
server.document-root        = /home/wwwroot/htdocs

#server.pid-file            = "/var/run/lighttpd.pid"   打开这一句
#server.username            = "wwwrun"   改成自己的用户
#server.groupname           = "wwwrun"    改成自己的用户组
如自己加一个
groupadd wwwrun
useradd wwwrun -g wwwrun -d /home/wwwroot/htdocs -s /sbin/nologin

查找下面的:
#fastcgi.server             = ( ".php" =>
#                               ( "localhost" =>
#                                 (
#                                   "socket" => "/var/run/lighttpd/php-f        astcgi.socket",
#                                   "bin-path" => "/usr/local/bin/php-cg        i"
#                                 )
#                               )
#                            )
打开
#cgi.assign                 = ( ".pl"  => "/usr/bin/perl",
#                               ".cgi" => "/usr/bin/perl" )
打开

mkdir -p /var/run/lighttpd/
chown -R www.www /var/run/lighttpd/
chmod -R 777 /var/run/lighttpd/
mkdir -p /var/log/lighttpd/
chmod -R 777 /var/log/lighttpd/
上面一段较重要,否则会启动不了lighttpd

chkconfig --add lighttpd
chkconfig lighttpd on
service lighttpd start

在/home/wwwroot/htdocs里建个phpinfo.php进行测试
phpinfo();
?>
      因redhat AS4的yum中未找到vsftpd,只好自己研究源码包的安装,原来的安装都是直接用脚本yum安装,碰上这系统,也没办法,逼自己去学源码安装。
    经过一两小时的学习并测试,终于把源码安装vsftpd-2.2.2.tar.gz的脚本写好了,并把yum时安装的vsftpd服务脚本借鉴过来了,因自己并不懂C的语法(以前在学校学得太差了),只能凭感觉去改改,但最终能用了。
    于是,上传源码到服务器,执行安装,几秒的时候安装结束,发现提示出错。
500 OOPS: could not bind listening IPv4 socket  依然google,
      原因找到了,原来是系统原来安装了vsftpd,并且是以XINET守护进程启动的。后来被我卸载了

   我的vsftpd是使用STANDALONE独立模式,要关闭xinet方式的启动。修改方法如下:
               直接修改/etc/xinetd.d/vsftpd文件,把最后的disable=no改成disable=yes
                          service xinetd restart
                          service vsftpd restart
搞定。
Tags: , ,

为redhat AS4安装yum

[不指定 2010/06/05 01:43 | by admin ]
        前天接了个环境lnmp的配置,原让其安装centos5.5的,没想对方机房装了其他版本的linux,因平时接触的版本也不多,所以,通过查看 cat   /proc/version 才得知系统为32位的redhat AS4。
     登录后发现没法使用yum,于是网上搜索,找到方法,以下为转贴:

    
       在标准的Redhat Enterprise Linux上,默认没有安装yum,需要单独下载并安装。
  此外,Redhat Enterprise Linux的更新是由Redhat提供的收费服务,但由于Redhat Enterprise Linux和CentOS是基本通用的,所以可用CentOS源来升级redhat。
  1. 首先安装yum和相关的rpm包
  注意:本安装包只提供给as4系统之用
         http://www.swsoft.com.cn/downloads/Prima/Tools/yum_forAS4.tar.gz
           或  http://www.haoxm.net/tools/yum_forAS4.tar.gz
  下载并解压缩yum包和升级文件
  rpm -ivh *.rpm

  2. 将解压缩后得到的CentOS-Base.repo复制到/etc/yum.repos.d/目录里边
  注意:本CentOS-Base.repo文件只提供给as4系统之用

  3. 执行如下命令导入GPG Key
          rpm --import http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-4
         或 rpm --import http://www.haoxm.net/tools/RPM-GPG-KEY-CentOS-4

  现在可以开始使用yum了。yum的主要参数包括search/install/upgrade/remove。
  
  注意:
  1. 使用yum的过程中,有些程序包是不能升级的。
  2. 如果使用yum对全部系统都进行升级,则会发现升级后系统版本将从redhat变成centos
  这是因为升级使用的是免费centos的yum源,所以升级最好有选择的执行

     yum update了一下,文件是下载了,但提示出错未安装,看来能否升为centos还有待再次试验,于是又搜来redhat 的源更换,源码如下:

    [base]

name=Red Hat Enterprise AS release 4 Updates

baseurl= http://apt.sw.be/redhat/el4/en/i386/dag/

         http://apt.sw.be/redhat/el4/en/i386/rpmforge/

         http://mirror.cpsc.ucalgary.ca/mirror/dag/redhat/el4/en/i386/dag/

         http://mirror.cpsc.ucalgary.ca/mirror/dag/redhat/el4/en/i386/rpmforge/
gpgcheck=0

yum后发现能更新,就是有用的包太少了。
Tags: , ,
分页: 17/30 第一页 上页 12 13 14 15 16 17 18 19 20 21 下页 最后页 [ 显示模式: 摘要 | 列表 ]