Apache 编译安装及源码上线
安装思路
- 配置下载源为华为:首先更换华为yum源
- 网址:https://mirrors.huaweicloud.com/
- 准备工作:因为之前装过Apache所以这里进行卸载
[root@heyihao ~]# yum remove httpd # 卸载Apache
[root@localhost ~]# mkdir /mnt/cdrom # 创建挂载分区
[root@localhost ~]# mount /dev/cdrom /mnt/cdrom # 将光盘挂载到创建好的分区下
[root@localhost ~]# df -Th # 查看光驱是否挂载成功
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root xfs 39G 1.9G 37G 5% /
devtmpfs devtmpfs 980M 0 980M 0% /dev
tmpfs tmpfs 992M 0 992M 0% /dev/shm
tmpfs tmpfs 992M 9.5M 982M 1% /run
tmpfs tmpfs 992M 0 992M 0% /sys/fs/cgroup
/dev/sda1 xfs 1014M 130M 885M 13% /boot
/dev/mapper/centos-home xfs 19G 33M 19G 1% /home
tmpfs tmpfs 199M 0 199M 0% /run/user/0
/dev/sr0 iso9660 4.2G 4.2G 0 100% /mnt/cdrom #查看光盘是否显示
[root@localhost ~]# cd /mnt/cdrom/ # 进入光驱
[root@localhost cdrom]# cd Packages/ # 进入Packages文件夹
[root@heyihao Packages]# ll | grep httpd # 查看 Apache安装包
-rw-rw-r--. 1 root root 2842792 4月 25 2018 httpd-2.4.6-80.el7.centos.x86_64.rpm
-rw-rw-r--. 1 root root 199964 4月 25 2018 httpd-devel-2.4.6-80.el7.centos.x86_64.rpm
-rw-rw-r--. 1 root root 1405244 4月 25 2018 httpd-manual-2.4.6-80.el7.centos.noarch.rpm
-rw-rw-r--. 1 root root 91472 4月 25 2018 httpd-tools-2.4.6-80.el7.centos.x86_64.rpm
[root@heyihao Packages]# rpm -ivh httpd-2.4.6-80.el7.centos.x86_64.rpm
错误:依赖检测失败:
httpd-tools = 2.4.6-80.el7.centos 被 httpd-2.4.6-80.el7.centos.x86_64 需要
# 直接安装发现报错需要解决依赖关系
[root@heyihao Packages]# rpm -ivh httpd-2.4.6-80.el7.centos.x86_64.rpm
错误:依赖检测失败:
httpd-tools = 2.4.6-80.el7.centos 被 httpd-2.4.6-80.el7.centos.x86_64 需要
[root@heyihao Packages]# rpm -ivh httpd-tools-2.4.6-80.el7.centos.x86_64.rpm
准备中... ################################# [100%]
软件包 httpd-tools-2.4.6-97.el7.centos.x86_64 (比 httpd-tools-2.4.6-80.el7.centos.x86_64 还要新) 已经安装
file /usr/bin/ab from install of httpd-tools-2.4.6-80.el7.centos.x86_64 conflicts with file from package httpd-tools-2.4.6-97.el7.centos.x86_64
file /usr/bin/htdbm from install of httpd-tools-2.4.6-80.el7.centos.x86_64 conflicts with file from package httpd-tools-2.4.6-97.el7.centos.x86_64
file /usr/bin/htdigest from install of httpd-tools-2.4.6-80.el7.centos.x86_64 conflicts with file from package httpd-tools-2.4.6-97.el7.centos.x86_64
file /usr/bin/htpasswd from install of httpd-tools-2.4.6-80.el7.centos.x86_64 conflicts with file from package httpd-tools-2.4.6-97.el7.centos.x86_64
file /usr/bin/httxt2dbm from install of httpd-tools-2.4.6-80.el7.centos.x86_64 conflicts with file from package httpd-tools-2.4.6-97.el7.centos.x86_64
file /usr/bin/logresolve from install of httpd-tools-2.4.6-80.el7.centos.x86_64 conflicts with file from package httpd-tools-2.4.6-97.el7.centos.x86_64
file /usr/share/man/man1/htpasswd.1.gz from install of httpd-tools-2.4.6-80.el7.centos.x86_64 conflicts with file from package httpd-tools-2.4.6-97.el7.centos.x86_64
#选择安装tools 发现还有依赖需要解决
[root@heyihao ~]# yum -y install lrzsz # 添加一个传送文件的程序
- 然后将我们准备好的 httpd-2.4.38.tar Apache安装包拉进Xshell
- Apache安装包可以在官网进行下载:https://www.apache.org/
[root@heyihao ~]# ll #查看一下桌面是否有 httpd-2.4.38.tar.gz
总用量 13932
-rw-------. 1 root root 1479 4月 14 23:33 anaconda-ks.cfg
-rw-r--r--. 1 root root 4963681 4月 20 15:28 Atlas-2.2.1.el6.x86_64.rpm
drwxrwxrwx. 2 500 500 4096 4月 15 12:53 cmatrix-1.2a
-rw-r--r--. 1 root root 74376 4月 1 2002 cmatrix-1.2a.tar.gz
drwxr-xr-x. 2 root root 6 4月 17 21:36 dir400
-rw-r--r--. 1 root root 9187294 4月 20 18:46 httpd-2.4.38.tar.gz # 检查后发现有
-rw-r--r--. 1 root root 25548 4月 7 2017 mysql57-community-release-el7-10.noarch.rpm
drwxr-xr-x. 2 root root 6 4月 17 22:22 公共
drwxr-xr-x. 2 root root 6 4月 17 22:22 模板
drwxr-xr-x. 2 root root 6 4月 17 22:22 视频
drwxr-xr-x. 2 root root 6 4月 17 22:22 图片
drwxr-xr-x. 2 root root 6 4月 17 22:22 文档
drwxr-xr-x. 2 root root 6 4月 17 22:22 下载
drwxr-xr-x. 2 root root 6 4月 17 22:22 音乐
drwxr-xr-x. 2 root root 6 4月 17 22:22 桌面
- 对压缩包进行解压缩
[root@heyihao ~]# tar xf httpd-2.4.38.tar.gz -C /usr/src #解压到自己熟悉的文件夹
[root@heyihao src]# ll #解压完成后查看一下
总用量 4
drwxr-xr-x. 2 root root 6 4月 11 2018 debug
drwxr-sr-x. 11 root dip 4096 1月 18 2019 httpd-2.4.38
drwxr-xr-x. 4 root root 70 4月 17 11:54 kernels
[root@heyihao src]# cd httpd-2.4.38/ #进入文件
[root@heyihao httpd-2.4.38]# ./configure #配置发现报错
checking for chosen layout... Apache
checking for working mkdir -p... yes
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking target system type... x86_64-pc-linux-gnu
configure:
configure: Configuring Apache Portable Runtime library...
configure:
checking for APR... no
configure: error: APR not found. Please read the documentation.#配置:错误:找不到APR 请阅读文档。
#工作环境中有很多问题直接将最后两行粘贴进百度
- 百度:Apache安装错误 error : APR not found解决办法
- 依次安装依赖包后进行配置 解决办法如下:
- 第一步:解决APR
[root@heyihao src]# wget http://archive.apache.org/dist/apr/apr-1.4.5.tar.gz #文件下载路径不要乱 路径为/usr/src
[root@heyihao src]# ll #下载完成后查看是否下载完成 完成后需要进行解压缩
总用量 976
-rw-r--r--. 1 root root 994320 2月 14 2012 apr-1.4.5.tar.gz
drwxr-xr-x. 2 root root 6 4月 11 2018 debug
drwxr-sr-x. 11 root dip 4096 4月 20 23:49 httpd-2.4.38
drwxr-xr-x. 4 root root 70 4月 17 11:54 kernels
[root@heyihao src]# tar xf apr-1.4.5.tar.gz #解压
[root@heyihao src]# ls
apr-1.4.5 apr-1.4.5.tar.gz debug httpd-2.4.38 kernels#检查解压结果
[root@heyihao src]# cd apr-1.4.5/ #进入解压后的路径
[root@heyihao apr-1.4.5]# ./configure --prefix=/usr/local/apr #进行配置 配置时指明安装路径
[root@heyihao apr-1.4.5]# echo $? #以上步骤完成了怎么确定成功使用命令 0表示成功
0
[root@heyihao apr-1.4.5]# make #编译
[root@heyihao apr-1.4.5]# echo $? #再次进行检查
0
[root@heyihao apr-1.4.5]# make install #安装
- 第二步:解决APR-util
[root@heyihao src]# wget http://archive.apache.org/dist/apr/apr-util-1.3.12.tar.gz
[root@heyihao src]# tar xf apr-util-1.3.12.tar.gz # 解压
[root@heyihao src]# cd apr-util-1.3.12/ #进入解压后的路径
[root@heyihao apr-util-1.3.12]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr # 安装及编译
[root@heyihao apr-util-1.3.12]# echo $? #安装过程中产生了错误所以我再次使用$?检查
0
[root@heyihao apr-util-1.3.12]# make && make install #编译和安装
- 第三步:解决pcre
注:一直没找到解决解压缩ZIP的办法所以采用了工具 winSCP
手动解压缩之后拉回桌面再移动文件至 /usr/src
[root@heyihao src]# wget http://jaist.dl.sourceforge.net/project/pcre/pcre/8.10/pcre-8.10.zip #下载
[root@heyihao src]# cd pcre-8.10/ #进入解压后的路径
[root@heyihao pcre-8.10]# ./configure --prefix=/usr/local/pcre #配置
[root@heyihao pcre-8.10]# ./configure --prefix=/usr/local/pcre
-bash: ./configure: 权限不够 # 提示权限不够 那么使用提权
[root@heyihao pcre-8.10]# chmod +x configure #提权 +可执行权利
[root@heyihao pcre-8.10]# ./configure --prefix=/usr/local/pcre #正常配置
[root@heyihao pcre-8.10]# make && make install #编译和安装
- 第四步:重新安装Apache
[root@heyihao src]# cd httpd-2.4.38/ # 进入Apache安装目录
[root@heyihao httpd-2.4.38]# ./configure --prefix=/usr/src/apache --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util/ --with-pcre=/usr/local/pcre #需要用--with参数指定我们刚才安装的依赖包位置
[root@heyihao httpd-2.4.38]# make && make install #编译和安装
- 第五步:启动Apache
[root@heyihao httpd-2.4.38]# ./httpd #启动Apache
httpd (pid 2025) already running #服务已启动
[root@heyihao ~]# systemctl disable firewalld #禁用防火墙
[root@heyihao ~]# systemctl stop firewalld #关闭防火墙
[root@heyihao ~]# setenforce 0 #临时关闭Selinux
[root@heyihao ~]# vi /etc/sysconfig/selinux #进入编辑器设置永久关闭Selinux
SELINUX=disabled #改为关闭
- 查看端口
[root@heyihao httpd-2.4.38]# ss -lnt #查看端口命令
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 *:111 *:*
LISTEN 0 5 192.168.122.1:53 *:*
LISTEN 0 128 *:22 *:*
LISTEN 0 128 127.0.0.1:631 *:*
LISTEN 0 100 127.0.0.1:25 *:*
LISTEN 0 128 127.0.0.1:6010 *:*
LISTEN 0 80 [::]:3306 # 80端口开启服务启动 [::]:*
LISTEN 0 128 [::]:111 [::]:*
LISTEN 0 128 [::]:80 [::]:*
LISTEN 0 128 [::]:22 [::]:*
LISTEN 0 128 [::1]:631 [::]:*
LISTEN 0 100 [::1]:25 [::]:*
LISTEN 0 128 [::1]:6010 [::]:*
如果不想编译安装可以直接使用yum 进行安装
[root@localhost ~]# yum -y install httpd # 直接执行 自己解决依赖
- 第六步:将准备好的 html 源码上传至服务器
[root@heyihao ~]# cd /usr/src/apache #进入Apache
[root@heyihao apache]# ls #查看当前目录下的文件夹
bin build cgi-bin conf error htdocs icons include logs man manual modules
[root@heyihao apache]# cd htdocs/ #进入htdocs文件夹
[root@heyihao htdocs]# rz -E #将准备好的网页解压包拉进Xshell的当前目录下
rz waiting to receive.
[root@heyihao htdocs]# ll #查看是否拉取源码成功
总用量 5908
-rw-r--r--. 1 root root 6049632 4月 21 18:06 hi.zip
[root@heyihao htdocs]# unzip hi.zip #解压源码
[root@heyihao htdocs]# ls #解压后查看
hi hi.zip
[root@heyihao htdocs]# cd hi #进入文件hi
[root@heyihao hi]# mv ./* ../ #移动当前文件夹所有文件到上一级目录
[root@heyihao hi]# cd ../ #进入上一级目录
[root@heyihao htdocs]# ls #查看文件hi
about.html css foodnews.html hi images js services.html ╨┬╜и╬─▒╛╬─╡╡.txt
contact.html foodnews2.html foodshow.html hi.zip index.html lianxi.html touming.html
[root@heyihao htdocs]# rm -rf hi #删除文件hi也可以不删
- 验证:使用浏览器进入网页查看是否上线源码成功