linux-centos7 最小化系统 -源码编译安装apache服务详细步骤

前言

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 [参数]

常用参数:在这里插入图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章