文章目录
- 前言
- 一:安装apache步骤详解
- 1.1:安装准备环境 :centos7.6 最小化安装版
- 1.2 首先安装编译相关软件
- 1.3: 然后准备解压相关源码包
- 1.4 源码编译安装 expat 软件
- 1.5 源码编译安装apache软件
- 二.配置相关参数
- 2.1 . 将apache软件交给service管理
- 2.2 编辑http主页内容
- 2.3 本地测试
- 三 .扩展知识
- 3.1 .apache 常用编译参数:
- 3.2 .用于apr的configure脚本的选项:
- .3.3用于apr-util的configure脚本的选项:
- 3.4 .netstat命令介绍
前言
Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。
一:安装apache步骤详解
1.1:安装准备环境 :centos7.6 最小化安装版
源码包:apr-1.7.0.tar.bz2 apr-util-1.6.1.tar.gz expat-2.2.9.tar.gz httpd-2.4.43.tar.bz2
1.2 首先安装编译相关软件
Yum install -y gcc gcc -c++ automake autoconf libtool make bzip2 pcre pcre-devel zlib-devel net-tools
1.3: 然后准备解压相关源码包
将apr包和apr-util 软件包解压到httpd-2.4.4.43/srclib 下
[root@ shanan abc]# ls
apr-1.7.0.tar.bz2 expat-2.2.9 httpd-2.4.43
apr-util-1.6.1.tar.gz expat-2.2.9.tar.gz httpd-2.4.43.tar.bz2
tar bxvf apr-util-1.6.1.tar.gz -C /opt/abc/httpd-2.4.43/srclib/
tar jxvf apr-1.7.0.tar.bz2 -C /opt/abc/httpd-2.4.43/srclib/
[root@ shanan abc]# cd httpd-2.4.43
[root@ shanan httpd-2.4.43]# cd srclib/
[root@ shanan srclib]# ls
apr-1.7.0 apr-util-1.6.1 Makefile.in
将文件重命名
[root@ shanan srclib]# mv apr-1.7.0 apr
[root@ shanan srclib]# mv apr-util-1.6.1 apr-util
[root@ shanan srclib]# ls
apr apr-util Makefile.in
[root@ shanan srclib]# cd ..
1.4 源码编译安装 expat 软件
./configure --prefix=/usr/local/expat
make
make install
1.5 源码编译安装apache软件
[root@ shanan httpd-2.4.43]# ./configure \
-- prefix=/usr/local/ apache \ //指定安装路径
--enable-so \ //开启核心功能模块
--enable- rewrite \ //开启重写功能,防盗链使用
--enable- mods- - shared=most \ //开启共享模块
--with-mpm-worker \ //开启工作模式
--disable-cgid \ //禁止用一个外部 CGI 守护进程执行CGI脚本
--disable-cgi \ //禁止编译 CGI 版本的 PHP
--with-expat=/usr/local/expat //指明依赖的expat所在的目录
回车
...................... //省略若干
Server Version: 2.4.43
Install prefix: /usr/local/apache
C compiler: gcc -std=gnu99
CFLAGS: -g -O2 -pthread
CPPFLAGS: -DLINUX -D_REENTRANT -D_GNU_SOURCE
LDFLAGS:
LIBS:
C preprocessor: gcc -E
然后 Make
然后 Make install
Installing build system files
Installing man pages and online manual
mkdir /usr/local/apache/man
mkdir /usr/local/apache/man/man1
mkdir /usr/local/apache/man/man8
mkdir /usr/local/apache/manual
make[1]: 离开目录“/opt/abc/httpd-2.4.43”
[root@ shanan httpd-2.4.43]# 源码编译安装完成
二.配置相关参数
2.1 . 将apache软件交给service管理
[root@ shanan httpd-2.4.43]# grep -v "#" /usr/local/apache/bin/apachectl > /etc/init.d/httpd
[root@ shanan /]# vi /etc/init.d/httpd //修改配置文件
增加以下3行内容
#!/bin/sh
#chkconfig: 2345 10 90
#description: Activates/Deactivates Apache Web Server
[root@ shanan /]# chmod +x /etc/init.d/httpd 增加执行权限
[root@ shanan /]# chkconfig --add httpd //将httpd 加入linux服务列表
[root@ shanan /]# chkconfig --list httpd //查看linux服务列表
注:该输出结果只显示 SysV 服务,并不包含
原生 systemd 服务。SysV 配置数据
可能被原生 systemd 配置覆盖。
要列出 systemd 服务,请执行 'systemctl list-unit-files'。
查看在具体 target 启用的服务请执行
'systemctl list-dependencies [target]'。
httpd 0:关 1:关 2:开 3:开 4:开 5:开 6:关
[root@ shanan /]# chkconfig --level 35 httpd on //在模式3和模式5下开启HTTP服务
[root@ shanan /]# ln -s /usr/local/apache/conf/httpd.conf /etc/httpd.conf //给httpd 配置文件 建立软连接到/etc方便管理
vi /etc/httpd.conf //编辑httpd配置文件
Listen 192.168.100.55:80 // 监听本主机80端口
ServerName www.example.com:80 //设置域名
[root@ shanan init.d]# service httpd start //启动httpd 服务
[root@ shanan /]# netstat -ntap | grep 80 //扫描查看80 端口
tcp 0 0 192.168.100.55:80 0.0.0.0:* LISTEN 8213
2.2 编辑http主页内容
[root@ shanan htdocs]# ls
index.html
[root@ shanan htdocs]# pwd
/usr/local/apache/htdocs //配置文件路径
[root@ shanan htdocs]# vi index.html // 修改如下
<html><body><h1>静夜思</h1></body></html>
<p>窗前明月光</p>
<br>疑是地上霜 <br/>
<br>举头忘明月<br/>
<span>低头思故乡</span>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">:
~
~
[root@ shanan init.d]# systemctl stop firewalld //关闭防火墙
2.3 本地测试
三 .扩展知识
3.1 .apache 常用编译参数:
./configure //配置源代码树
–prefix=/usr/local/apache //体系无关文件的顶级安装目录PREFIX ,也就Apache的安装目录。
–enable-module=so //打开 so 模块,so 模块是用来提 DSO 支持的 apache 核心模块
–enable-deflate=shared //支持网页压缩
–enable-expires=shared //支持 HTTP 控制
–enable-rewrite=shared //支持 URL 重写
–enable-cache //支持缓存
–enable-file-cache //支持文件缓存
–enable-mem-cache //支持记忆缓存
–enable-disk-cache //支持磁盘缓存
–enable-static-support //支持静态连接(默认为动态连接)
–enable-static-Linux/1727.html’ target=’_blank’>htpasswd //使用静态连接编译 htpasswd – 管理用于基本认证的用户文件
–enable-static-htdigest //使用静态连接编译 htdigest – 管理用于摘要认证的用户文件
–enable-static-rotatelogs //使用静态连接编译 rotatelogs – 滚动 Apache 日志的管道日志程序
–enable-static-logresolve //使用静态连接编译 logresolve – 解析 Apache 日志中的IP地址为主机名
–enable-static-htdbm //使用静态连接编译 htdbm – 操作 DBM 密码数据库
–enable-static-ab //使用静态连接编译 ab – Apache HTTP 服务器性能测试工具
./configure --prefix=/usr/local/apache //指定安装路径
–enable-headers // 文件头信息改写,压缩功能需要
–enable-modules=most //开启共享模块
–enable-so //开启核心功能模块
–with-mpm=worker //开启工作模式
–enable-deflate //压缩功能,网页可以达到40%的压缩,节省带宽成本,但会对cpu压力有一点提高
–enable-rewrite //开启重写功能,防盗链所使用
–enable-proxy //(代理功能有必要,因为可以处理跨域问题以及可以分离一些其它的请求处理)
–enable-static-checkgid //使用静态连接编译 checkgid
–disable-cgid //禁止用一个外部 CGI 守护进程执行CGI脚本
–disable-cgi //禁止编译 CGI 版本的 PHP
–disable-userdir //禁止用户从自己的主目录中提供页面
–with-mpm=worker //让apache以worker方式运行
–enable-authn-dbm=shared //对动态数据库进行操作。Rewrite时需要。
–enable-deflate //压缩功能,网页可以达到40%的压缩,节省带宽成本,但会对cpu压力有一点提高
–enable-rewrite //开启重写功能,防盗链所使用
–enable-proxy //(代理功能有必要,因为可以处理跨域问题以及可以分离一些其它的请求处理)
–with-zlib 支持zlib压缩
–with-pcre 支持正则表达式
–with-apr=/usr/local/apr 指明依赖的apr所在目录
–with-apr-util=/usr/local/apr-util/ 指明依赖的apr-util所在的目录
–enable-mpms-shared=all 以共享方式编译的模块
–with-mpm=prefork 指明httpd的工作方式为prefork
–with-expat=/usr/local/expat 指明依赖的expat所在的目录
3.2 .用于apr的configure脚本的选项:
可选特性:
–enable-experimental-libtool //启用试验性质的自定义libtool
–disable-libtool-lock //取消锁定(可能导致并行编译崩溃)
–enable-debug //启用调试编译,仅供开发人员使用。
–enable-maintainer-mode //打开调试和编译时警告,仅供开发人员使用。
–enable-profile //打开编译profiling(GCC)
–enable-pool-debug[=yes|no|verbose|verbose-alloc|lifetime|owner|all] //打开pools调试
–enable-malloc-debug //打开BeOS平台上的malloc_debug
–disable-lfs //在32-bit平台上禁用大文件支持(large file support)
–enable-nonportable-atomics //若只打算在486以上的CPU上运行Apache ,那么使用该选项可以启用更加高效的基于互斥执行的原子操作。
–enable-threads //启用线程支持,在线程型的MPM上必须打开它
–disable-threads //禁用线程支持,如果不使用线程化的MPM ,可以关闭它以减少系统开销。
–disable-dso //禁用DSO支持
–enable-other-child //启用可靠子进程支持
–disable-ipv6 //禁用IPv6支持
可选的额外程序包:
–with-gnu-ld //指定C编译器使用 GNU ld
–with-pic //只使用 PIC/non-PIC 对象[默认为两者都使用]
–with-tags[=TAGS] //包含额外的配置
–with-installbuilddir=DIR //指定APR编译文件的存放位置(默认值为:’${datadir}/build’)
–without-libtool //禁止使用libtool连接库文件
–with-efence[=DIR] //指定Electric Fence的安装目录
–with-sendfile //强制使用sendfile(译者注:Linux2.4/2.6内核都支持)
–with-egd[=DIR] //使用EDG兼容的socket
–with-devrandom[=DEV] //指定随机设备[默认为:/dev/random]
.3.3用于apr-util的configure脚本的选项:
可选的额外程序包:
–with-apr=PATH //指定APR的安装目录(–prefix选项值或apr-config的路径)
–with-ldap-include=PATH //ldap包含文件目录(带结尾斜线)
–with-ldap-lib=PATH //ldap库文件路径
–with-ldap=library //使用的ldap库
–with-dbm=DBM //选择使用的DBM类型DBM={sdbm,gdbm,ndbm,db,db1,db185,db2,db3,db4,db41,db42,db43,db44}
–with-gdbm=PATH //指定GDBM的位置
–with-ndbm=PATH //指定NDBM的位置
–with-berkeley-db=PATH //指定Berkeley DB的位置
–with-pgsql=PATH //指定PostgreSQL的位置
–with-mysql=PATH //参看INSTALL.MySQL文件的内容
–with-sqlite3=PATH //指定sqlite3的位置
–with-sqlite2=PATH //指定sqlite2的位置
–with-expat=PATH //指定Expat的位置或’builtin’
–with-iconv=PATH //iconv的安装目录
3.4 .netstat命令介绍
netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Statistics),masquerade 连接,多播成员 (Multicast Memberships) 等等。
从整体上看,netstat的输出结果可以分为两个部分:一个是Active Internet connections,称为有源TCP连接,其中”Recv-Q”和”Send-Q”指%0A的是接收队列和发送队列。这些数字一般都应该是0。如果不是则表示软件包正在队列中堆积。这种情况只能在非常少的情况见到;另一个是Active UNIX domain sockets,称为有源Unix域套接口(和网络套接字一样,但是只能用于本机通信,性能可以提高一倍)。
语法格式:netstat [参数]
常用参数: