以下是在Linux系统(以CentOS 7为例)上通过源代码安装httpd(Apache HTTP Server)的详细步骤:

1. 安装编译依赖

在编译httpd源代码之前,需要安装一些必要的开发工具和依赖库。执行以下命令安装这些依赖:

sudo yum install -y gcc make pcre pcre-devel zlib zlib-devel openssl openssl-devel
  • gcc:GNU编译器集合,用于编译C语言代码。
  • make:构建自动化工具,用于根据Makefile文件编译和安装软件。
  • pcre和pcre - devel:Perl兼容正则表达式库,用于处理正则表达式,httpd的URL重写等功能依赖它。
  • zlib和zlib - devel:提供数据压缩和解压缩功能,用于处理HTTP压缩等。
  • openssl和openssl - devel:提供安全套接字层(SSL)和传输层安全(TLS)协议的实现,用于加密HTTP通信。

2. 下载httpd源代码

你可以从Apache官方网站下载httpd的源代码。首先,访问Apache HTTP Server下载页面获取最新稳定版本的下载链接。例如,当前最新版本可能是httpd - 2.4.54.tar.gz,使用wget命令下载:

wget https://downloads.apache.org/httpd/httpd-2.4.54.tar.gz

3. 解压源代码

下载完成后,解压httpd源代码包:

tar -zxvf httpd-2.4.54.tar.gz
cd httpd-2.4.54

4. 配置编译选项

进入解压后的目录,运行configure脚本以配置编译选项。你可以根据需要定制这些选项。以下是一个基本的配置示例,将httpd安装到/usr/local/httpd目录,并启用一些常用功能:

./configure --prefix=/usr/local/httpd \
            --enable-so \
            --enable-ssl \
            --enable-cgi \
            --enable-rewrite \
            --with-zlib \
            --with-pcre \
            --with-openssl \
            --with-apr=/usr/bin/apr-1-config \
            --with-apr-util=/usr/bin/apu-1-config
  • --prefix:指定httpd的安装目录为/usr/local/httpd。
  • --enable-so:启用动态共享对象(DSO)支持,允许在运行时加载和卸载模块,增强httpd的扩展性。
  • --enable-ssl:启用SSL/TLS支持,用于实现HTTPS加密通信。
  • --enable-cgi:启用通用网关接口(CGI),允许httpd运行外部程序(如CGI脚本)来生成动态内容。
  • --enable-rewrite:启用URL重写功能,可根据规则修改URL,用于搜索引擎优化(SEO)和用户友好的URL设计等。
  • --with-zlib、--with-pcre和--with-openssl:指定使用系统已安装的zlib、PCRE和OpenSSL库。
  • --with-apr和--with-apr-util:指定APR(Apache可移植运行时库)和APR - Util(APR实用工具库)的配置脚本路径。APR和APR - Util是httpd的基础库,提供了跨平台的底层功能支持。
  • 在运行期间会有error报错,根据报错的依赖信息下载以下依赖
  • 1.yum install apr* -y
  • 2.yum install pcre* -y
  • 3.yum install openssl* -y

5. 编译和安装

配置完成后,执行以下命令进行编译和安装:

make
sudo make install
  • make命令根据配置选项编译源代码,生成可执行文件和相关库文件。这一步可能需要一些时间,取决于系统性能和硬件资源。
  • sudo make install将编译好的httpd安装到指定的目录(/usr/local/httpd)。安装过程会创建必要的目录结构,并将二进制文件、配置文件和文档等复制到相应位置。

进入vim的.conf文件

找到200左右的

删除#号

再找到

的文件index.html

使用vim进行编辑网页。

最后打开httpd服务:

到这一步就搭建完成了。

6. 配置httpd服务

安装完成后,需要对httpd进行一些基本配置:

创建系统服务单元文件(适用于systemd系统)

为了可以使用systemctl命令管理httpd服务,创建一个systemd服务单元文件:

sudo vi /etc/systemd/system/httpd.service

在文件中添加以下内容:

[Unit]
Description=The Apache HTTP Server
After=network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
ExecStart=/usr/local/httpd/bin/apachectl start
ExecReload=/usr/local/httpd/bin/apachectl graceful
ExecStop=/usr/local/httpd/bin/apachectl stop
Restart=always

[Install]
WantedBy=multi-user.target
  • [Unit]部分:定义服务的描述信息和启动顺序依赖。After指定了httpd服务在网络、远程文件系统和名称服务查找完成后启动。
  • [Service]部分:
    • Type=forking:表示httpd是一个通过创建子进程来运行的服务。
    • ExecStart指定了启动httpd服务的命令。
    • ExecReload指定了重新加载httpd配置的命令,graceful选项表示优雅地重新加载配置,即在不中断现有连接的情况下应用新配置。
    • ExecStop指定了停止httpd服务的命令。
    • Restart=always表示如果服务意外终止,自动重启。
  • [Install]部分:指定服务安装的目标,WantedBy=multi - user.target表示在多用户运行级别下启动该服务。

保存并退出文件。

启动和管理httpd服务
sudo systemctl start httpd
sudo systemctl enable httpd
sudo systemctl status httpd
  • sudo systemctl start httpd:启动httpd服务。
  • sudo systemctl enable httpd:设置httpd服务开机自启。这样每次系统启动时,httpd服务会自动启动。
  • sudo systemctl status httpd:查看httpd服务状态,确认服务是否成功启动。如果服务启动正常,会显示类似“active (running)”的信息;如果启动失败,会显示相关的错误信息,可根据错误提示进行排查。

7. 防火墙设置

如果系统启用了防火墙,需要开放HTTP(端口80)和HTTPS(端口443)端口,以便外部可以访问httpd服务:

sudo firewall-cmd --permanent --add-port=80/tcp
sudo firewall-cmd --permanent --add-port=443/tcp
sudo firewall-cmd --reload
  • --permanent:使配置永久生效,即系统重启后配置依然保留。
  • --add-port=80/tcp和--add-port=443/tcp:分别添加允许TCP协议的80端口(HTTP)和443端口(HTTPS)通过防火墙。
  • --reload:重新加载防火墙配置,使新的规则生效。

现在,你已经成功在CentOS 7上通过源代码安装并配置了httpd服务器。可以通过浏览器访问服务器的IP地址来验证安装是否成功。如果一切正常,你应该能够看到默认的Apache测试页面。

请注意,在实际应用中,你可能需要根据具体需求进一步调整httpd的配置,例如设置虚拟主机、优化性能等。同时,要确保系统的安全性,遵循最佳安全实践。

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐