扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
ZDNetChina服务器站 虚拟化技巧
虚拟主机介绍
虚拟主机是指采用特殊的软硬件技术,把一台真正的主机分为若干台主机对外提供服务,每一台虚拟主机都可以具有独立的域名和地址,具有完整的互联网服务器(WWW、FTP、Email)等功能。虚拟主机之间完全独立,并可由用户自行管理,可以大大地缓解互联网上IP及服务器等资源的不足,同时降低用户的硬件费用、网络维护费用和通讯服务费用。
我们这里架设的虚拟主机是利用一台Slackware Linux作为服务器,然后通过Apache的virtual host功能来实现的,当然还要有DNS、FTP的配合。这样服务器只要有一个IP地址,就可以同时对多个域名提供web服务了。管理程序我们使用的web-cp,这样用户可以管理自己的域名和站点。
架设环境
因为是实验,所以使用的是VMware虚拟出来的环境。
服务器系统:slackware 10.1
硬件配置:基本一台标准pc就可以了。
网络要求:只要可以访问互联网就可以。
网络环境:安装vmware的机器ip:20.20.20.15
子网掩码:255.255.255.0
网关:20.20.20.252
DNS:202.106.0.20
安装Slackware系统
只要按照默认安装就可以。可以参考下面的文章
http://www.slack.cn/uploads/wordpress/slackware10install.pdf
注意:安装的使用,最好给/home一个单独的分区或者硬盘。因为我这里用的是Vmware虚拟的机器,所以就单独给/home分了一个硬盘。在实际情况中,可以给/home一个单独分区。
安装后对网络设置
1、设置ip和网关
编辑/etc/rc.d/rc.inet1.conf文件。如果你使用putty远程登到slackware上的话,可以直接将下面内容用右键粘贴到终端来执行。下面文件的作用是将slackware服务器的ip设置为20.20.20.28 网关设置为20.20.20.252
cat > /etc/rc.d/rc.inet1.conf << “EOF”
#
# This file contains the configuration settings for network interfaces.
# If USE_DHCP[interface] is set to “yes”, this overrides any other settings.
# If you don’t have an interface, leave the settings null ("").
# Config information for eth0:
IPADDR[0]=“20.20.20.28”
NETMASK[0]=“255.255.255.0”
USE_DHCP[0]=“”
DHCP_HOSTNAME[0] =“”# Config information for eth1:
IPADDR[1]=“”
NETMASK[1]=“”
USE_DHCP[1]=“”
DHCP_HOSTNAME[1]=“”# Config information for eth2:
IPADDR[2]=“”
NETMASK[2]=“”
USE_DHCP[2]=“”
DHCP_HOSTNAME[2]=“”# Config information for eth3:
IPADDR[3]=“”
NETMASK[3]=“”
USE_DHCP[3]=“”
DHCP_HOSTNAME[3]=“”# Default gateway IP address:
GATEWAY=“20.20.20.252”# Change this to “yes” for debugging output to stdout. Unfortunately,
# /sbin/hotplug seems to disable stdout so you’ll only see debugging output
# when rc.inet1 is called directly.
DEBUG_ETH_UP=“no”
EOF
2、设置主机名
我用的主机名是www.test.com
cat > /etc/HOSTNAME < < "EOF"
www.test.com
EOF
chmod 644 /etc/HOSTNAME
3、设置host文件
cat > /etc/hosts < < "EOF"
127.0.0.1 localhost
20.20.20.28 serv1.test.com serv1
20.20.20.28 test.com
EOFchmod 644 /etc/hosts
4、设置DNS
cat > /etc/resolv.conf << “EOF”
nameserver 202.106.0.20
EOF
通过上面这些设置,重启系统后,我的slackware linux系统就可以访问互联网了。这个很重要,因为后面要下载一些软件。
设置inetd
slackware默认通过inetd来起动proftp等进程。但这些并不适合我们作虚拟主机服务。我们需要通过下面的设置,关掉inetd起动的进程。
mv /etc/inetd.conf /etc/inetd.conf.old
cat > /etc/inetd.conf << “EOF”
# pop3 stream tcp nowait root /usr/sbin/tcpd /usr/sbin/popa3d
# auth stream tcp wait root /usr/sbin/in.identd in.identd
#
# ftp stream tcp nowait root /usr/sbin/tcpd proftpd
# echo stream tcp nowait root internal
# echo dgram udp wait root internal
# discard stream tcp nowait root internal
# discard dgram udp wait root internal
# daytime stream tcp nowait root internal
# daytime dgram udp wait root internal
# chargen stream tcp nowait root internal
# chargen dgram udp wait root internal
# time stream tcp nowait root internal
# time dgram udp wait root internal
# telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd
# comsat dgram udp wait root /usr/sbin/tcpd in.comsat
# imap2 stream tcp nowait root /usr/sbin/tcpd imapd
# finger stream tcp nowait nobody /usr/sbin/tcpd in.fingerd -u
# systat stream tcp nowait nobody /usr/sbin/tcpd /bin/ps -auwwx
# netstat stream tcp nowait root /usr/sbin/tcpd /bin/netstat -a
EOF
chmod 644 /etc/inetd.conf
重启inetd
/etc/rc.d/rc.inetd stop
chmod 444 /etc/rc.d/rc.inetd
起动MySQL服务
1、安装mysql数据库
su mysql
mysql_install_db
exitchmod +x /etc/rc.d/rc.mysqld
/etc/rc.d/rc.mysqld start
2、设置root密码mysql -u root mysql
在mysql>提示符下输入
update user set password=password(“dbpasswd”) where user=“root”;
exit
mysqladmin -u root reload
3、创建mysql的配置文件
cat > /etc/my.cnf < < "EOF"
[mysqld]
datadir =/var/lib/mysql
port =3306
socket =/var/run/mysql/mysql.sock
[mysql.server]
user =mysql
basedir =/var/lib
[safe_mysqld]
err-log =/var/log/mysqld.log
pid-file=/var/run/mysql/mysql.pid
EOF 开机自动启动mysqlchmod +x /etc/rc.d/rc.mysql
安装各种图形库
1、pngcd /usr/src
wget http://unc.dl.sourceforge.net/sourceforge/libpng/libpng-1.2.8.tar.gz
tar -xvzf libpng-1.2.8.tar.gz
cd libpng-1.2.8
cp scripts/makefile.linux makefile
make
make install
make install-headers2、JPEG -6bcd /usr/src
wget http://www.ijg.org/files/jpegsrc.v6b.tar.gz
tar -xvzf jpegsrc.v6b.tar.gz
cd jpeg-6b
./configure –prefix=/usr
make
mkdir /usr/man
mkdir /usr/man/man1
make install
make install-headers
make install-lib3、FREETYPE
cd /usr/src
wget http://ufpr.dl.sourceforge.net/sourceforge/freetype/freetype-2.1.9.tar.gz
tar -xvzf freetype-2.1.9.tar.gz
cd /usr/src/freetype-2.1.9
./configure –prefix=/usr
make
make install4、GDcd /usr/src
wget http://www.boutell.com/gd/http/gd-2.0.33.tar.gz
tar -zxf gd-2.0.33.tar.gz
cd /usr/src/gd-2.0.33
./configure –prefix=/usr
–with-png=/usr
–with-freetype=/usr
–with-jpeg=/usr make make install
因为一直打算写一个自动安装的脚本,已经写了1700多行了。但是发现运行的时候还有很多问题,也不知道还有调试多久。所以先把这个英文的资料发上来,有需要的朋友就先下载这个看看吧。我是用chm打包的,希望不会给用linux桌面的朋友带来不便。
http://www.slack.cn/uploads/wordpress/slackware.hostinghacks.net.chm
可能稍后,我会把脚本分成若干个部分上传上来。这样就可以真对每个小部分调试错误了,而且也方便大家根据自己的需要进行修改。希望我自己可以完成全部的shell。
我上次在用slackware架设虚拟主机管理系统(二)中说了正在写脚本,后来写好后,用一个朋友托管的机器做了实验。基本可以用了,但是还有日志分析,磁盘配额等没有作测试。而且也不支持jsp。
本来不想再把自己写的脚本放上来,感觉不是很完善,自己写的脚本也太差。
今天在linuxsir上看到有兄弟要,我想不管好坏,还是放上来吧。大家感觉能用,就用用。只是分享一下,不好用也别骂我呀!
上次放上来的英文资料也有问题,这次重新上传
http://www.slack.cn/uploads/wordpress/hostinghacks.chm
安装脚本和相关软件打包下载
http://www.slack.cn/uploads/wordpress/hosting.rar
使用说明:
1 把压缩包解压到/tmp目录,不需要将tgz文件解压。当脚本需要安装相关软件时,会自己解压的。
2 根据自己需要编辑config文件
3 按顺序执行各个脚本文件,共19个脚本。
4 setup的功能没有实现,所以不要运行setup脚本。最终还是把setup分别写到了19个脚本里面。主要为了好调试,第一次写脚本,总是出错。
5 祝大家安装顺利。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者