Linux学习-81-Apache安装过程

114 篇文章 11 订阅
17.9 Apache安装过程
  • Apache:作为LAMP架构的前端是一款功能强大,稳定性好的Web服务器程序,该服务器直接面向用户提供网站访问,发送网页,图片等文件内容。之前的名称就叫做 Apache,不过后来改名字叫做 httpd另外,Apache 就是 LAMP 环境中的“A”。前面做了这么多准备工作,就是为了正确安装 Apache+MYSQL+PHP,现在可以安装 Apache 了。安装步骤如下。

  • rpm -q 包名检查下系统有没有安装以下c/c++/源码编译器和支持类库,没有的使用yum -y install 包名来安装

#安装一下编译器,perl的接口开发包,用于支持网站解析HTML、XML文件
yum -y install \
gcc \
gcc-c++ \
make \
pcre-devel \
expat-devel \
perl
  1. 复制 apr 和 apr-util 库:这里是 Apache 2.4 自己的 Bug,我们必须手工复制 apr、apr-util 和 pcre 这三个库,才可以正确安装 Apache 2.4。
#这两个包先要解压缩,然后改名复制到指定位置
[root@CncLucZK ~]# cp -r /usr/local/src/apr-1.7.0  /usr/local/src/httpd-2.4.54/srclib/apr
[root@CncLucZK ~]# cp -r /usr/local/src/apr-util-1.6.1 /usr/local/src/httpd-2.4.54/srclib/apr-util

2.安装 pcre 源码包:pcre 是一个用 C 语言编写的正则表达式函数库,Apache 和 PHP 默认使用的就是 pcre 正则表达式规则。

#进入解压缩目录
[root@CncLucZK ~]# cd /usr/local/src/pcre-8.45
#编译前配置
[root@CncLucZK pcre-8.45]# ./configure
#编译
[root@CncLucZK pcre-8.45]# make
#编译安装
[root@CncLucZK pcre-8.45]# make install

3.进入 Apache 解压缩目录,编译前配置,编译和编译安装

#进入解压缩目录
[root@CncLucZK pcre-8.45]# cd /usr/local/src/httpd-2.4.54
#编译前配置 --指定Apache安装目录 --指定Apache配置文件保存目录 --使用捆绑APR/APR-Util 的副本 --以动态共享对象(DSO)方式编译
#--启用传输编码支持的模块 --根据用户的特别设定来生成失效和隐藏控制的HTTP头信息 --启动重写功能的模块
[root@CncLucZK httpd-2.4.54]# ./configure --prefix=/usr/local/apache2/ --sysconfdir=/usr/local/apache2/etc/ --with-included-apr --enable-so --enable-deflate=shared --enable-expires=shared --enable-rewrite-shared
#编译和编译安装
[root@CncLucZK httpd-2.4.54]# make
[root@CncLucZK httpd-2.4.54]# make install
  • 这里的 Apache 是使用动态方式编译的,也有静态方式编译,静态方式编译就是直接将 Apache 的模块放入 Apache 中,如果 Apache 需要调用这个模块,则直接调用即可。这种方法安装的 Apache 性能更好、速度更快,但是如果需要加载新的模块,则是需要重新编译和安装 Apache 的。

  • 如果采用动态的方式编译,则并没有直接把模块放入 Apache,而是把模块的所在位置放入了 Apache。如果 Apache 需要调用模块,则需要到指定位置自己查找,性能比静态方式稍差。但是如果需要加载新的模块,则不用重新安装 Apache,可以动态地加载新模块。更常用的编译方式是动态方式编译,所以在安装过程中我们采用动态方式编译。

5.启动Apache,并进行测试

#启动Apache
[root@CncLucZK httpd-2.4.54]# /usr/local/apache2/bin/apachectl start
#查看80端口,已经启动,说明Apache已经启动了
[root@CncLucZK httpd-2.4.54]# netstat -tlun |grep 80
tcp6       0      0 :::80                   :::*                    LISTEN  
#查看httpd进程打开的文件,说明启动的是源码包安装的apache服务,非rpm默认安装的apache服务
[root@CncLucZK httpd-2.4.54]# lsof -c httpd
COMMAND     PID   USER   FD      TYPE             DEVICE SIZE/OFF     NODE NAME
httpd   2994895   root  cwd       DIR              253,1     4096        2 /
httpd   2994895   root  rtd       DIR              253,1     4096        2 /
httpd   2994895   root  txt       REG              253,1  2864720  1707779 /usr/local/apache2/bin/httpd
httpd   2994895   root  mem       REG              253,1    73264   26808

  • 使用浏览器测试一下 Apache 服务器是否可以访问,只需在 URL(统一资源定位,就是地址栏)中输入“http://IP”即可
    在这里插入图片描述

  • 看到了“It works!”,则说明 Apache 服务器正常工作了。

  • 上面的文字还可以修改,配置文件在 /usr/local/apache2/htdocs/ 下

[root@CncLucZK local]# cd /usr/local/apache2/htdocs
[root@CncLucZK htdocs]# ll
total 4
-rw-r--r-- 1 root root 45 Jun 12  2007 index.html
[root@CncLucZK htdocs]# vi index.html
<html><body><h1>Hello Apache!</h1></body></html>		#wq保存退出

在这里插入图片描述

6.设置 Apache 开机自启动: Apache 每次开机都能正常启动,所以还要设置自启动,命令如下:

#在rc.local文件中加入Apache启动命令
[root@CncLucZK xinetd.d]# vi /etc/rc.d/rc.local
#!/bin/bash
# THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES
#
# It is highly advisable to create own systemd services or udev rules
# to run scripts during boot instead of using this file.
#
# In contrast to previous versions due to parallel execution during boot
# this script will NOT be run after all other services.
#
# Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure
# that this script will be executed during boot.

touch /var/lock/subsys/local
/etc/rc.d/init.d/bt start
/usr/local/apache2/bin/apachectl start
#加入源码包服务的标准启动命令,保存退出,源码包安装的apache服务就被设为自启动了
  • 让源码包安装的apache服务能被service命令管理启动
#优化配置文件路径,并把httpd服务的可执行程序文件放入路径环境变量的目录中便于系统识别
[root@CncLucZK apache2]# ln -s /usr/local/apache2/bin/*  /usr/local/bin/

[root@CncLucZK ~]# ln -s /usr/local/apache2/bin/apachectl /etc/init.d/apache
#service命令其实只是在/etc/init.d/目录中查找是否有服务的启动脚本,所以我们只需要做一个软链接,把源码包的启动脚本链接到/etc/init.d/目录中,就能被service命令所管理了。把软链接文件命名为apache,注意这不是RPM包默认安装的apache服务
[root@CncLucZK ~]# service apache restart
#虽然RPM包默认安装的apache服务被卸载了,但是service命令也能够生效
#检查语法
[root@CncLucZK ~]#httpd -t
Syntax OK

apache启动错误

AH00558: httpd: Could not reliably determine the server’s fully qualified domain name, using ::1. Set the ‘ServerName’ directive globally to suppress this message

解决方法:将 apache 的配置文件httpd.conf中的 ServerName 改成可用域名或如下配置,不要与已有的端口重复即可

ServerName localhost:80

在这里插入图片描述

然后在关闭apache后在启动使配置生效

[root@CncLucZK php]# service apache stop
[root@CncLucZK php]# service apache start
[root@CncLucZK php]# systemctl restart apache
[root@CncLucZK php]# systemctl status apache

在这里插入图片描述

  • 让源码包安装的apache服务能被chkconfig命令管理自启动
[root@CncLucZK ~]# vi /etc/init.d/apache
#修改源码包安装的apache服务的启动脚本(注意此文件是软链接,所以修改的还是源码包启动脚本)
#!/bin/sh
#
chkconfig: 35 86 76
#指定httpd脚本可以被chkconfig命令所管理
#格式是:chkconfig:运行级别 启动顺序 关闭顺序
#这里我们让apache服务在3和5级别中能被chkconfig命令所管理,启动顺序是S86,关闭顺序是K76
#(自定顺序,不要和系统中已有的启动顺序冲突)
description: source package apache
#说明,内容随意
#以上两元素必须加入,才能被chkconfig命令所识别 ...省略部分输出...
[root@CncLucZK ~]# chkconfig --add apache
#让chkconfig命令能够管理源码包安装的apache服务
[root@CncLucZK ~]# chkconfig --list | grep apache
apache 0:关闭 1:关闭 2:关闭 3:关闭 4:关闭 5:关闭 6:关闭
#RPM包默认安装的apache服务被删除了,但是chkconfig命令可以管理源码包安装的tapache服务
下一篇:Linux学习-82-ncurses和Openssl安装过程
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值