用Linux搭建全自动虚拟主机(三)

红薯 发布于 2009/05/07 11:09
阅读 539
收藏 0

上一篇:用Linux搭建全自动虚拟主机(二) 12.Zend Optimizer的安装
解压Zend Optimizer的安装文件后进入文件夹,运行install.sh,按照提示一步一步向下做。安装时需要注意如图1所示的地方,以保证PHP的解析速度和加密代码的解析。

图1 Zend Optimizer Installation Script
13.Resin的安装与配置
安装Resin需要软件j2sdk-1_4_1_03-linux-i586-rpm.bin和resin-2.1.11.tar.gz,注意加入与Apache结合的模块。可分别从http://java.sun.com/webapps/download/DisplayLinks和http://www.caucho.com/download/index.xtp处下载。
(1)安装jdk
#cp j2sdk-1_4_1_03-linux-i586-rpm.bin /usr/local
#chmod +x j2sdk-1_4_1_03-linux-i586-rpm.bin
#./j2sdk-1_3_1_06-linux-i586.rpm.bin
--生成RPM文件,其中会有提问,回答yes。
#rpm -ivh j2sdk-1_4_1_03-linux-i586-rpm #ln -s /usr/java/j2sdk-1_4_1_03 /usr/local/jdk #ln -s /usr/java/j2sdk-1_4_1_03/jre /usr/local/jre (2)安装resin #cp resin-2.1.11.tar.gz /usr/local #cd /usr/local/ #tar -zxvf resin-2.1.11.tar.gz #cd resin-2.1.11 #./configure --with-apxs=/usr/local/apache/bin/apxs #make #make install
(3)Resin的配置
#cd conf
#vi resin.conf

 
/usr/local/apache/htdocs/
--默认是doc,更改为Apache的主页发布目录。
修改环境变量,在profile中添加如下内容:
#vi /etc/profile
PATH=$PATH:/usr/local/jdk/bin:/usr/local/jre/bin
export PATH
JAVA_HOME=/usr/local/jdk
export JAVA_HOME
CLASSPATH=/usr/local/jdk/lib:/usr/local/jre/lib:/usr/local/resin-2.1.11/lib
export CLASSPATH
(4)测试
#vi /usr/local/apache/htdocs/index.jsp
<%@page language="java"%>
1+1=<%=1+1%>
#vi /usr/local/apache/conf/httpd.conf
DirectoryIndex index.htm index.html index.php index.jsp
--添加index.jsp
#/usr/local/apache/bin/apachectl start
#/usr/local/resin-2.1.11/bin/httpd.sh
在浏览器中输入地址http://yourip,页面显示“1+1=2”表示成功安装。
(5)Resin的自启动
将make install生成的$RESIN_HOME/contrib/init.resin复制到/etc/rc.d/init.d/resin:
#chmod +x resin
#cp contrib/init.resin /etc/rc.d/init.d/resin
#chmod +x /etc/rc.d/init.d/resin
#/sbin/chkconfig resin reset
如果机器速度不是很快,那么需要加一个延迟。在/etc/init.d/resin文件第41行左右加入如下内容:
if test -n "$USER"; then
  su - $USER -c "$EXE -pid $PID start $ARGS"
else
  $EXE -pid $PID start $ARGS
fi
#服务启动后,加上一个10秒的延时。
sleep 10
具体实现
通过以上步骤,已经可以在服务器上面运行所需要的服务了。但是仍然有两个问题没有解决:第一是添加用户较麻烦;第二是用户域名还没有和该用户对应上。解决了这两个问题即可实现全自动化的虚拟主机。
1.虚拟主机和域名实现
首先,应该明确目标是当用户用域名test.yourdomain.com访问时,会自动访问到/usr/local/apache/vhosts/test/下面的文件。其次,应该检查手中的工具。这里要用到mod_vhost_alias模块。
2.mod_vhost_alias的配置
配置前请注意把mod_alias和mod_userdir在Apache配置文件中的指令注释掉。
例如,下面的配置将在任何情况下把/cgi-bin/script.pl映射为/usr/local/apache2/cgi-bin/script.pl:
ScriptAlias /cgi-bin/ /usr/local/apache2/cgi-bin/
VirtualScriptAlias /never/found/%0/cgi-bin/
这里使用的配置文件如下:
UseCanonicalName Off
ServerName    www.hrbeu.net
VirtualDocumentRoot /usr/local/apache/vhosts/%1/html
VirtualScriptAlias  /usr/local/apache/vhosts/%1/cgi-bin
注意前面的DocumentRoot和ScriptAlias需要被注释掉,否则会引起mod_vhost_alias设置的重载。
本模块中的所有指令都将字符串替换为路径名。
%% 插入一个%。
%p 插入虚拟主机的端口号。
%N.M 插入名称(或者名称的一部分)。
N和M被用来指定名称(Name)的子字符串。N为名称中用小数点分隔的某一个部分,而M为被选中的N中的字符串。M是可选的,如果不写M的话默认为0。当且仅当M存在时小数点必须书写。替换操作如下: 0 整个名称。
1 第一部分。
2 第二部分。
-1 最后一个部分。
-2 倒数第二部分。
2+ 第二个开始到最后的所有各个部分。
-2+ 倒数第二个以及之前的所有各个部分。
1+ and -1+ 等同于0(整个名称)。
显然前面的例子中“%1”是代表了名称的第一部分,输入test.hrbeu.net时,搜寻的目录就是/usr/local/apache/vhosts/test/html。对于cgi目录则是/usr/local/apache/vhosts/test/cgi-bin。
3.Web管理的实现
前面已经在MySQL里添加了数据,只要改为用Web方式添加数据即可实现自动管理。Apache、MySQL、PHP被誉为Web服务的最佳组合。用PHP程序完全可以实现Web申请,让用户提交申请的同时在数据库里建立自己的账号。因为采用了泛域名解析,所以其申请的用户对应的就是他的二级域名。主页目录不需要再手工创建,因为前面的proftpd.conf配置中已经指明只要用户通过FTP登录,则以其申请的用户名(同时也是域名)命名的目录就已经自动建好。
至此,一个完全自动化管理的虚拟主机系统搭建完成,感兴趣的读者不妨一试。
(责任编辑: 代君利 )

加载中
返回顶部
顶部