Linux之Apache服务

Apache概述#

Copy
''' Apache HTTPD Server 简称 Apache,是 Apache 软件基金会的一个开源的网页服务器, 可以在大多数计算机操作系统中运行,由于其多平台和安全性被广泛使用, 是最流行的 Web 服务器端软件之一。它快速、可靠并且可通过简单的 API 扩展,将 Perl/Python 等解释器编 译到服务器中!Apache HTTP 服务器是一个模块化的服务器, 各个功能使用模块化进行插拔! 目前支持 Windows, Linux, Unix 等平台! Apache 软件基金会(也就是 Apache Software Foundation,简称为 ASF),是专门为运 作一个开源软件项目的 Apache 的团体提供支持的非盈利性组织, 这个开源软件项目就是 Apache 项目!那么我们的 HTTPD 也只是 Apache 的开源项目之一! 主要的开源项目:HTTP Server,Ant,DB,iBATIS,Jakarta,Logging,Maven,Struts, Tomcat,Tapestry,Hadoop 等等。只是最有名的是 HTTP Server, 所以现在所说的 Apache 已 经就是 HTTPD Server 的代号了! 我们还见的比较多的是 Tomcat, Hadoop 等项目官方网站: '''

Apache安装使用#

安装#

Copy
[root@server ~]# yum install -y httpd # 安装Apache服务 [root@server ~]# yum install -y elinks # 安装字符浏览器 [root@server ~]# yum -y install httpd mysql mysql-server php php-mysql # 创建LAMP环境

服务启动#

Copy
[root@server ~]# systemctl start httpd # 启动 [root@server ~]# netstat -aunpt | grep 80 # 监听端口号

配置文件介绍#

Copy
ServerRoot "/etc/httpd" # http的根目录 Listen 80 # http默认监听的端口号 Include conf.modules.d/*.conf # conf.modules 当前目录下所有的conf文件都生效 User apache # http的属主 Group apache # http的属组 ServerAdmin root@localhost # http管理员邮箱 ServerName www.example.com:80 # 站点的域名 默认被注释 此时启动Apache服务很缓慢 AddDefaultCharset UTF-8 # 网站的编码格式 DocumentRoot "/var/www/html" # HTTP默认的主目录 LogLevel warn # 日志等级 <Directory "/var/www/html"> Options:配置在特定目录使用哪些特性 Indexes:当用户访问该目录的时候如果找不到指定文件(例如:index.html)则返回该目录下文件列表 FollowSymLinks:在该目录下允许文件系统使用符号链接 AllowOverride:允许存在于.htaccess文件中的指令类型(.htaccess文件名是可以改变的,其文件名由AccessFileName指令决定): None:当AllowOverride被设置为None时。不搜索该目录下的.htaccess文件(可以减小服务器开销)。 Require all granted # 设置用户访问权限 </Directory>

web服务搭建#

修改默认首页#

Copy
''' 1:部门内部搭建一台 WEB 服务器,采用的 IP 地址和端口为 1.1.1.1:80,首页采用 index.html文件。 2:管理员 E-mail 地址为 srcoder@163.com,网页的编码类型采用 UTF-8,所有网站资源都存放 3:在/var/www/html 目录下,并将 Apache 的配置文件根目录设置为/etc/httpd 目录。 ''' [root@server ~]# cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.bak # 备份配置文件 [root@server html]# vim /var/www/html/index.html # 配置默认访问首页 Welcome to Apache index # 添加首页访问信息 [root@server html]# vim /etc/httpd/conf/httpd.conf ServerAdmin srcoder@163.com # 管理员邮箱 ServerName 1.1.1.1:80 # 监听的IP地址与端口 Timeout 60 # 请求页面超时时间 <IfModule dir_module> DirectoryIndex index.html index.php # 指定默认首页 </IfModule> [root@server conf.d]# vim /etc/httpd/conf.d/welcome.conf # 注释如下信息 默认的Apache首页 # <LocationMatch "^/+$"> # Options -Indexes # ErrorDocument 403 /.noindex.html # </LocationMatch> [root@server conf.d]# systemctl restart httpd.service # 重启服务

更改web网站根目录#

Copy
[root@server~]# mkdir /var/www/html/bbs # 创建测试目录 [root@server ~]# cp /var/www/html/index.html /var/www/html/bbs/ # 添加测试数据 [root@server ~]# vim /etc/httpd/conf/httpd.conf # 修改配置文件 DocumentRoot "/var/www/html/bbs" # 修改根目录 <Directory "/var/www/html/bbs"> Options Indexes FollowSymLinks AllowOverride None <RequireALL> Require ip 1.1.1.2 # 仅仅允许访问的IP(客户机地址) Require not ip 1.1.1.188 # 不允许访问的IP地址 (物理机地址 ) </RequireALL> </Directory> Require all granted #允许所有 Require all denied #拒绝所有 Require method http-method [http-method] ... #允许,特定的 HTTP 方法 Require user userid [ userid ] ... #允许,特定用户 Require group group-name [group-name] ... #允许,特定用户组 Require valid-user #允许,有效用户 Require ip 10 172.20 192.168.2 #允许 特定 IP 和网段 Require not ip 10 172.20 192.168.2 #不允许 特定 IP 和网段

虚拟目录#

Copy
# 1:将/usr/local/phpdata 目录通过虚拟目录功能添加到网站根目录。 # 2:当访问 http://1.1.1.1/phpdata/ 时,就可以访问目录/usr/local/phpdata 中的内容 [root@server ~]# mkdir /usr/local/phpdata # 创建别名访问的目录 [root@server ~]# echo Welcome to Alisa Phpdata > /usr/local/phpdata/index.html # 创建访问的内容页面 [root@server ~]# vim /etc/httpd/conf/httpd.conf Alias /phpdata/ "/usr/local/phpdata/" <Directory "/usr/local/phpdata"> Options Indexes FollowSymLinks AllowOverride None Require all granted </Directory> [root@server ~]# systemctl restart httpd

Apache禁止显示目录#

Copy
[root@server ~]# rm -fr /var/www/html/index.html # 删除默认存在的首页

Copy
[root@server ~]# vim /etc/httpd/conf/httpd.conf <Directory "/var/www/html"> Options Indexes FollowSymLinks # 修改之前 Options FollowSymLinks # 删除改行的indexs AllowOverride None Require all granted </Directory> [root@server ~]# systemctl restart httpd

Apache软链接#

Copy
[root@server ~]# ln -s /etc/passwd /var/www/html/passwd # 创建软链接

Copy
[root@server ~]# vim /etc/httpd/conf/httpd.conf <Directory "/var/www/html"> Options Indexes FollowSymLinks # 修改之前 Options Indexes # 删除改行的FollowSymLinks AllowOverride None Require all granted </Directory> [root@server ~]# systemctl restart httpd

用户认证#

Copy
# 1:通过用户认证的方式,对网站下/usr/local/phpdata/目录进行保护 # 2:设置/usr/local/phpdata/目录,只能通过用户名密码方式访问 [root@server ~]# touch /etc/httpd/conf/passwd.secret # 创建保存用户名+密码的文件 [root@server ~]# vim /etc/httpd/conf/httpd.conf <Directory "/usr/local/phpdata"> Options Indexes FollowSymLinks AllowOverride None authtype basic # 认证类型 authname "my web site" # 指定认证名称 认证名称在需要认证的时候弹出显示给用户的 authuserfile /etc/httpd/conf/passwd.secret # 存储用户名+密码的文件 require valid-user # 指定有效用户才能访问(在authuserfile 都属于有效用户) </Directory> [root@server ~]# systemctl restart httpd [root@server ~]# htpasswd -cm /etc/httpd/conf/passwd.secret SR # -c:添加一个文件 -m:使用md5方式使密码密文保存 SR:保存的用户 [root@server ~]# htpasswd /etc/httpd/conf/passwd.secret 木子 # 除第一个用户以为 以后都不需要加-c参数 如果加了后面创建的用户会覆盖前面的 [root@server ~]# cat /etc/httpd/conf/passwd.secret # 查看保存的文件密码

Apache三种搭建方式#

基于不同的IP地址#

Copy
[root@server ~]# ifconfig ens37:1 1.1.1.66 netmask 255.255.255.0 [root@server html]# echo www.test66.com > /var/www/html/bbs/index.html # 添加页面内容 test66中的66位IP地址 [root@server ~]# vim /etc/httpd/conf.d/test.conf # 添加名为test.conf的配置文件 <VirtualHost 1.1.1.1:80> ServerAdmin srconder@163.com # 邮箱 DocumentRoot /var/www/html/ # 根目录 ServerName dummy-host.example.com # 域名 ErrorLog logs/dummy-host.example.com-error_log CustomLog logs/dummy-host.example.com-access_log common </VirtualHost> <VirtualHost 1.1.1.66:80> ServerAdmin srconder@163.com DocumentRoot /var/www/html/bbs/ ServerName dummy-host.example.com ErrorLog logs/dummy-host.example.com-error_log CustomLog logs/dummy-host.example.com-access_log common </VirtualHost> [root@server conf.d]# systemctl restart httpd.service
Copy
[root@client ~]# curl 1.1.1.1

Copy
[root@client ~]# curl 1.1.1.66

基于不同域名#

Copy
[root@server ~]# vim /etc/httpd/conf.d/test.conf <VirtualHost *:80> ServerAdmin srconder@163.com # 允许所有IP DocumentRoot /var/www/html/ ServerName www.test1.com ErrorLog logs/www.test1.com-error_log CustomLog logs/www.test1.com-access_log common </VirtualHost> <VirtualHost *:80> ServerAdmin srconder@163.com DocumentRoot /var/www/html/bbs/ ServerName www.test66.com ErrorLog logs/www.test66.com-error_log CustomLog logs/www.test66.com-access_log common </VirtualHost> [root@server ~]# systemctl restart httpd.service [root@client ~]# vim /etc/hosts 1.1.1.1 www.test1.com 1.1.1.66 www.test66.com
Copy
[root@client ~]# elinks 1.1.1.1 # 客户端可以使用的测试方式 下图直接在浏览器测试的 与该命令无关

Copy
[root@client ~]# elinks 1.1.1.66

基于不同的端口访问#

Copy
[root@server ~]# vim /etc/httpd/conf/httpd.conf Listen 8080 # 配置多个监听端口 [root@server ~]# vim /etc/httpd/conf.d/test.conf <VirtualHost *:80> ServerAdmin srconder@163.com DocumentRoot /var/www/html/ ServerName www.test1.com ErrorLog logs/www.test1.com-error_log CustomLog logs/www.test1.com-access_log common </VirtualHost> <VirtualHost *:8080> ServerAdmin srconder@163.com DocumentRoot /var/www/html/bbs/ ServerName www.test1.com ErrorLog logs/www.test1.com-error_log CustomLog logs/www.test1.com-access_log common </VirtualHost> [root@server ~]# systemctl restart httpd.service
Copy
[root@client ~]# elinks 1.1.1.1 # 客户端可以使用的测试方式 下图直接在浏览器测试的 与该命令无关

Copy
[root@client ~]# elinks 1.1.1.1:8080 # 客户端可以使用的测试方式 下图直接在浏览器测试的 与该命令无关

posted @   SR丶  阅读(420)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
点击右上角即可分享
微信分享提示
CONTENTS