实验描述
- 编译安装httpd 服务器.要求支持动态模块扩展、地址重写、多字符集。
- 网站名称设置为www.bdqn.com,默认首页设置为index.htmi和index.php。
- 将/usr / share/doc/HTML/zh-CN/目录下的index.html 复制到网站根目录下并改名为redhat。
- 在浏览器中分别访问http: //www.bdqn.com/redhat与http: //www.bdqn.com/,查看不同的测试万面
思路步骤
- 编译安装httpd软件包。
- 配置并启动httpd 服务器。
- 测试Web站点。
1.准备工作
为了避免发生端口冲突.程序冲突等现象.建议卸载使用RPM方式安装的httpd。
[root@localhost ~]# rpm -e httpd --nodeps
Apache的配置及运行需要apr , pcre等软件包的支持,因此应从系统光盘镜像中预先安装这些软件及其开发包(devel),以便提供相应的库和头文件.确保Apache的安装顺利完成。
[root@localhost ~]# rpm -ivh /mnt/Packages/apr-1.4.8-3.el7_4.1.x86_64.rpm
[root@localhost ~]# rpm -ivh /mnt/Packages/apr-devel-1.4.8-3.el7_4.1.x86_64.rpm
[root@localhost ~]# rpm -ivh /mnt/Packages/cyrus-sasl-devel-2.1.26-23.el7.x86_64.rpm
[root@localhost ~]# rpm -ivh /mnt/Packages/expat-devel-2.1.0-10.el7_3.x86_64.rpm
[root@localhost ~]# rpm -ivh /mnt/Packages/libdb-devel-5.3.21-24.el7.x86_64.rpm
[root@localhost ~]# rpm -ivh /mnt/Packages/openldap-devel-2.4.44-20.el7.x86_64.rpm
[root@localhost ~]# rpm -ivh /mnt/Packages/apr-util-devel-1.5.2-6.el7.x86_64.rpm
[root@localhost ~]# rpm -ivh /mnt/Packages/apr-util-1.5.2-6.el7.x86_64.rpm
[root@localhost ~]# rpm -ivh /mnt/Packages/pcre-devel-8.32-17.el7.x86_64.rpm
[root@localhost ~]# rpm -ivh /mnt/Packages/pcre-8.32-17.el7.x86_64.rpm
下载、解包
将下载获得的httpd源码包解压并释放到/usr/src目录下,且切换到展开后的源码目录中
配置
根据服务器的实际应用需要,可以灵活设置不同的定制选项.如指定安装路径、启用字符集支持等。若要获知可用的各种配置选项及其含义,可以执行“./ configure --help”命令,其中“./表示当前目录。
编译、安装
完成配置以后.执行"make"命令进行编译,将源代码转换为可执行的程序;然后执行"make install^命令完成最后的安装过程,将编译完的httpd程序及相关目录、文件复制到预设的安装目录(由配置时的“——prefix”选项指定)。其中“rnake”的过程可能会需要较长的时间。
[root@localhost httpd-2.4.25]# make
[root@localhost httpd-2.4.25]# make install
安装结果
使用chkconfig添加系统服务
若希望将httpd添加为系统服务,以便通过chkconfig进行管理,需要建立可控的服务脚本。例如,可将apachectl脚本复制为/etc/init . d/httpd,并在文件开头添加chkconfig 识别配置,然后将其添加为标准的Linux系统服务。
建立[service]. service配置文件
在/lib/systemd/system/目录下,建立一个以.service结尾的单元(unit)配置文件.用于控制由systemd控制或监控的httpd 服务。配置文件主要分为三个部分.控制单元[Unit]的定义、服务[Service]的定义以及安装部分[Install],具体内容如下所示。
[Unit]
Description=The Apache HTTP Server
After=network.target
[Service]
Type=forking
PIDFile=/usr/local/httpd/logs/httpd.pidExecStart=/usr/local/bin/apachectl $OPTIONS
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
RestartSec=42s
[Instal1]
WantedBy=graphical.target
重启测试