1.准备工作
为了避免发生端口冲突、程序冲突等现象,建议卸载使用rpm方式安装的httpd。
[root@kang ~]# rpm -e httpd --nodeps
2.源码编译及安装
附:安装包链接:https://pan.baidu.com/s/1w-byWLomlgyJ-M8Oq4BBXQ
提取码:aaii
或者自己百度Apache在官网下载,文件包的大小是6M左右。
(1.)解包
[root@kang ~]# tar zxf httpd-2.2.17.tar.gz -C /usr/src/
[root@kang ~]# cd /usr/src/httpd-2.2.17/
(2.)配置
[root@kang httpd-2.2.17]# ./configure --prefix=/usr/local/httpd --enable-so --enable-rewrite --enable-charset-lite --enable-cgi
上述配置命令中,各选项的含义如下:
--prefix:指定将httpd服务程序安装到哪个目录下,如/usr/local/httpd。
--enable-so:启用动态加载模块支持,使httpd具备进一步扩展功能的能力。
--enable-rewrite:启用网页地址重写功能,用于网站优化及目录迁移维护。
--enable-charset-lite:启动字符集支持,以便支持使用各种字符集编码的网页。
--enable-cgi:启用CGI脚本程序支持,便于支持扩展网站的应用访问能力。
[root@kang httpd-2.2.17]# make && make install
3.确认安装结果
在安装后的/usr/local/httpd目录下,主要子目录的用途如下。
/usr/local/httpd/bin:存放httpd服务的各种执行程序文件,包括主程序httpd、服务控制工具Apachectl等。
/usr/local/httpd/conf:存放httpd服务的各种配置文件、包括主配置文件httpd.conf、增强配置子目录extra等。
/usr/local/httpd/htdocs:存放网页文档,包括默认首页文件index.html等。
/usr/local/httpd/logs:存放httpd服务的日志文件。
/usr/local/httpd/modules:存放httpd服务各种模块文件。
/usr/local/httpd/cgi-bib:存放各种CGI程序文件。
4.优化执行路径
[root@kang ~]# ln -s /usr/local/httpd/bin/* /usr/local/bin/
[root@kang ~]# ls -l /usr/local/bin/httpd /usr/local/bin/apachectl
5.添加httpd系统服务
[root@kang ~]# cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd
[root@kang ~]# vim /etc/init.d/httpd
[root@kang ~]# chkconfig --add httpd
[root@kang ~]# chkconfig --list httpd
6.配置并启动httpd服务
(1.)配置httpd服务
[root@kang ~]# vim /usr/local/httpd/conf/httpd.conf
修改为自己的域名或者ip地址,注意要将前面的#去掉,否则检查的时候会报错。
检查配置文件内容是否有错误!
[root@kang ~]# /usr/local/bin/apachectl -t
显示结果是
Syntax OK
说明配置文件内容正确,否则根据报错查找原因
(2.)启动httpd服务
(3.)测试访问httpd服务
注意:关闭防火墙或者放行80端口
[root@kang ~]# firewall-cmd --permanent --add-port=80/tcp
success
[root@kang ~]# firewall-cmd --reload
success
[root@kang ~]#
7.配置虚拟路径
通常我们可以在htdocs下面建立个文件夹MySite,然后在浏览器输 入:http://localhost:8080/MySite 这样就可以看到我们自己的站点了。然而有时我们想把站点放到其它目录下面,这时就需要配置虚拟目录了
比如我们在/mnt建立如下文件夹/mnt/static,然后通过http://localhost:8080/static来访问这个站点
打开httpd.conf文件,搜索
#下面是虚拟目录声明格式
#Alias用来定义虚拟目录及虚拟目录路径,其中虚拟目录名称用于URL访问的路径别名,可以和虚拟目录名称不同
# 节点用于定义目录的访问权限等
#
#Alias 虚拟目录名称 虚拟目录路径
#
# Options Indexes FollowSymLinks
# AllowOverride All
# Order allow,deny
# Allow from all
#
#下面是具体的示例,/static是目录别名 "/mnt/static"是虚拟目录的实际路径,别名就是访问时需要输入的名字,比如我再/mnt/static/文件夹下放一个图片,beijing.jpg 那么我访问beijing.jpg图片时,输入
#的路径是:域名/static/beijing.jpg
Alias /static "/mnt/static"
Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
本文参考博客https://blog.csdn.net/Kangshuo2471781030/article/details/79226072,感谢博主的文献,在搭建的同时自己也不断的摸索,添加新内容。