**🏡作者主页:点击! **
👨💻****Linux高级管理专栏:点击!
⏰️创作时间:2024年5月31日14点20分
🀄️文章质量:96分
在Linux系统上编译和安装Apache HTTP Server是管理员和开发人员常用的一项技能。这种方法提供了更大的灵活性和控制权,允许你根据特定需求自定义配置和模块。通过从源代码编译安装Apache,可以确保使用最新的功能和修复,同时优化服务器性能和安全性。本文将详细介绍如何从源码包下载、解压、配置、编译和安装Apache HTTP Server,并进行基本配置以启动和运行一个Apache网站。
完成效果
↘️1.下载安装所需的包
缺失安装包之后 会导致后续安装出错
yum install -y gcc gcc-c++ make apr apr-devel apr-util-devel pcre pcre-devel
各个软件包的作用
- **
gcc
**:GNU Compiler Collection的C编译器。用于编译C语言程序。- **
gcc-c++
**:GNU Compiler Collection的C++编译器。用于编译C++语言程序。- **
make
**:一个构建工具,用于自动化编译软件程序的过程,主要根据Makefile
文件的指令进行编译。- **
apr
**:Apache Portable Runtime库,提供了一组跨平台的编程接口,用于实现高性能的服务器应用程序。- **
apr-devel
**:APR库的开发文件,包括头文件和静态库,供编写使用APR库的程序时使用。- **
apr-util-devel
**:APR Utility库的开发文件,提供了一些APR库的辅助功能和扩展功能。- **
pcre
**:Perl Compatible Regular Expressions库,提供了一套与Perl语言兼容的正则表达式功能。- **
pcre-devel
**:PCRE库的开发文件,包含头文件和静态库,供编写使用PCRE库的程序时使用。
下载vim和上传工具(你的电脑可能已经安装,再敲一编也没事)
🔙上传/解压安装包
上传文件(Apache的安装包)
- **
zxf
**:tar
命令的选项:- **z
**:使用gzip解压缩。- **x
**:提取文件。- **f
**:指定要处理的文件名(在这里是httpd-2.4.59.tar.gz
)。- **
httpd-2.4.59.tar.gz
**:要解压的tar.gz文件名。- **
-C /usr/src/
**:指定解压缩的目标目录(/usr/src/
)。-C
选项告诉tar
将文件解压到指定目录,而不是当前目录。
↕️2.编译安装软件
进入你解压后的目录 也就是/usr/src/httpd.... 可以TAB出来
./configure --prefix=/usr/local/httpd --enable-so --enable-rewrite --enablecharset-lite --enable-cgi && make && make install
命令解释
- **
./configure
**:这是一个配置脚本,用于检查系统环境并设置编译选项。它生成一个适合系统的Makefile文件。- **--prefix=/usr/local/httpd
**:指定安装路径。这里表示将软件安装到/usr/local/httpd
目录下。- **--enable-so
**:启用DSO(动态共享对象)支持,允许使用动态加载的模块。- **--enable-rewrite
**:启用URL重写模块(mod_rewrite),用于重写请求的URL。- **--enable-charset-lite
**:启用轻量级字符集转换支持。- **--enable-cgi
**:启用CGI(Common Gateway Interface)支持,允许运行CGI脚本。- **
&&
**:逻辑AND操作符,确保前一条命令成功执行后才执行下一条命令。- **
make
**:根据configure
生成的Makefile文件,编译源代码生成可执行文件和库。- **
make install
**:将编译生成的文件安装到指定的目录(--prefix
指定的路径)。
编译安装完成之后查看
[root@localhost httpd-2.4.59]# ls /usr/local/httpd/
bin cgi-bin error icons logs manual
build conf htdocs include man modules
创建软连接
ln /usr/local/httpd/bin/* /usr/local/bin/
这条命令用于创建符号链接,将
/usr/local/httpd/bin
目录下的所有文件链接到
/usr/local/bin
目录中。这样可以方便地从命令行调用这些可执行文件,而不必输入完整路径。
好处
- 方便使用:现在可以直接运行
apachectl
和httpd
等命令,而不需要指定完整路径
↔️查看httpd版本号
root@localhost ~]# httpd -v
Server version: Apache/2.4.59 (Unix)
Server built: May 31 2024 11:42:35
cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd
将
/usr/local/httpd/bin/apachectl
复制到
/etc/init.d/
目录并命名为
httpd
,是一种将Apache HTTP Server配置为系统服务的方式。这可以让你使用标准的服务管理命令来启动、停止和管理Apache HTTP Server。
↖️启动服务
[root@localhost ~] service httpd start
↗️编辑配置文件
[root@localhost ~] vim /usr/local/httpd/conf/httpd.conf
开启ServerName
[root@localhost ~] service httpd restart
↙️查看端口
[root@localhost ~] netstat -nultp | grep 80
tcp6 0 0 :::80 :::* LISTEN
19699/httpd
编辑网页文件(这里我随意写了个htmll测试使用)
[root@localhost ~] cd /usr/local/httpd/htdocs/
[root@localhost htdocs] ls
index.html
[root@localhost htdocs] vim index.html
[root@localhost htdocs] systemctl stop firewalld
↙️主机名映射
[root@localhost ~] vim /etc/hosts
将你的IP地址和你的主机名关联起来
↙️测试
打开浏览器访问主机名或者IP地址都是可以的
我的博客即将同步至腾讯云开发者社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=2r5gehowo8isg
版权归原作者 神秘泣男子 所有, 如有侵权,请联系我们删除。