Apache源码编译安装
提示:以下是本篇文章正文内容,下面案例可供参考
:操作如下所示
apr-1.6.2.tar.gz
apr-util-1.6.0.tar.gz
httpd-2.4.29.tar.gz
##将上面3个包传到opt目录下##
cd /opt
ll
总用量 8020
-rw-r--r-- 1 root root 1071074 8月 4 17:33 apr-1.6.2.tar.gz
-rw-r--r-- 1 root root 565507 8月 4 17:33 apr-util-1.6.0.tar.gz
-rw-r--r-- 1 root root 6567926 8月 4 17:33 httpd-2.4.29.tar.bz2
-rw-r--r-- 1 root root 6567926 8月 4 17:33 httpd-2.4.29.tar.bz2
解压安装包
tar xf apr-1.6.2.tar.gz
tar xf apr-util-1.6.0.tar.gz
tar xf httpd-2.4.29.tar.bz2
为了实现Apache服务跨平台,必须移动下面俩个目录
mv apr-1.6.2 httpd-2.4.29/srclib/apr
mv apr-util-1.6.0 httpd-2.4.29/srclib/apr-util
yum -y install \
gcc \
gcc-c++ \
make \
pcre-devel \
expat-devel \
perl
gcc ,gcc-c++ 是源码编译器( 作用:将输入的代码解析成电脑能识别的语言)
make 是可以将配置文件构建出二进制文件 递给电脑
pcre-devel 支持正则表达式
expat-devel 使网站能解析标签语言的工具
perl 一种拥有各种语言功能的梦幻脚本语言
cd /opt/httpd-2.4.29/
./configure \
--prefix=/usr/local/httpd \
--enable-so \
--enable-rewrite \
--enable-charset-lite \
--enable-cgi
–prefix:指定将 httpd 服务程序安装到哪个目录下,如/usr/local/httpd
–enable-so:开启HTTP的核心模块
–enable-rewrite:启用网页地址重写功能,用于网站优化及目录迁移维护。
–enable-charset-lite:启动字符集支持,以便支持使用各种字符集编码的网
–enable-cgi:支持多种语言,对语言进行规范设
make && make install
make -j3 然后make install -j3是你核心数,最大不要超过虚拟机的核心数
####优化执行路径####
ln -s /usr/local/httpd/conf/httpd.conf /etc/ ##简化配置文件的地址
ln -s /usr/local/httpd/bin/* /usr/local/bin/ ##将http执行文件放入系统中便于管理
httpd -v ###查看下HTTP版本
方法一:
[root@localhost bin]# cd /usr/local/httpd/
[root@localhost httpd]# ls
bin build cgi-bin conf error htdocs icons include lib logs man manual modules
[root@localhost httpd]# cd bin
[root@localhost bin]# ls
ab apu-1-config dbmmanage fcgistarter htdigest httxt2dbm
apachectl apxs envvars htcacheclean htpasswd logresolve
apr-1-config checkgid envvars-std htdbm httpd rotatelogs
[root@localhost bin]# cp apachectl /etc/init.d/httpd '//将启动脚本复制到/etc/init.d/初始化脚本文件中,并重命名为httpd'
[root@localhost bin]# cd /etc/init.d/
[root@localhost init.d]# ls
functions httpd netconsole network README
[root@localhost init.d]# vim httpd
#!/bin/sh '//在行首插入下两行内容,并保存退出'
# chkconfig: 35 85 21 '//35级别自动运行 第85个启动 第21个关闭'
# description: Apache is a World Wide Web server
#
#...省略内容
[root@localhost init.d]# chkconfig --add httpd '//将httpd加入到SERVICE管理器'
[root@localhost init.d]# chkconfig --list httpd ###查看http服务自启状态 该输出结果只显示Sysv服务,并不包含原生 systemd 服务。SysV 配置数据可能被原生 systemd 配置覆盖
方法二:建立[service].service 配置文件添加系统给服务
在/lib/systemd/system/目录下,建立一个以.service 结尾的单元(unit)配置文件,用于控制由 systemd 管理或监控的 httpd 服务
cd /lib/systemd/system/
##建立配置文件##
vim httpd.service
[Unit]
Description=The Apache HTTP Server
After=network.target
[Service]
Type=forking
PIDFile=/usr/local/httpd/logs/httpd.pid
ExecStart= /usr/local/bin/apachectl $OPTIONS
ExecrReload= /bin/kill -HUP $MAINPID
[Install]
WantedBy=multi-user.target
验证配置文件的语法(两种方式)
(1)httpd -t
(2)apachectl -t
[root@localhost system]# systemctl start httpd.service
[root@localhost system]# systemctl enable httpd.service ###开机自启http
[root@localhost system]# systemctl is-enabled httpd.service ###检查HTTP单元是否启动
vi /usr/local/httpd/conf/httpd.conf
ServerName www.51xit.top:80 ###更改下
systemctl restart httpd ####重启httpd服务
如何查看服务是否起来?
ps aux | grep httpd ##查看进程
netstat -ntap | grep 80 ##查看端口
tcp 0 0 192.168.197.139:80 0.0.0.0:* LISTEN 69155/httpd
关闭防火墙
systemctl stop firewalld.service
setenforce 0 查看核心防护