技术标签: linux 服务器 http 虚拟机与云服务器 centos
Apache HTTP Server(简称Apache),中文名:阿帕奇,是Apache软件基金会的一个开放源码的网页服务器
Apache HTTP服务器是一个模块化的服务器,源于NCSAhttpd服务器,经过多次修改,成为世界使用排名第一的Web服务器软件
它快速、可靠并且可通过简单的API扩展,将Perl/Python等解释器编译到服务器中,可以在大多数计算机操作系统
中运行,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一
为了避免不必要的麻烦,我们先关闭防火墙和selinux,等搭建成功之后再开启防火墙和相应的端口
[root@centos7 ~]# systemctl status firewalld.service # 查看防火墙状态
[root@centos7 ~]# systemctl stop firewalld.service # 停止防火墙服务
[root@centos7 ~]# systemctl disable firewalld.service # 关闭防火墙开启自启动
# 把文件中的SELINUX=enforcing 改为SELINUX=disabled
[root@centos7 ~]# vim /etc/selinux/config
[root@centos7 ~]# setenforce 0 # 使修改马上生效
查看一下系统版本
[root@centos7 ~]# rpm -q centos-release
centos-release-7-9.2009.0.el7.centos.x86_64
查看是否已经安装了http服务器
# 如果没有返回任何结果,表示没有安装;如果返回文件包名,这表示已经安装了该服务;
[root@centos7 ~]# httpd -version
Server version: Apache/2.4.6 (CentOS)
Server built: Oct 1 2020 16:52:05 # 代表已安装
[root@centos7 ~]# rpm -qa|grep httpd
httpd-manual-2.4.6-95.el7.centos.noarch
httpd-tools-2.4.6-95.el7.centos.x86_64
httpd-2.4.6-95.el7.centos.x86_64 # 代表已安装
[root@centos7 ~]# rpm -e httpd-manual-2.4.6-95.el7.centos.noarch # 卸载httpd
[root@centos7 ~]# rpm -e httpd-2.4.6-95.el7.centos.x86_64
[root@centos7 ~]# rpm -e httpd-tools-2.4.6-95.el7.centos.x86_64
# 再次检查
[root@centos7 ~]# rpm -qa|grep httpd
[root@centos7 ~]# httpd -version
-bash: /usr/sbin/httpd: 没有那个文件或目录.
开始安装
yum
在线安装方式[root@centos7 ~]# yum install -y mod_ssl openssl httpd
rpm
离线安装方式# 进入准备好httpd服务所需要依赖的目录
[root@centos7 ~]# cd /data/http/httpuser/
[root@centos7 httpuser]# ll
总用量 4740
-rw-r--r-- 1 sftpuser sftp 106124 8月 12 23:55 apr-1.4.8-7.el7.x86_64.rpm
-rw-r--r-- 1 sftpuser sftp 94132 8月 12 23:55 apr-util-1.5.2-6.el7.x86_64.rpm
-rw-r--r-- 1 sftpuser sftp 18976 8月 12 23:55 apr-util-ldap-1.5.2-6.el7.x86_64.rpm
-rw-r--r-- 1 sftpuser sftp 2846172 8月 12 23:55 httpd-2.4.6-95.el7.centos.x86_64.rpm
-rw-r--r-- 1 sftpuser sftp 1409564 8月 13 10:21 httpd-manual-2.4.6-95.el7.centos.noarch.rpm
-rw-r--r-- 1 sftpuser sftp 95136 8月 12 23:55 httpd-tools-2.4.6-95.el7.centos.x86_64.rpm
-rw-r--r-- 1 sftpuser sftp 31264 8月 12 23:55 mailcap-2.1.41-2.el7.noarch.rpm
-rw-r--r-- 1 sftpuser sftp 116812 8月 12 23:55 mod_ssl-2.4.6-95.el7.centos.x86_64.rpm
-rw-r--r-- 1 sftpuser sftp 239900 8月 12 23:55 postgresql-libs-9.2.24-4.el7_8.x86_64.rpm
# 开始安装
- 安装依赖的顺序按照以下先后顺序进行
- 安装rpm包的命令:rpm -ivh 包名
[root@centos7 httpuser]# rpm -ivh apr-1.4.8-7.el7.x86_64.rpm
[root@centos7 httpuser]# rpm -ivh apr-util-1.5.2-6.el7.x86_64.rpm
[root@centos7 httpuser]# rpm -ivh apr-util-ldap-1.5.2-6.el7.x86_64.rpm
[root@centos7 httpuser]# rpm -ivh mailcap-2.1.41-2.el7.noarch.rpm
[root@centos7 httpuser]# rpm -ivh postgresql-libs-9.2.24-4.el7_8.x86_64.rpm
[root@centos7 httpuser]# rpm -ivh httpd-tools-2.4.6-95.el7.centos.x86_64.rpm
[root@centos7 httpuser]# rpm -ivh httpd-2.4.6-95.el7.centos.x86_64.rpm
[root@centos7 httpuser]# rpm -ivh httpd-manual-2.4.6-95.el7.centos.noarch.rpm
[root@centos7 httpuser]# rpm -ivh mod_ssl-2.4.6-95.el7.centos.x86_64.rpm
tar.gz
编译安装方式*.tar.gz下载 此方法的安装过程自行百度,此处不在做介绍
设置为开机自动启动服务
[root@centos7 ~]# systemctl enable httpd.service
启动httpd服务
# http服务器的服务名是httpd,相关的操作如下:
[root@centos7 ~]# systemctl start httpd.service # 启动服务
systemctl stop httpd.service # 停止服务
systemctl restart httpd.service # 重启服务
systemctl status httpd.service # 查看服务状态
systemctl enable httpd.service # 设置开机自启动httpd服务
systemctl disable httpd.service # 禁用开机自启动httpd服务
备份配置文件
# Apache默认将网站的根目录指向/var/www/html
# 默认的主配置文件/etc/httpd/conf/httpd.conf
# 配置存储在的/etc/httpd/conf.d/目录
# 防止后期配置文件出错后无法还原
[root@centos7 ~]# cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.backup
[root@centos7 ~]# cd /etc/httpd/conf/
[root@centos7 ssh]# ll
......
-rw-r--r-- 1 root root 11752 8月 13 12:02 httpd.conf
-rw-r--r-- 1 root root 11752 8月 16 22:10 httpd.conf.backup
......
其余配置默认就好
新建一个测试文件
# 先新建一个存放文件的文件夹并授权
[root@centos7 ~]# mkdir -p /var/www/html/upload
[root@centos7 ~]# chmod 755 /var/www/html/upload
# 进入文件夹
[root@centos7 ~]# cd /var/www/html/upload
# 新建测试文件,然后保存退出
[root@centos7 ~]# vim 测试_20220712.txt
[root@centos7 upload]#
systemctl enable firewalld.service # 重启防火墙开机自启动
systemctl restart firewalld.service # 重启防火墙服务
firewall-cmd --version # 查看防火墙版本
firewall-cmd --list-all # 查看已开放的端口
firewall-cmd --query-port=80/tcp # 查询TCP的80端口占用情况
firewall-cmd --permanent --zone=public --add-port=80/tcp # 开通http服务80端口
firewall-cmd --reload # 刷新防火墙,重新载入
# 设置关闭SELinux对ftp的限制
setsebool -P ftpd_full_access on
sed -i s#enforcing#disabled#g /etc/sysconfig/selinux
setenforce 0 && getenforce
getenforce
systemctl restart httpd.service
至此,HTTP其实就已经搭建成功,可以登录了!
查看IP地址
ip addr
注意:
公网ip地址
固定ip地址
,下图用的就是固定ip浏览器访问测试
在浏览器中输入:http://你的ip地址
,显示如下
文件目录列表访问问题
vim /etc/httpd/conf.d/welcome.conf
# 修改/etc/httpd/conf.d/welcome.conf配置文件
# 把Options -Indexes中的减号改为加号
......
<LocationMatch "^/+$">
Options +Indexes
ErrorDocument 403 /.noindex.html
</LocationMatch>
......
# 重启httpd服务
[root@centos7 ~]# systemctl restart httpd.service
静态资源名称乱码问题
vim /etc/httpd/conf/httpd.conf
# 编辑httpd配置文件,增加(或修改)页面的默认编码类型为UTF-8
......
IndexOptions Charset=UTF-8
......
# 重启httpd服务
[root@centos7 ~]# systemctl restart httpd.service
点击链接直接在浏览器中打开的问题
vim /etc/httpd/conf/httpd.conf
# 编辑本地配置文件,将预期直接下载的文件扩展名配置上
# *.txt文件直接下载
AddType application/x-txt-compressed .txt
# *.pdf文件直接下载
AddType application/x-pdf-compressed .pdf
# *.json文件直接下载
AddType application/x-json-compressed .json
# 重启httpd服务
[root@centos7 ~]# systemctl restart httpd.service
# 清理浏览器缓存
注意:
文件名较长显示不全的问题
vim /etc/httpd/conf.d/autoindex.conf
# 编辑httpd配置文件,增加(或修改)索引名长度限制为*(任意长度,不作限制)
......
IndexOptions FancyIndexing HTMLTable VersionSort NameWidth=*
......
# 重启httpd服务
[root@centos7 ~]# systemctl restart httpd.service
指定目录启用用户授权的问题
# 添加访问用户并设置密码
[root@centos7 ~]# htpasswd -c /etc/httpd/auth.pwd httpuser
New password: # 密码输入不显示,正常输入后直接按回车就行
Re-type new password:
Adding password for user httpuser
[root@centos7 ~]#
# 添加用户访问权限配置,直接在配置文件中新增以下内容即可
[root@centos7 ~]# vim /etc/httpd/conf/httpd.conf
<Directory "/var/www/html/upload">
AuthName "xxxxx"
AuthType basic
AuthUserFile /etc/httpd/auth.pwd
Require valid-user
# Require user httpuser01
</Directory>
# 重启httpd服务
[root@centos7 ~]# systemctl restart httpd.service
参考网址:
文章浏览阅读1k次。通过使用ajax方法跨域请求是浏览器所不允许的,浏览器出于安全考虑是禁止的。警告信息如下:不过jQuery对跨域问题也有解决方案,使用jsonp的方式解决,方法如下:$.ajax({ async:false, url: 'http://www.mysite.com/demo.do', // 跨域URL ty..._nginx不停的xhr
文章浏览阅读2k次。关于在 Oracle 中配置 extproc 以访问 ST_Geometry,也就是我们所说的 使用空间SQL 的方法,官方文档链接如下。http://desktop.arcgis.com/zh-cn/arcmap/latest/manage-data/gdbs-in-oracle/configure-oracle-extproc.htm其实简单总结一下,主要就分为以下几个步骤。..._extproc
文章浏览阅读1.5w次。linux下没有上面的两个函数,需要使用函数 mbstowcs和wcstombsmbstowcs将多字节编码转换为宽字节编码wcstombs将宽字节编码转换为多字节编码这两个函数,转换过程中受到系统编码类型的影响,需要通过设置来设定转换前和转换后的编码类型。通过函数setlocale进行系统编码的设置。linux下输入命名locale -a查看系统支持的编码_linux c++ gbk->utf8
文章浏览阅读750次。今天准备从生产库向测试库进行数据导入,结果在imp导入的时候遇到“ IMP-00009:导出文件异常结束” 错误,google一下,发现可能有如下原因导致imp的数据太大,没有写buffer和commit两个数据库字符集不同从低版本exp的dmp文件,向高版本imp导出的dmp文件出错传输dmp文件时,文件损坏解决办法:imp时指定..._imp-00009导出文件异常结束
文章浏览阅读143次。当下是一个大数据的时代,各个行业都离不开数据的支持。因此,网络爬虫就应运而生。网络爬虫当下最为火热的是Python,Python开发爬虫相对简单,而且功能库相当完善,力压众多开发语言。本次教程我们爬取前程无忧的招聘信息来分析Python程序员需要掌握那些编程技术。首先在谷歌浏览器打开前程无忧的首页,按F12打开浏览器的开发者工具。浏览器开发者工具是用于捕捉网站的请求信息,通过分析请求信息可以了解请..._初级python程序员能力要求
文章浏览阅读7.6k次,点赞2次,收藏6次。@Service标注的bean,类名:ABDemoService查看源码后发现,原来是经过一个特殊处理:当类的名字是以两个或以上的大写字母开头的话,bean的名字会与类名保持一致public class AnnotationBeanNameGenerator implements BeanNameGenerator { private static final String C..._@service beanname
文章浏览阅读6.9w次,点赞73次,收藏463次。1.前序创建#include<stdio.h>#include<string.h>#include<stdlib.h>#include<malloc.h>#include<iostream>#include<stack>#include<queue>using namespace std;typed_二叉树的建立
文章浏览阅读7.1k次。在Asp.net上使用Excel导出功能,如果文件名出现中文,便会以乱码视之。 解决方法: fileName = HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8);_asp.net utf8 导出中文字符乱码
文章浏览阅读2.1k次,点赞4次,收藏23次。第一次实验 词法分析实验报告设计思想词法分析的主要任务是根据文法的词汇表以及对应约定的编码进行一定的识别,找出文件中所有的合法的单词,并给出一定的信息作为最后的结果,用于后续语法分析程序的使用;本实验针对 PL/0 语言 的文法、词汇表编写一个词法分析程序,对于每个单词根据词汇表输出: (单词种类, 单词的值) 二元对。词汇表:种别编码单词符号助记符0beginb..._对pl/0作以下修改扩充。增加单词
文章浏览阅读773次。我在使用adb.exe时遇到了麻烦.我想使用与bash相同的adb.exe shell提示符,所以我决定更改默认的bash二进制文件(当然二进制文件是交叉编译的,一切都很完美)更改bash二进制文件遵循以下顺序> adb remount> adb push bash / system / bin /> adb shell> cd / system / bin> chm..._adb shell mv 权限
文章浏览阅读6.8k次,点赞12次,收藏125次。1. 单目相机标定引言相机标定已经研究多年,标定的算法可以分为基于摄影测量的标定和自标定。其中,应用最为广泛的还是张正友标定法。这是一种简单灵活、高鲁棒性、低成本的相机标定算法。仅需要一台相机和一块平面标定板构建相机标定系统,在标定过程中,相机拍摄多个角度下(至少两个角度,推荐10~20个角度)的标定板图像(相机和标定板都可以移动),即可对相机的内外参数进行标定。下面介绍张氏标定法(以下也这么称呼)的原理。原理相机模型和单应矩阵相机标定,就是对相机的内外参数进行计算的过程,从而得到物体到图像的投影_相机-投影仪标定
文章浏览阅读2.2k次。文章目录Wayland 架构Wayland 渲染Wayland的 硬件支持简 述: 翻译一篇关于和 wayland 有关的技术文章, 其英文标题为Wayland Architecture .Wayland 架构若是想要更好的理解 Wayland 架构及其与 X (X11 or X Window System) 结构;一种很好的方法是将事件从输入设备就开始跟踪, 查看期间所有的屏幕上出现的变化。这就是我们现在对 X 的理解。 内核是从一个输入设备中获取一个事件,并通过 evdev 输入_wayland