LAMP架构之简单手工编译安装Apache

环境准备

由于是手工编译安装,我们需要下载源码包。

链接:https://pan.baidu.com/s/1vGVhSGKTfXmxwwwCqcdnLQ
提取码:jm93

centos7虚拟机一台

Apache简介

Apache起源

1.源于A Patchy Server,著名的开源Web服务软件

2.1995年时,发布Apache服务程序的1 .0版本

3.由Apache软件基金会(ASF) 负责维护

4.最新的名称为“Apache HTTP Server”

5.官方站点: htp://tpd.apache.org/

Apache主要特点

1.开放源代码、跨平台应用

2.支持多种网页编程语言

3.模块化设计、运行稳定、良好的安全性

Apache软件版本

1.X版

目前最高版本是1.3,运行稳定

向下兼容性较好,但缺乏- -些较新的功能

2.X版

目前最高版本是2.6

具有更多的功能特性

与1.X相比, 配置管理风格存在较大差异

编译安装httpd服务器

编译安装的优点

1.具有较大的自由度,功能可定制

2.可及时获得最新的软件版本

3.普遍适用于大多数L inux版本,便于移植使用

获取Apache服务器的源码包

http://httpd.apache.org/download.cgi

ps:我们可以从Apache的官网上去下载Apache的源码包,我就使用网盘里面的Apache源码包

手工编译安装编译Apache

1.给大家推荐一个好用的工具:winscp

这个工具和xftp的效果是一样的

下载地址为:

https://winscp.net/download/WinSCP-5.15.9-Setup.exe

直接点击“直接下载”

2.打开winscp连接到我们的虚拟机

在这里插入图片描述

然后点击“接受保存”
在这里插入图片描述

3.将我们需要的文件包直接从windows里面拖到linux里面

在这里插入图片描述

4.由于接下来我们是手工编译安装Apache,我们来看看虚拟机中是否安装了httpd服务

[root@localhost ~]# rpm -q httpd
未安装软件包 httpd 

5.接下来我们就是进入到的刚刚拖过来的包,并将里面的Apache所需要的安装包解压到/opt文件夹下。Apache需要apr包,apr-util包和httpd包

[root@localhost ~]# ls
anaconda-ks.cfg  initial-setup-ks.cfg  LAMP-C7  公共  模板  视频  图片  文档  下载  音乐  桌面
[root@localhost ~]# cd LAMP-C7/
[root@localhost LAMP-C7]# ls
apr-1.6.2.tar.gz       Discuz_X2.5_SC_UTF8.zip  LAMP-php5.6.txt      php-5.6.11.tar.bz2
apr-util-1.6.0.tar.gz  httpd-2.4.29.tar.bz2     mysql-5.6.26.tar.gz
[root@localhost LAMP-C7]# tar -zxvf apr-1.6.2.tar.gz -C /opt/   
apr-1.6.2/
apr-1.6.2/emacs-mode
apr-1.6.2/passwd/
apr-1.6.2/passwd/apr_getpass.c
apr-1.6.2/Makefile.win
apr-1.6.2/CMakeLists.txt
apr-1.6.2/poll/
apr-1.6.2/poll/os2/
......//为了方便看,我们这里就省略了
[root@localhost LAMP-C7]# tar -zxvf apr-util-1.6.0.tar.gz -C /opt
apr-util-1.6.0/
apr-util-1.6.0/LICENSE
apr-util-1.6.0/hooks/
apr-util-1.6.0/hooks/apr_hooks.c
apr-util-1.6.0/crypto/
apr-util-1.6.0/crypto/apr_crypto_nss.mak
apr-util-1.6.0/crypto/apr_crypto_nss.dep
apr-util-1.6.0/crypto/apr_crypto_nss.c
apr-util-1.6.0/crypto/getuuid.c
apr-util-1.6.0/crypto/apr_crypto_nss.dsp
apr-util-1.6.0/crypto/crypt_blowfish.c
apr-util-1.6.0/crypto/apr_crypto_openssl.c
apr-util-1.6.0/crypto/apr_siphash.c
......
[root@localhost LAMP-C7]# tar -jxvf httpd-2.4.29.tar.bz2 -C /opt/
httpd-2.4.29/modules/debugging/config.m4
httpd-2.4.29/modules/debugging/Makefile.in
httpd-2.4.29/modules/debugging/mod_bucketeer.c
httpd-2.4.29/modules/debugging/mod_bucketeer.dep
httpd-2.4.29/modules/debugging/mod_bucketeer.dsp
httpd-2.4.29/modules/debugging/mod_bucketeer.mak
httpd-2.4.29/modules/debugging/mod_dumpio.c
httpd-2.4.29/modules/debugging/mod_dumpio.dep
httpd-2.4.29/modules/debugging/mod_dumpio.dsp
httpd-2.4.29/modules/debugging/mod_dumpio.mak
httpd-2.4.29/modules/debugging/NWGNUmakefile
httpd-2.4.29/modules/debugging/NWGNUmodbucketeer
httpd-2.4.29/modules/debugging/NWGNUmoddumpio
......

6.去/opt目录下将apr包移动到httpd-2.4.29/srclib/apr、apr-util包移动到httpd-2.4.29/srclib/apr-util包下面

[root@localhost opt]# ls
apr-1.6.2  apr-util-1.6.0  duankou.txt  httpd-2.4.29  rh  system.sh
[root@localhost opt]# mv apr-1.6.2/ httpd-2.4.29/srclib/apr
[root@localhost opt]# mv apr-util-1.6.0/ httpd-2.4.29/srclib/apr-util
[root@localhost opt]# ls
duankou.txt  httpd-2.4.29  rh  system.sh

7.我们在编译前先安装必要的软件包

[root@localhost opt]# yum -y install gcc gcc-c++ pcre pcre-devel zlib-develexpat-devel

8.进入到httpd-2.4.29里面,开始进行源码编译

[root@localhost opt]# cd httpd-2.4.29/
[root@localhost httpd-2.4.29]# ./configure \
--prefix=/usr/local/httpd \
--enable-so \
--enable-rewrite \
--enable-charset-lite \
--enable-cgi
......
config.status: executing default commands
configure: summary of build options:

    Server Version: 2.4.29
    Install prefix: /usr/local/httpd
    C compiler:     gcc -std=gnu99
    CFLAGS:          -g -O2 -pthread  
    CPPFLAGS:        -DLINUX -D_REENTRANT -D_GNU_SOURCE  
    LDFLAGS:           
    LIBS:             
    C preprocessor: gcc -E

第一个难点就这样过去了

9.下一步我们用make && make install 进行编译安装

[root@localhost opt]# make && make install 
......
Installing configuration files
mkdir /usr/local/httpd/conf
mkdir /usr/local/httpd/conf/extra
mkdir /usr/local/httpd/conf/original
mkdir /usr/local/httpd/conf/original/extra
Installing HTML documents
mkdir /usr/local/httpd/htdocs
Installing error documents
mkdir /usr/local/httpd/error
Installing icons
mkdir /usr/local/httpd/icons
mkdir /usr/local/httpd/logs
Installing CGIs
mkdir /usr/local/httpd/cgi-bin
Installing header files
Installing build system files
Installing man pages and online manual
mkdir /usr/local/httpd/man
mkdir /usr/local/httpd/man/man1
mkdir /usr/local/httpd/man/man8
mkdir /usr/local/httpd/manual
make[1]: 离开目录“/opt/httpd-2.4.29”

无ERROR报错即表示成功。

10.优化Apache服务

[root@localhost opt]# cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd
//将httpd的启动文件复制到/etc/init.d/httpd
[root@localhost opt]# vi /etc/init.d/httpd
//编辑/etc/init.d/httpd文件
# chkconfig: 35 85 21  //35级别自动运行  第85个启动 第21个关闭
# description: Apache is a World Wide Web server
[root@localhost opt]# chkconfig --add httpd 
//将httpd加入到SERVICE管理器
[root@localhost opt]# vi /usr/local/httpd/conf/httpd.conf
ServerName www.yjsaaaaaa.com:80
Listen 192.168.73.133:80
#Listen 80
[root@localhost opt]# ln -s /usr/local/httpd/conf/httpd.conf /etc/
//创建软连接
[root@localhost opt]# ln -s /usr/local/httpd/bin/* /usr/local/bin/
//创建软连接
[root@localhost opt]# systemctl stop firewalld.service
//关闭防火墙
[root@localhost opt]# setenforce 0
//关闭增强型安全功能
[root@localhost opt]# httpd -t 
//检查httpd服务的语法
[root@localhost opt]# apachectl -t
//检查apachectl的语法
[root@localhost opt]# service httpd start
//启动httpd服务
[root@localhost opt]# netstat -anpt | grep 80
//过滤80端口

11.在主机的谷歌浏览器中输入192.168.73.133
在这里插入图片描述

总结

这只是LAMP架构的Apache部分,后续会有持续的更新。

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐