由于是手工编译安装,我们需要下载源码包。
链接:https://pan.baidu.com/s/1vGVhSGKTfXmxwwwCqcdnLQ
提取码:jm93
centos7虚拟机一台
1.源于A Patchy Server,著名的开源Web服务软件
2.1995年时,发布Apache服务程序的1 .0版本
3.由Apache软件基金会(ASF) 负责维护
4.最新的名称为“Apache HTTP Server”
5.官方站点: htp://tpd.apache.org/
1.开放源代码、跨平台应用
2.支持多种网页编程语言
3.模块化设计、运行稳定、良好的安全性
1.X版
目前最高版本是1.3,运行稳定
向下兼容性较好,但缺乏- -些较新的功能
2.X版
目前最高版本是2.6
具有更多的功能特性
与1.X相比, 配置管理风格存在较大差异
1.具有较大的自由度,功能可定制
2.可及时获得最新的软件版本
3.普遍适用于大多数L inux版本,便于移植使用
http://httpd.apache.org/download.cgi
ps:我们可以从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端口
这只是LAMP架构的Apache部分,后续会有持续的更新。