Linux学习-81-Apache安装过程

news2024/11/26 10:23:40

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安装过程

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/83857.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何将Unity开发的AR程序编译到IPad/iPhone上真机运行

如何将Unity项目编译成iOS app&#xff0c;并在ipad或者iphone上真机运行呢&#xff1f;大体步骤分为三步&#xff1a; 使用Unity生成 .xcodeproj 文件使用XCode将AR APP编译到IPad/iPhone在真机上设置开发者模式和信任开发者 我的环境&#xff1a; 使用MacBook Pro 进行开发…

分布式操作系统 - 7.分布式一致性与复制管理

文章目录1.一致性与复制1.1 对象复制问题&#xff08;1&#xff09;单副本对象的同步控制&#xff08;2&#xff09;单副本同步控制方法&#xff08;3&#xff09;多副本对象的同步控制方法1.2 支持伸缩性的复制技术2.以数据为中心的一致性模型2.1 分布式数据仓&#xff08;dat…

Redis框架(五):大众点评项目 商品目录 添加Redis缓存

大众点评项目 商品目录 添加Redis缓存需求&#xff1a;基于Redis查询商品信息业务实现给商品添加缓存给店铺类型添加缓存总结和业务流程SpringCloud章节复习已经过去&#xff0c;新的章节Redis开始了&#xff0c;这个章节中将会回顾Redis实战项目 大众点评 主要依照以下几个原则…

Vue Demi是如何让你的库同时支持Vue2和Vue3的

Vue Demi是什么 如果你想开发一个同时支持Vue2和Vue3的库可能想到以下两种方式&#xff1a; 1.创建两个分支&#xff0c;分别支持Vue2和Vue3 2.只使用Vue2和Vue3都支持的API 这两种方式都有缺点&#xff0c;第一种很麻烦&#xff0c;第二种无法使用Vue3新增的组合式 API&am…

【Redis】Redis跳表与实现源码解析(Redis专栏启动)

&#x1f4eb;作者简介&#xff1a;小明java问道之路&#xff0c;专注于研究 Java/ Liunx内核/ C及汇编/计算机底层原理/源码&#xff0c;就职于大型金融公司后端高级工程师&#xff0c;擅长交易领域的高安全/可用/并发/性能的架构设计与演进、系统优化与稳定性建设。 &#x1…

Tomcat下载和安装

下载 Tomcat官网网址 我选择的是8&#xff0c;根据自己需要选择不同版本 选择64位下载 下载有点慢&#xff0c;等一会儿就行 安装 首先确认安装了JDK&#xff1a;命令行窗口输入java -version 配置Tomcat环境变量 配完之后验证是否成功。 winR->cmd->输入startup.bat…

什么是社交新零售?社交新零售的底层商业又是逻辑是什么?

一千个品牌商心中&#xff0c;有一千个新零售——自从马云2016年10月提出新零售的概念后&#xff0c;电商平台、传统商超、电商品牌、线下品牌&#xff0c;汹涌而至&#xff0c;都想搭上“新零售快车”。 新零售模式是依靠于大数据的开发应用&#xff0c;国内新零售模式发展多年…

Node.js快速入门

一、简介 1、什么是Node.js 简单的说 Node.js 就是运行在服务端的 JavaScript。 Node.js是一个事件驱动I/O服务端JavaScript环境&#xff0c;基于Google的V8引擎&#xff0c;V8引擎执行Javascript的速度非常快&#xff0c;性能非常好。 2、Node.js有什么用 如果你是一个前端程序…

【有料c++题目周刊 | 第一期】希腊诸神

文章目录第一题&#xff1a;珀耳修斯点金题目描述输入描述输入示例输出描述输出示例解题思路&C题解第二题&#xff1a;女神赫拉题目描述输入描述输入示例输出描述输出示例解题思路&C题解第一题&#xff1a;珀耳修斯点金 题目描述 某希腊神话故事中&#xff0c;有一个…

物联网通信技术|课堂笔记week2-2|9月7日·21日

sudo ifconfig bridge101 hw ether 9e:3e:53:38:45:66 目录 Linux网络管理命令 (1)route (2)ip (3)netstat (4)ping ​​​​​​两台电脑连起来后ping不通? (5)telnet (6)ssh (7)wget Linux网络管理命令 (1)route 路由为互联网的中转站 静态路由 动态路由 rout…

Go代码审计学习(一)

文章目录Vulnerability-goapp/assets// 根目录/login/new/top/profile/profile/edit/upload/post /timeline/timeline/searchpost/adminconfirm /adminlogin /adminusersCSRF网上有关Go的代码审计好少哇&#xff0c;能找到的文章也不多&#xff0c;害&#xff0c;没办法也得学 …

网络协议—应用层的HTTP协议

URL&#xff0c;叫作统一资源定位符。之所以叫统一&#xff0c;是因为它是有格式的。HTTP 称为协议&#xff0c;www.163.com 是一个域名&#xff0c;表示互联网上的一个位置。正是因为这个东西是统一的&#xff0c;所以当你把这样一个字符串输入到浏览器的框里的时候&#xff0…

软件测试是要学习什么技能?

推荐阅读&#xff1a; 2022年简历石沉大海&#xff0c;软件测试行业当前找工作有多难&#xff1f; [内部资源] 想拿年薪30W的软件测试人员&#xff0c;这份资料必须领取~ 在确定软件开发可行的状态下&#xff0c;对软件是要实现的各个功能做到详细分析。要求分析阶段是一个很…

两起并购!深兰科技完成自动驾驶新能源车产业生态链布局

近日&#xff0c;深兰科技集团全资控股的熊猫汽车(上海)有限公司分别与一汽凌源、湖南加立减新能源科技正式签约&#xff0c;完成了对这两家公司的并购&#xff0c;为企业自动驾驶新能源汽车产业生态链的建设蓝图添上了浓重的一笔。 此次被深兰科技并购的一汽凌源汽车制造有限公…

Java二维数组拓展练习

例 1 对角线输出&#xff1a; 已知一个n*n的矩阵&#xff08;n<20&#xff09;&#xff0c;把矩阵二条对角线上的元素值加上10&#xff0c;然后输出这两条新对角线上的所有元素之和。 注意当n为奇数时两条对角线交叉的那个元素改变时只需要改变一次&#xff0c;累加的时候…

46.for循环嵌套之九九乘法表

46.for循环嵌套之九九乘法表 文章目录46.for循环嵌套之九九乘法表1. 目标任务2. 完成第1行输出2. 分析前3行规律3. 编写第1行代码4. 编写前2行代码5. 调整输出格式6. 完成总代码1. 目标任务 本节的任务是利用for循环嵌套编写九九乘法表。 1*11 1*22 2*24 1*33 2*36 3*39 1…

语音识别之语音激活(VAD)检测(一)

导读 语音激活检测(Vioce Activation Detection)简称VAD&#xff0c;用来检测语音信号是否存在。VAD技术在语音领域中应用非常的广泛&#xff0c;在语音识别中我们可以对长语音通过VAD来检测出语音信号的空隙&#xff0c;通过这个空隙来分割语音&#xff0c;将长语音切分成短语…

正大国际期货:如何摆脱炒黄金期货被套单?

投资失败无非两点&#xff1a;一是自身原因&#xff0c;自己没有经验&#xff0c;盲目的操作肯定会造成亏损&#xff1b;二是指导老师的实力问题&#xff0c;指导老师对行情的方向把握不准&#xff0c;经常喊反弹&#xff0c;造成你的亏损。想要走得快&#xff0c;就独自上路&a…

Python每日一练 09——多文件操作

Python每日一练 09——多文件操作 文章目录Python每日一练 09——多文件操作一、单文件拆分为多个文件二、多文件合并为单文件1、获取数据文件名2、获取股票名列表3、读单支股票数据4、读多支股票数据5、多文件中数据合并到一个文件一、单文件拆分为多个文件 我们写一个txt文件…

数字图像处理(入门篇)九 图像数据预处理之滤波

目录 1 模板运算 &#xff08;1&#xff09;模板卷积 &#xff08;2&#xff09;模板排序 2 均值滤波 &#xff08;1&#xff09;代码 &#xff08;2&#xff09;结果图 3 高斯滤波 &#xff08;1&#xff09;代码 &#xff08;2&#xff09;结果图 4 中值滤波 &#…