Linux下Apache服务的部署和配置
目录
Apache 是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩充,将Perl/Python等解析器编译到服务器中。但是Apache有一个缺点就是,重新加载配置文件时需要重启 httpd 服务,而nginx重载配置文件时只需重载reload配置文件即可。httpd服务默认监听 tcp / 80 端口
apache有两个日志文件,access.log记录了访问网站的日志;error.log记录了错误日志
Apache服务的安装
yum源安装:
- 安装httpd主程序: yum -y install httpd
- 在/var/www/html 目录下写入我们自己的主页 index.html
- 开启httpd程序: systemctl start httpd
- 防火墙开放http服务 firewall-cmd --add-service=http ,关闭SElinux: setenforce=0
- 查看apache版本号:httpd -v
目录文件
- 程序目录:/usr/sbin/httpd
- 默认网站主页存放目录: /var/www/html/
- 日志文件存放目录:/var/log/httpd/
- 主配置文件:/etc/httpd/conf/httpd.conf
- 从配置文件:/etc/httpd/conf.d/
主配置文件 /etc/httpd/conf/httpd.conf 的一些参数的意义
ServerRoot “/etc/httpd“ //服务配置文件目录
PidFile run/httpd.pid //PID文件
Listen 80 //默认监听端口
Include conf.modules.d/*.conf //包含模块目录的配置文件
User apache //启动用户
Group apache //启动组
ServerAdmin root@localhost //管理员邮箱
ServerName www.example.com:80 //域名主机名
DocumentRoot “/var/www/html“ //默认主页存放目录
DirectoryIndex index.html index.html.var //索引文件
<Directory "/var/www"> //规定网站根目录的位置
AllowOverride None
# Allow open access:
Require all granted
</Directory>
ErrorLog logs/error_log //错误日志
CustomLog logs/access_log combined //访问日志
AddDefaultCharset UTF-8 //默认字符集
IncludeOptional conf.d/*.conf //包含了 conf.d/*.conf 的配置文件
<IfModule dir_module>
DirectoryIndex index.html //默认索引
</IfModule>
扩展配置文件: /etc/httpd/conf.d/ , 我们可以在这个目录下新建一些我们自己定义的配置文件,比如基于ip的虚拟主机,基于端口的虚拟主机,基于域名的虚拟主机等等
源码包安装:
- 源码安装之前先安装编译工具: yum -y install gcc gcc-c++ make
- 源码包: httpd-xxxx.tar.bz2
- 解压,然后进入解压目录, ./configure 编译, make && make install 安装即可
- 进入安装目录的 bin 目录下, ./httpd 启动
目录文件:
安装完成后,软件默认安装在 /usr/loca/apache2/ 下面,也可以编译的时候自定义安装目录
- 可执行文件目录:/usr/local/apache2/bin/
- 网站主页目录:/usr/local/apache2/htdocs/
- 配置文件目录:/usr/local/apache2/conf/
- 日志文件目录:/usr/local/apache2/logs/
Apache中添加对php的支持
安装php的支持包 yum -y install php ,然后重启 httpd 服务即可
如果想让Apache识别默认的index.php文件,需要修改配置文件 /etc/httpd/conf/httpd.conf 中,在如下位置加入 index.php
<IfModule dir_module>
DirectoryIndex index.php index.html
</IfModule>
Apache中添加php对mysql数据库的支持
安装php-mysql的包即可:yum -y install php-mysql
Apache服务的高级配置
以下不管是基于ip、端口还是基于域名创建的虚拟主机,网站主页目录只能在 /var/www/ 下,如果想更改到其他的任意目录的话,需要修改配置文件 /etc/httpd/conf/httpd.conf
<Directory "/var/www"> //这里的目录更改为你的网站主页目录
AllowOverride None
# Allow open access:
Require all granted
</Directory>
1:配置基于ip的虚拟主机
可以在一台服务器上配置多个网卡,也可以在一块网卡上配置爱多个ip
我这里在一块网上上配置多个ip: ifconfig eno16777736:1 10.96.10.204
然后在从配置文件中 /etc/httpd/conf.d/ 下创建一个配置文件,我们新建一个 ip.conf 文件,然后加入下面几行
<VirtualHost 10.96.10.203>
DocumentRoot /var/www/html/web1 //第一个ip的网站的主页面目录
</VirtualHost>
<VirtualHost 10.96.10.204>
DocumentRoot /var/www/html/web2 //第二个ip的网站的主页面目录
</VirtualHost>
然后在/var/www 下新建 web1和web2目录,在web1和web2目录里面分别放入我们的网站页面。然后重启httpd服务即可。
2. 配置基于端口的虚拟主机
在配置文件中 /etc/httpd/conf.d/ 下创建一个配置文件,我们新建一个 port.conf 文件,然后加入下面几行
Listen 8080
<VirtualHost *:80>
DocumentRoot /var/www/html/web1 //第一个端口的网站主目录
</VirtualHost>
<VirtualHost *:8080>
DocumentRoot /var/www/html/web2 //第二个端口的网站主目录
</VirtualHost>
然后在/var/www 下新建 web1和web2目录,在web1和web2目录里面分别放入我们的网站页面。然后重启httpd服务即可。
3.配置基于域名的虚拟主机
在配置文件中 /etc/httpd/conf.d/ 下创建一个配置文件,我们新建一个 domain.conf 文件,然后加入下面几行
NameVirtualHost *:80
<VirtualHost *:80>
DocumentRoot /var/www/web1 //第一个域名的网站主目录
ServerName web1.xie.com
</VirtualHost>
<VirtualHost *:80>
DocumentRoot /var/www/web2 //第二个域名的网站主目录
ServerName web2.xie.com
</VirtualHost>
然后在/var/www 下新建 web1和web2目录,在里面放入我们的网站页面。然后再重启httpd服务即可。
HTTP服务的访问控制
控制对特定主页内容的访问,为相应网站目录添加访问控制
常用访问控制方式分类:
- 客户机地址限制
- 用户授权限制
设置客户机地址访问
- Order配置项,定义控制顺序 Order allow,deny 先允许后拒绝,默认拒绝 Order deny,allow 先拒绝后允许,默认允许
- Allow、Deny配置项,设置允许或拒绝的网段或地址 Deny from IP地址 或者 网段 Allow from IP地址 或者 网段
基于ip的用户访问控制的配置:
在配置文件中 /etc/httpd/conf.d/ 下创建一个配置文件,我们新建一个 ip.conf 文件,然后加入下面几行
// 这个的意思的允许所有用户访问/var/www/html 目录下的网页,但是只允许 10.96.10.204/24这个网段的访问 /var/www/html/test/ 目录下的网页
<VirtualHost 10.96.10.203> //本机ip
DocumentRoot /var/www/html //网站主页的目录
<Directory /var/www/html/test> //要设置限制的目录
Order allow,deny //匹配了允许的就拒绝所有
Allow from 10.96.10.204/24 //只允许10.96.10.204这个地址访问
</Directory>
</VirtualHost>
基于用户身份认证授权的配置:
访问控制的配置
- 在配置文件中 /etc/httpd/conf.d/ 下创建一个配置文件,我们新建一个auth.conf 文件,然后加入下面几行
- htpasswd -c /etc/httpd/webpasswd tom (第一次加 -c 参数,表示创建文件); htpasswd /etc/httpd/webpasswd jack(第二次不用加 -c参数 ,因为文件已经创建)
- 重启服务验证
<VirtualHost 10.96.10.203> //本机ip
DocumentRoot /var/www/html //主页目录
<Directory /var/www/html/test> //设置认证的目录
AuthType Basic //认证的方法:密码
AuthName Password! //弹出登录框
AuthUserFile /etc/httpd/webpasswd //用户名和密码保存的文件
require user tom jack //只允许 tom 和 jack 用户访问
</Directory>
</VirtualHost>
相关文章: Linux中Nginx服务器的部署和配置
Linux中Tomcat和Jboss的安装和部署
LAMP环境搭建一个Discuz论坛
Linux下Apache服务的部署和配置的更多相关文章
- Linux下Apache服务部署静态网站------网站服务程序
文章链接(我的CSDN博客): Linux下Apache服务部署静态网站------网站服务程序
- linux 下apache安装、启动和配置
linux 下 apache安装 1:系统安装,这里就不说了,网上有很多,也很简单.顺便说下,我用的是redhat 9: 2:在图形界面下下载apache 安装包,我下的是 httpd-2.2.9.t ...
- Linux下apache activemq的安装与配置
ActiveMQ 是Apache出品,最流行的,能力强劲的开源消息总线.ActiveMQ 是一个完全支持JMS1.1和J2EE 1.4规范 的 JMS Provider实现,尽管JMS规范出台已经是很 ...
- Linux下TFTP服务的安装、配置和操作
TFTP是用来下载远程文件的最简单网络协议,它其于UDP协议而实现.嵌入式linux的tftp开发环境包括两个方面:一是linux服务器端的tftp-server支持,二是嵌入式目标系统的tftp ...
- Linux下Apache服务的查看和启动
cd到/etc/rc.d/init.d/目录,并列出该目录下的所有文件,看看是否有httpd 使用httpd -v查看已经安装的httpd的版本 使用rpm -qa | grep http ...
- CentOS 7下设置Docker代理(Linux下Systemd服务的环境变量配置)
Docker守护程序使用HTTP_PROXY,HTTPS_PROXY以及NO_PROXY环境变量在其启动环境来配置HTTP或HTTPS代理的行为.无法使用daemon.json文件配置这些环境变量. ...
- Linux中Nginx服务器的部署和配置
目录 Nginx安装方式: yum源安装 目录结构: 源码包安装 目录结构: Nginx中支持PHP Nginx中配置php对mysql数据库的支持 Nginx配置反向代理服务器 正常代理 根据不同端 ...
- Linux下apache+phppgadmin+postgresql安装配置
Linux下apache+phppgadmin+postgresql安装配置 操作系统:CentOS 安装包:httpd(首选yum), php(包括php以及php-pgsql,php-mbstri ...
- 分享:linux下apache服务器的配置和管理
linux下apache服务器的配置和管理. 一.两个重要目录: Apache有两个重要的目录:1.配置目录/etc/httpd/conf:2.文档目录/var/www: 二.两种配置模式: Apac ...
随机推荐
- JAVA_标识符、数据类型、变量
标识符和关键字 所有的标识符否应该以字母a ~ z和 A ~Z ,美元符($).下划线(_)开始. 首字符之后可以是字母a ~ z和 A ~Z ,美元符($).下划线(_)的任意字符组合. 注 ...
- FreeBSD jail 折腾记(一)
创建jail目录 mkdir -p /usr/jail/ 放入基本系统 方案一 make buildworld #编译基本系统 make installworld DESTDIR=/usr/jail/ ...
- 最简单的JVM内存结构图
JVM内存结构图 大家好,好几天没有更新了,今天的内容有点多,我们详细介绍下JVM内部结构图,还是和之前一样,案例先行,方便大家理解记忆. /** * @author :jiaolian * @dat ...
- weblogic之cve-2015-4852分析(重写)
前言 有时间打算分析weblogic历史漏洞,但是又要面试啥的,没空.又刚好最近面试会问weblogic反序列化.具体啥时候分析weblogic反序列化,可能会在护网后,或者我开学了再分析.期间可能我 ...
- 《Selenium自动化测试实战:基于Python》Selenium自动化测试框架入门
第1章 Selenium自动化测试框架入门 1.1 Selenium自动化测试框架概述 说到目前流行的自动化测试工具,相信只要做过软件测试相关工作,就一定听说过Selenium. 图1-1是某企业 ...
- P1603 斯诺登的密码(JAVA语言)
//这题有点坑 题目背景 根据斯诺登事件出的一道水题 题目描述 题目描述 2013年X月X日,俄罗斯办理了斯诺登的护照,于是他混迹于一架开往委内瑞拉的飞机.但是,这件事情太不周密了,因为FBI的间谍早 ...
- SetWindowsHookEx 消息钩取进程卡死
<逆向工程核心原理> windows消息钩取部分的例子在win10下卡死,失败.通过搜索发现,要保证钩取的进程与注入的dll要保持cpu平台相同 SetWindowsHookEx可用于将d ...
- 【小白学算法】5.链表(linked list)、链表的添加
链表其实也就是 线性表的链式存储结构,与之前讲到的顺序存储结构不同. 我们知道顺序存储结构中的元素地址都是连续的,那么这就有一个最大的缺点:当做插入跟删除操作的时候,大量的元素需要移动. 如图所示,元 ...
- 基于ZXing.Net生成一维二维码
新阁教育-喜科堂付工原创 最近很多小伙伴对一维码.二维码比较感兴趣,今天主要给大家分享一个C#生成条形码和二维码的案例. C#作为一个高级语言,特点就是快! 我们使用的是开源库ZXing,ZXing是 ...
- 201871030103-陈荟茹 实验二 个人项目―《D{0-1}KP问题》项目报告
项目 内容 课程班级博客链接 班级博客链接 这个作业要求链接 作业要求链接 我的课程学习目标 1.理解掌握软件设计的过程中的各个环节2.掌握github的使用,将自己的项目上传至githu中 这个作业 ...