源码编译构建LAMP

LAMP

LAMP是一个常见的开发平台和运行环境,主要用于支持动态网站和Web应用程序的开发和部署

  • L:Linux,指操作系统,通常是Linux操作系统
  • A:Apache,指Web服务器软件,常用于托管网站。
  • M:MySQL,指关系型数据库管理系统,用于存储和管理数据。
  • P:PHP,指编程语言,用于开发动态网页内容。

Apache

起源

  • 源于A Patchy Server,著名的开源Web服务软件
  • 1995年时,发布Apache服务程序的1.0版本
  • 由Apache软件基金会 (ASF) 负责维护
  • 最新的名称为“Apache  HTTP Server”

主要特点

  • 开放源代码、跨平台应用
  • 支持多种网页编程语言
  • 模块化设计、运行稳定、良好的安全性

软件版本

  • 1.X
    • 目前最高版本是1.3,运行稳定
    • 向下兼容性较好,但缺乏一些较新的功能
  • 2.X
    • 目前最高版本是2.4
    • 具有更多的功能特性
    • 与1.X相比,配置管理风格存在较大差异

编译安装httpd服务器

编译安装的优点

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

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

  • 普遍适用于大多数Linux版本,便于移植使用

  • 获取Apache服务器的源码包:http://httpd.apache.org/download.cgi

操作步骤

准备工作

为了方便实验,关闭防火墙 systemctl stop firewalld 并关闭内核安全机制 setenforce 0 使用 rpm -qa httpd 查看系统中是否安装了httpd,如果有的话需要卸载安装源码包所需的开发环境 yum -y install apr-util-devel pcre-devel gcc*

安装源码软件包

将httpd的源码软件包拖到Xshel中
使用 tar zxvf httpd-2.4.25.tar.gz 命令解压,然后cd进入解压的目录

配置安装

进入解压的目录中,使用ls命令可以看到 ./configure 文件,该文件是一个脚本,通过该脚本指定该软件包要安装的功能
通过./configure脚本指定启用的功能

  • --prefix:指定安装的路径前缀;在配置文件中引用路径时,可以省去安装路径的前级,而使用相对路径
  • --enable-so:启用DSO (dynamic shared object;动态共享对象),允许在运行时动态地加载和卸载模块,而无需重新启动服务。
  • --enable-rewrite:开启地址重写功能;URL重写允许你根据规则动态地改变请求的URL,这对于实现搜索引擎友好的URL、重定向、访问控制等非常有用。
  • --enable-charset-lite:启用字符集支持,以便支持使用各种字符集编码的网页
  • --enable-cgi:启用CGI(通用网关接口)脚本程序支持,允许Web服务器运行外部程序来形成动态Web内容。

编译

使用 make 命令执行编译操作,编译的结果是把源代码软件包的代码编译为二进制文件

安装

使用 make install 命令执行安装操作,到这一步就对源代码软件包安装结束了

优化执行路径

使用 In-s /usr/local/httpd/bin/*/usr/localbin/ 命令创建软链接,使得可以在终端里直接使用命令
而不需要加路径
使用 httpd-v 测试软件包安装是否正常

添加服务

此时可以使用apachectl相关命令控制服务的状态,但是会提示没有设置服务名称

使用 vim /usr/local/httpd/conf/httpd.conf 命令在该文件的第200行将服务器名称取消注释

保存并退出,再使用apachectl命令就不会提示了

守护进程

通过systemd管理httpd,使其变成系统服务和守护进程

cd到服务目录,创建httpd的服务文件并添加内容

使用 httpd-t 命令测试配置文件是否有语法错误 

使用 systemctl daemon-reload 命令重载-下systemd
此时就可以使用systemctl命令来管理httpd服务的状态了

配置httpd

httpd默认存放网页的位置:/usr/ocalhttpd/htdocs/

如果修改该路径下默认的index.html文件内测试的文本为中文,再在浏览器中访问就变成中文乱码,就需要修改编码格式 

通过添加head头部标签,在头部标签内通过meta标签的charset属性,声明编码格式为utf-8修改index.html文件内容如下
不需要重启服务,直接刷新浏览器即可,此时就显示正常了

查看 Web 站点的访问情况 


虚拟主机

单台主机运行多个站点的技术 

类型

  1. 基于ip的虚拟主机 (需要多个ip)
  2. 基于端口的虚拟主机 (一个ip,绑定多个端口)
  3. 基于域名的虚拟主机 (最常用)

部署基于域名的虚拟主机

开启第二台虚拟机 ( 192.168.10.102 ) 作为客户端

为虚拟主机提供域名解析(两个域名)

使用 vim /etc/hosts 命令修改hosts文件为一下内容

此时在客户端主机 (102) 使用curl命令访问刚刚写入的两个ip,都能访问到一样的网页内容了 

不同ip访问不同的内容

在服务端 (101) 创建两个ip对应的文件夹到指定位置 

再使用重定向创建两个ip对应的首页文件 

使用 vim /usr/local/httpd/conf/extra/httpd-vhosts.conf 命令修改虚拟主机的配置文件
改为以下内容 

再修改httpd的主配置文件:vim/usr/local//httpd/conf/httpd.conf

但是此时httpd服务并没有加载vhosts.conf文件 (虚拟主机配置文件),所以要在httpd的主配置文件中使用Include命令包含到当前文件中,相当于在Include语句中把要包含的代码复制粘贴了过来

通过Include命令也实现了httpd服务的模块化功能管理

在第483行将注释去掉 

 

部署基于IP地址的虚拟主机

 

 部署基于端口的虚拟主机


 

相关推荐

  1. 编译构建LAMP

    2024-07-10 10:18:03       27 阅读
  2. 编译构建LAMP

    2024-07-10 10:18:03       19 阅读
  3. 第2章 编译构建LAMP

    2024-07-10 10:18:03       18 阅读
  4. 编译安装LAMP

    2024-07-10 10:18:03       21 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-10 10:18:03       99 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-10 10:18:03       107 阅读
  3. 在Django里面运行非项目文件

    2024-07-10 10:18:03       90 阅读
  4. Python语言-面向对象

    2024-07-10 10:18:03       98 阅读

热门阅读

  1. SQL Server设置端口:跨平台指南

    2024-07-10 10:18:03       26 阅读
  2. 指定版本ceph-common安装

    2024-07-10 10:18:03       29 阅读
  3. 中科海讯 C++初级研发工程师笔试题目

    2024-07-10 10:18:03       36 阅读
  4. vue3的常用 Composition API有哪些?

    2024-07-10 10:18:03       26 阅读
  5. Linux系统基础命令行指令——Ubuntu

    2024-07-10 10:18:03       34 阅读
  6. 【Android高级UI】计算不规则图形面积

    2024-07-10 10:18:03       33 阅读
  7. Python库 - PyMC3

    2024-07-10 10:18:03       27 阅读
  8. C语言中关键字

    2024-07-10 10:18:03       36 阅读
  9. ios CCPlistFileWritter.m

    2024-07-10 10:18:03       30 阅读
  10. C#实现Winform程序右下角弹窗消息提示

    2024-07-10 10:18:03       28 阅读
  11. 【PyTorch单点知识】自动求导机制的原理与实践

    2024-07-10 10:18:03       30 阅读