Apache网站服务源码安装与站点部署
简介:
在Internet 网络环境中,Web服务无疑是最为主流的应用系统,有了WEB站点,企业可以充分展示自己的产品,公司,宣传自己的企业形象,提供各种网上交流,业务平台等。
Apache起源:源于 A Patchy Server(基于原有web服务程序的代码进行修改(补丁)后形成的服务器程序),最新的名称为 “Apache HTTP Server” ,软件名称 httpd
1995年,发布1.0 由 Apache Group 管理及维护
1999年,在Apache Group基础上成立Apache 软件基金会(Apache Software Foundation,ASF) 由 ASF 管理及维护
Apache 软件基金会软件:
Apache
Tomcat
Hadoop
官方站点:http://httpd.apache.org/
各种Web软件的市场份额统计:http://news.netcraft.com/
安装方式一:简单,快速,适用于实验环境
[root@RHEL6-Server1 ~]# yum -y install httpd
安装方式二:稳定,功能全,适用于生产环境
安装前卸载rpm格式的软件包
[root@RHEL6-Server1 ~]# rpm -q httpd httpd--.el6.x86_64 [root@RHEL6-Server1 ~]# rpm -e httpd --nodeps [root@RHEL6-Server1 ~]# rpm -q httpd package httpd is not installed
解压软代码软件,配置,编译,安装
[root@RHEL6-Server1 ~]# .tar.gz -C /usr/src/ [root@RHEL6-Server1 ~]# cd /usr/src/httpd-/ [root@RHEL6-Server1 httpd-]# ./configure --prefix=/usr/local/httpd --enable-so --enable-rewrite --enable-charset-lite --enable-cgi && make && make install
--prefix=/usr/local/httpd 指定服务程序安装目录
--enable-so 启用动态加载模块功能
--enable-rewrite 启用网页重写
--enable-charset-lite 启动字符集支持
--enable-cgi 启用CGI脚本支持
[root@RHEL6-Server1 httpd-]# ls /usr/local/httpd/ bin build cgi-bin conf error htdocs icons include logs man manual modules
bin 存放执行程序
cgi-bin 存放CGI程序
conf 存放配置文件
htdocs 存放网页文件,例如:html php 等
lib 存放执行程序关联库文件
logs 存放日志文件
man 存放帮助手册文件
modules 存放模块
优化执行路径,使用软链接(将执行程序链接到其他目录下)或者修改默认搜索路径:
[root@RHEL6-Server1 httpd-2.2.31]# ln -s /usr/local/httpd/bin/* /usr/local/bin/ [root@RHEL6-Server1 httpd-2.2.31]# ls -l /usr/local/bin/httpd /usr/local/bin/apachectl lrwxrwxrwx 1 root root 30 8月 11 22:52 /usr/local/bin/apachectl -> /usr/local/httpd/bin/apachectl lrwxrwxrwx 1 root root 26 8月 11 22:52 /usr/local/bin/httpd -> /usr/local/httpd/bin/httpd
查询httpd 服务程序信息
[root@RHEL6-Server1 httpd-2.2.31]# httpd -v Server version: Apache/2.4.16 (Unix) Server built: Aug 11 2015 22:42:13 [root@RHEL6-Server1 httpd-2.2.31]# httpd -l Compiled in modules: core.c mod_so.c http_core.c worker.c
添加httpd系统服务
[root@RHEL6-Server1 httpd-2.2.31]# cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd [root@RHEL6-Server1 httpd-2.2.31]# vi /etc/init.d/httpd #!/bin/sh #chkconfig:35 80 20 #description:APACHE HTTPD SERVER 定义服务启动顺序与关闭顺序及描述信息 [root@RHEL6-Server1 httpd-2.2.31]# chmod +x /etc/init.d/httpd [root@RHEL6-Server1 httpd-2.2.31]# chkconfig --add httpd [root@RHEL6-Server1 httpd-2.2.31]# chkconfig --list httpd httpd 0:关闭 1:关闭 2:关闭 3:启用 4:关闭 5:启用 6:关闭 [root@RHEL6-Server1 httpd-2.2.31]# service httpd start
服务启动问题1:
AH00557: httpd: apr_sockaddr_info_get() failed for RHEL6-Server1
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1. Set the 'ServerName' directive globally to suppress this message
[root@RHEL6-Server1 ~]# vim +98 /usr/local/httpd/conf/httpd.conf
将#注释去掉,更改为:
ServerName www.example.com:80
重新启动apache
[root@RHEL6-Server1 ~]# service httpd stop [root@RHEL6-Server1 ~]# service httpd start [root@RHEL6-Server1 ~]# netstat -anpt |grep :80 tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 86307/httpd
服务启动问题2:
/usr/local/apache/bin/httpd: error while loading shared libraries: libiconv.so.2: cannot open shared object file: No such file or directory
有很多so模块在/usr/local/lib目录下,所以在/etc/ld.so.conf中加入/usr/local/lib这一行
[root@RHEL6-Server1 ~]# vi /etc/ld.so.conf
/usr/local/lib
[root@RHEL6-Server1 ~]# /sbin/ldconfig -v
现在您已经将 Apach安装在 /usr/local/apache。本安装支持可装载模块
和标准的 MPM prefork。之后,可以使用如下命令启动 Apache 服务器:
[root@RHEL6-Server1 ~]# /usr/local/httpd/bin/apachectl start
WEB站点部署:
[root@RHEL6-Server1 ~]# apachectl -t Syntax OK [root@RHEL6-Server1 ~]# cat /usr/local/httpd/htdocs/index.html <html><body><h1>It works!</h1></body></html> [root@RHEL6-Server1 ~]# service httpd stop; service httpd start 浏览器:http://192.168.200.211 [root@RHEL6-Server1 ~]# tail -f /usr/local/httpd/logs/access_log 192.168.200.1 - - [11/Aug/2015:23:06:12 +0800] "GET / HTTP/1.1" 200 45 192.168.200.1 - - [11/Aug/2015:23:06:12 +0800] "GET /favicon.ico HTTP/1.1" 404 209
全局配置参数:作用于整个web服务
ServerRoot: 服务目录,在httpd.conf中配置文件时,如果使用的相对路径,则认为是在服务根目录下
ServerAdmin: 管理员邮箱
User: 运行服务的用户身份 daemon
Group: 运行服务的组身份 daemon
ServerName: 网站服务器的域名
DocumentRoot: 网页文档的根目录
Listen: 监听的IP地址、端口号TCP 80
PidFile: 保存httpd进程PID号的文件
DirectoryIndex: 默认的索引页文件
ErrorLog: 错误日志文件的位置
CustomLog: 访问日志文件的位置
LogLevel: 记录日志的级别,默认为warn(警告)
Timeout: 网络连接超时,默认为300秒
KeepAlive: 是否保持连接,可选On或Off
MaxKeepAliveRequests: 每次连接最多请求文件数
KeepAliveTimeout: 保持连接状态时的超时时间
Include: 需要包含进来的其他配置文件
CharsetDefault: 设置默认的字符集编码
区域配置项:
<Directory /> 定义/ 区域的开始
Options FollowSymLinks 允许使用符号链接
AllowOverride None 不允许隐含控制文件中覆盖配置
Order deny,allow 定义访问控制应用顺序
Deny from all 禁止任何人访问
</Directory> 定义/ 区域的结束
网站访问情况统计:部署AWSTATS分析系统
下载地址:
http://mirrors.cnnic.cn/apache//httpd/httpd-2.2.31.tar.gz
http://jaist.dl.sourceforge.net/project/awstats/AWStats/7.3/awstats-7.3.zip
AWSTATS 通过 Perl 通过语言编写的一款开源日志分析系统,可以分析apache samba vsftpd IIS等日志,支持同时分析多个WEB站点,以网站名称来区分不同的站点
[root@RHEL6-Server1 ~]# unzip awstats-7.3.zip [root@RHEL6-Server1 ~]# mv awstats-7.3 /usr/local/awstats [root@RHEL6-Server1 ~]# cd /usr/local/awstats/tools/ [root@RHEL6-Server1 tools]# chmod +x awstats_configure.pl [root@RHEL6-Server1 tools]# ./awstats_configure.pl 输入站点主配置文件位置: /usr/local/httpd/conf/httpd.conf 将日志类型更改为,combined y 确认创建站点配置文件 y 指定目标网站名称 www.crushlinux.com 按照缺省,接受设置 回车 回车 回车
修改站点配置文件
[root@RHEL6-Server1 tools]# vim /etc/awstats/awstats.www.crushlinux.com.conf 51 LogFile="/usr/local/httpd/logs/access_log" [root@RHEL6-Server1 ~]# mkdir /var/lib/awstats
执行日志分析,并设置计划任务
[root@RHEL6-Server1 ~]# cd /usr/local/awstats/tools/ [root@RHEL6-Server1 tools]# chmod +x awstats_updateall.pl [root@RHEL6-Server1 tools]# ./awstats_updateall.pl now Running '"/usr/local/awstats/wwwroot/cgi-bin/awstats.pl" -update -config=www.crushlinux.com -configdir="/etc/awstats"' to update config www.crushlinux.com Create/Update database for config "/etc/awstats/awstats.www.crushlinux.com.conf" by AWStats version 7.3 (build 20140126) From data in log file "/usr/local/httpd/logs/access_log"... Phase 1 : First bypass old records, searching new record... Searching new records from beginning of log file... Jumped lines in file: 0 Parsed lines in file: 4 Found 0 dropped records, Found 0 comments, Found 0 blank records, Found 4 corrupted records, Found 0 old records, Found 0 new qualified records. [root@RHEL6-Server1 tools]# crontab -e */1 * * * * /usr/local/awstats/tools/awstats_updateall.pl now [root@RHEL6-Server1 tools]# service crond restart [root@RHEL6-Server1 tools]# chkconfig --level 35 crond on 浏览器:http://192.168.200.211/awstats/awstats.pl?config=www.crushlinux.com [root@RHEL6-Server1 tools]# vi /usr/local/httpd/htdocs/awb.html <html> <head> <meta http-equiv=refresh content="0; http://192.168.200.211/awstats/awstats.pl?config=www.crushlinux.com"> </head> <body></body> </html> [root@RHEL6-Server1 tools]# /etc/init.d/httpd stop [root@RHEL6-Server1 tools]# /etc/init.d/httpd start
Apache网站服务源码安装与站点部署的更多相关文章
- Linux 系统安装配置PHP服务(源码安装)
简介: PHP(外文名:PHP: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言.语法吸收了C语言.Java和Perl的特点,利于学习,使用广泛,主要 ...
- Linux下MySQL、Apache、PHP源码安装全程实录(CentOS 6.4)
转自http://www.zjmainstay.cn/lamp-config 本文记录了我自己配置LAMP的全过程,借此记录一下,同时希望能够帮助一下需要帮助的LINUX新人,跟我一起学习,一起进步. ...
- linux 系统安装配置 zabbix服务(源码安装)
简介: zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案. zabbix能监视各种网络参数,保证服务器系统的安全运营:并提供灵活的通知机制以让系统管理员快速定 ...
- linux应用之Lamp(apache+mysql+php)的源码安装(centos)
Linux+Apache+Mysql+Php源码安装 一.安装环境: 系统:Centos6.5x64 Apache: httpd-2.4.10.tar.gz Mysql: mysql-5.6.20-l ...
- linux下源码安装apache服务
1.搭建静态网站是,我们只需要搭建apache服务即可满足要求. 例如:如果我再客户端游览器输入地址,他会找到192.168.1.100这个服务器,然后根据端口会找到apache服务器.apache他 ...
- 烂泥:源码安装apache
本文由秀依林枫提供友情赞助,首发于烂泥行天下. 最近要开始学习nagios监控方面的知识了,但是nagios与apache结合的比较紧密,所以本篇文章就先把apache的源码安装学习下. 我们现在分以 ...
- CentOS 6.3下源码安装LAMP(Linux+Apache+Mysql+Php)环境【转载】
本文转载自 园友David_Tang的博客,如有侵权请联系本人及时删除,原文地址: http://www.cnblogs.com/mchina/archive/2012/11/28/2778779.h ...
- 烂泥:php5.6源码安装与apache集成
本文由秀依林枫提供友情赞助,首发于烂泥行天下. apache对php的支持是通过apache的mod_php5模块来支持的,这点与nginx不同.nginx是通过第三方的fastcgi处理器才可以对p ...
- 源码安装apache
目标:源码安装apache 依赖包:apr.apr-util和pcre.其中pcre正则库要先安装,apr和apr-util(已解压)可以复制到apache下的资源库srclib下. 安装pcre: ...
随机推荐
- VC++中解决“在查找预编译头使用时跳过”的方法
Visual C++ Concepts: Building a C/C++ ProgramCompiler Warning (level 1) C4627Error Message": sk ...
- 【G】开源的分布式部署解决方案文档 - 使用手册
G.系列导航 [G]开源的分布式部署解决方案 - 导航 已知问题 导航没有联动 因为权限只是做了基础的登录校验,考虑到后面导航要跟权限关联上暂时是写死的. 只有部分界面使用了Vue.js 因为刚开始没 ...
- c++学习笔记之继承篇
title: c++学习笔记之继承篇 date: 2017-03-26 16:36:33 tags: [c++,继承,public,virtual,private,protected] categor ...
- java的特点跨平台原理以及JDK的安装
终于开始了期待已久的java,了解java首先要了解下计算机语言的发展历史 机器语言--->汇编语言--->--->高级语言(面向过程的语言和面向对象的语言) 机器语言 每一个计算机 ...
- CDN内容分发网络
CDN的全称是Content Delivery Network,即内容分发网络,其设计思想是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快.更稳定. CDN系统是在网络 ...
- 无线接收信号强度(RSSI)那些事儿
本文由嵌入式企鹅圈原创团队成员黄鑫供稿. 本文所述的原理适用于所有无线传输技术,只是用蓝牙来举例.应该说,嵌入式企鹅圈更加偏重于嵌入式和物联网.安卓技术原理方面的知识分享和传播,其次才是实践,尽管很多 ...
- Git 远程分支的pull与push
Git 远程分支的pull与push 远程分支信息查看 git branch -r #查看远程分支 git branch -a #查看所有分支,本地和远程 git remote show [remot ...
- Knockout Mvc Compoment FrameSet
Knockout Mvc Compoment FrameSet 框架文件结构 01- 网站(表现层),mvc主要作用视图展示. 02- 模型(Model),主要作用承载视图数据结构,网站前后台 ...
- String 类的实现(5)String常用函数
2 #include<iostream> 3 #include<stdio.h> 4 #include<assert.h> 5 #include <iom ...
- 老李推荐:第4章3节《MonkeyRunner源码剖析》ADB协议及服务: ADB协议概览
老李推荐:第4章3节<MonkeyRunner源码剖析>ADB协议及服务: ADB协议概览 poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试, ...