几个月前研究了下apache2的架构与部署,时隔那么长时间发现居然全忘了,不得不重新来一遍,写一片日志方便以后查阅。
首先我用的是ubuntu系统,不为别的,光是它方便的软件安装与卸载过程就令你无法抗拒。特别是在Redhat下面挣扎数小时,安装成功一个软件,突然发现在Ubuntu下只需要一行命令的时候,你的心中就有了决定。当然,Redhat下也有它自己的yum命令,但是个人觉得还是远没有Ubuntu好用。
1. apache2的安装
言归正转,首先是安装apache2.
简简单单一句话:#apt-get install apache2
一系列刷屏完成之后,apache2的各个组成部分被安装在5个地方:
- 配置文件的位置:/etc/apache2
- lib文件的位置:/usr/lib
- 启动文件的位置:/etc/init.d/apache2
- 网页存放位置:/var/www
- 软件所在位置:/usr/share/apache2
如果对Ubuntu下的软件安装不熟悉,可以参考:http://blog.csdn.net/lrenjundk/article/details/7082620
2. apache2的启动与关闭
启动与关闭apache2可以使用以下命令:
- 启动:/etc/init.d/apache2 start 或者 apache2ctl start
- 关闭:/etc/init.d/apache2 stop 或者 apache2ctl stop
- 重启:/etc/init.d/apache2 restart 或者 apache2ctl restart
3. 网页部署:
在apache2下面部署网页也相当简单,首先打开配置文件目录:
#cd /etc/apache2
root@lrenjundk-virtual-machine:/etc/apache2# ls
apache2.conf envvars magic mods-enabled sites-available
conf.d httpd.conf mods-available ports.conf sites-enabled
3.1 apache参数:
在该目录下,最为重要的是apache2.conf文件,其中包含了apache的主要参数,包括可以配置的线程数量,进程数量,用户数量,服务器数量等等:
- <IfModule mpm_worker_module>
- StartServers 2
- MinSpareThreads 25
- MaxSpareThreads 75
- ThreadLimit 64
- ThreadsPerChild 25
- MaxClients 150
- MaxRequestsPerChild 0
- </IfModule>
- <IfModule mpm_event_module>
- StartServers 2
- MinSpareThreads 25
- MaxSpareThreads 75
- ThreadLimit 64
- ThreadsPerChild 25
- MaxClients 150
- MaxRequestsPerChild 0
- </IfModule>
- <IfModule mpm_prefork_module>
- StartServers 5
- MinSpareServers 5
- MaxSpareServers 10
- MaxClients 150
- MaxRequestsPerChild 0
- </IfModule>
3.2 链接网页
要链接网页首先需要在/var/www 中创建自己的网页,此处已经有一张默认的网页index.html。也就是apache2启动后默认的那张It works。
建立自己的网站,首先需要创建一个独立的文件夹,以区分不同的网站,并且能确保他们之间互不影响。当然,apache可以同时启动多个虚拟站,那是后话。
#mkdir wsclient
#cp /usr/my.html .
这样我们就能进入网页部署的第二步,打开apache配置文件夹,我们会发现在这下面有两个名为 sites-available和sites-enabled的文件夹。首先打开sites-available,其中保存了我们网站的虚拟机配置信息。对于我们的网页,我们可以新建一个名为wsclient的文件,并进行以下编辑
- NameVirtualHost *
- <VirtualHost *:8080>
- ServerAdmin webmaster@localhost
- DocumentRoot /var/www/wsclient
- <Directory />
- Options FollowSymLinks
- AllowOverride None
- </Directory>
- <Directory /var/www/wsclient>
- Options Indexes FollowSymLinks MultiViews
- AllowOverride None
- Order allow,deny
- allow from all
- </Directory>
- ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
- <Directory "/usr/lib/cgi-bin">
- AllowOverride None
- Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
- Order allow,deny
- Allow from all
- </Directory>
- ErrorLog ${APACHE_LOG_DIR}/error.log
- # Possible values include: debug, info, notice, warn, error, crit,
- # alert, emerg.
- LogLevel warn
- CustomLog ${APACHE_LOG_DIR}/access.log combined
- Alias /doc/ "/usr/share/doc/"
- <Directory "/usr/share/doc/">
- Options Indexes MultiViews FollowSymLinks
- AllowOverride None
- Order deny,allow
- Deny from all
- Allow from 127.0.0.0/255.0.0.0 ::1/128
- </Directory>
- </VirtualHost>
先不要管其他内容,我们需要注意的是如果绑定我们原本的文件夹到此虚拟机上,关键语句:
- DocumentRoot /var/www/wsclient
最后,有了虚拟机和网站信息,还需要打开apache下的另一个文件夹sites-enabled,将虚拟机注册到apache上,当apache启动的时候,会自动启动虚拟机。我们的网站也就能站成运行了:
#cd ../sites-enabled
#ln -s ../sites-abailable/wsclient wsclient
大功告成,打开浏览器,输入localhost或者你机器的ip就能显示你所编辑的网页了