lighttpd虚拟主机的配置
[
2010/06/08 07:58 | by admin ]
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 = 任意第二级域名前缀
复杂虚拟设置匹配可以实现可变目录的绑定,轻松解决多二级域名的解析难题
总结
这里提供的三个方法,各有各的好处.但是就服务器安全角度来说,建议使用第一条.原因嘛!慢慢琢磨啦.
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 ]
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();
?>
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();
?>
vsftpd 的错误提示:500 OOPS: could not bind listening IPv4 socket
[
2010/06/05 01:58 | by admin ]
2010/06/05 01:58 | by admin ]
因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
搞定。
经过一两小时的学习并测试,终于把源码安装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
搞定。
为redhat AS4安装yum
[
2010/06/05 01:43 | by admin ]
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后发现能更新,就是有用的包太少了。
登录后发现没法使用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后发现能更新,就是有用的包太少了。





