LINUX--Web基础和HTTP协议加源码编译安装部署LAMP平台

web

Web概述

Web (World wide Web) 全球广域网,也称为万维网,是一种分布式图形信息系统,是建立在Internet上的一种网络服务

web 版本

Web1.0
以编辑为特征,网站提供给用户的内容是编辑处理后提供的,然后用户阅读网站提供的内容。这个过程是网站到用户的单向行为
Web2.0
更注重用户的交互作用,用户既是网站内容的消费者(浏览者)也是网站内容的制造者,加强了网站与用户之间的互动,网站内容基于用户提供,网站的诸多功能也由用户参与建设,实现了网站与用户双向的交流与参与

web2.0 体现在 论坛 ,贴吧,微博等平台

域名系统

域名概述

域名由来
1.IP地址不易记忆
2.早期使用 Hosts文件解析域名的难点
3.主机名称重复
4.主机维护困难

DNs( Domain Name System域名系统):
分布式,每台主机维护一个部分,保持和维护域名空间的程序,响应解析器的请求
解析端(客户端) 向DNS服务器发出请求的设备

域名的结构

  1. 定义:标识一组主机并提供它们的有关信息的树形结构(主要确定了根在哪,就可以确定每个分支)域名有英文字母和数字组成,一般每组不超过63个字符,不区分大小写。除_外不能有其他的标点符号
  2. 以".”根域为开始域名空间结构(从右往左看)根域位于域名空间最顶层,一般用一个".”表示
  3. 顶级域:一般代表一种类型的组织机构或国家地区(主要有此两种类型构成),如
    net(网络公司)、com(商业)、org(民间团体组织)、edu(教育)、gov(政府)、mil(军事)、cn(中国)、jp(日本)、hk(中国香港)
  4. 二级域:也叫子域用来标明顶级域内的一个特定的组织,国家顶级域下面的二级域名由国家网络部门统一管理,如 .cn顶级域名下面设置的二级域名:
    .com.cn、.net.cn、 .edu.cn …
  5. 主机:主机位于域名空间最下层,就是一台具体的计算机,如
    www、mail、都是具体的计算机名字,可用www.sina.com.cn.、mail.sina.com.cn、来表示,这种表示方式称为FQDN(完全合格域名),也是这台主机在域名中的全名

以www.baidu.com举例,其实最后面为www.baidu.com.,省略的根域的“ . ”,www为主机名,com为国际域名,为顶级域名。

域名的注册

域名注册是Internet中用于解决地址对应问题的一种方法遵循先申请先注册原则
域名注册步骤:
①准备申请资料
②寻找域名注册网站
③查询域名
④正式申请
⑤申请成功

HTTP

HTTP协议概述

HTTP ( 超文本传输协议HyperText TransferProtocol)协议是互联网上应用最为广泛的一种网络协议,它是基于TCP协议的应用层传输协议,简单来说就是客户端和服务端进行数据传输的一种规则

HTTP/HTTPS是应用层上的协议,建立在传输层TCP之上,客户端通过与服务端进行TCP连接(三次手握),之后发送HTTP请求与接收HTTP响应都是通过访问Socket接口来调用TCP协议实现。

HTTP 是一种无状态(stateless) 协议,HTTP协议本身不会对发送过的请求和相应的通信状态进行持久化处理。这样做的目的是为了保持HTTP协议的简单性,从而能够快速处理大量的事务,提高效率

然而,在许多应用场景中,我们需要保持用户登录的状态或记录用户购物车中的商品。由于HTTP是无状态协议,所以必须引入一些技术来记录管理状态,例如Cookie

cookie和session都为了实现http的短期的持久化(保存、存储),存储内存,查询块,效率较高

cookie是缓存在用户的client浏览器中的(默认缓存一天),在缓存时间内,下次客户端通过同一个浏览器访问客户端的时候,会优先读取cookie的缓存信息,向服务端进行请求,同时服务端收到客户端请求是,读取到cookie文件,指定客户端之前照的是服务器A处理的任务,为了省事儿,省资源,干脆直接将请求直接再交给服务器A处理

两者对比
cookie 省服务器性能
session 更安全

HTTP协议版本

HTTP 0.9已过时
HTTP 1.0
HTTP 1.1
HTTP 2.0

HTTP 1.0与HTTP 2.0的区别

1.长连接
2.缓存处理
3.Host头处理
4.错误通知的管理
5.带宽优化及网络连接的使用

HTTP方法

GET(常用) 请求获取Request-URI所标识的资源
PUT 请求服务器存储一个资源, 并用Request-URI作为其标识
DELETE 请求服务器删除Request-URI所标识的资源
POST(常用) 在Request-URI所标识的资源后附加新的数据
HEAD 请求获取由Request-URI所标识的资源的响应消息报头

HTTP状态码

当使用浏览器访问某–个URL,会根据处理情况返回相应的处理状态:
100-101 信息提示
200-206 成功
300-305 重定向/页面跳转
400-415 客户端错误
500-505 服务器错误

生产环境常见的HTTP状态码:
200 OK 请求成功(其后是对GET和POST请求的应答文档)
301 Moved Permanently 请求的永久页面跳转
403 Forbidden 禁止访问该页面
404 Not Found 服务器无法找到被请求的页面
500 Internal Server Error 内部服务器错误
502 Bad Gateway 无效网关
503 Service Unavailable 当前服务不可用
504 Gateway Timeout 网关请求超时

网页

网页概述

网页:纯文本格式文件,其编写语言为HTML,在用户的浏览器中被“翻译”成网页形式显示出来
网站:由一个一个页面构成的,是多个网页的结合体
主页:打开网站后出现的第一个网页称为网站主页(或首页)
域名:浏览网页时输入的网址
HTTP:用来传输网页的通信协议
URL:是一种万维网寻址系统
HTML:用来编写网页的超文本标记语言
超链接:超链接是将网站中不同网页链接起来的功能
发布:将制作好的网页上传到服务器供用户访问的过程

网页格式

// 
<html>
<head>						#这是头部部分
<title>这里是标题</title>	#标题部分
</head>
<body>
这里是主体部分				#主体部分
</body>
</html>;

静态网页+动态网页

  1. 静态页面定义

    静态网页是标准的HTML文件扩展名是.htm、 .html
    早期网站一股都由静态网页制作,没有后台数据库、不含程序和不可交互的网页,相对更新起来比较麻烦,适用于一般更新较少的展示型网站

  2. 静态页面特点:

    每个静态网页都有一个固定的URL,且URL以.htm、.html、.shtml等常见形式为后缀,而不含有"?",每个静态网页都是保存在网站服务器上
    静态网页的内容相对稳定,容易被搜索引擎检索
    静态网页没有数据库的支持,在网站制作和维护方面工作量较大,因此当网站信息量很大时完全依靠静态网页制作方式比较困难
    开启页面速度快于动态页面

  3. 动态页面

    网页URL不固定,能通过后台与用户交互在动态网页网址中有一个标志性的符号—“?”常用的语言有PHP、"JsP、 Python、Ruby停

  4. 动态页面特点

    具有交互性,会根据用户的要求和选择而动态改变和响应,将浏览器作为客户端界面,须手动地更新HTME文档,便会自动生成新的页面,可以大大节省工作量因时因人而变,不同的时间,不同的人访问同一网址时会产生不同的页面

虚拟主机的构建实验

在同一台服务器中运行多个web站点,其中每一个站点并不独立占用一台真正的计算机

httpd支持的虚拟主机类型

基于域名的虚拟主机
基于端口的虚拟主机
基于IP地址的虚拟主机
一台Linux做服务器,一台Windows做客户端

LAMP架构

定义:LAMP指的Linux(操作系统)、ApacheHTTP 服务器,MySQL(有时也指MariaDB,数据库软件) 和PHP(有时也是指Perl或Python) 的第一个字母,一般用来建立web应用平台。
软件组件编辑

Linux

Linux 是免费开源软件,这意味着源代码可用的操作系统。

Apache 是使用中最受欢迎的一个开放源码的WEB服务器软件。

MySQL 是多线程、多用户的SQL数据库管理系统。已由Oracle公司自 2010 年 1 月 27 日通过SUN购买。SUN 最初于 2008 年 2 月 26 日收购 MySQL。
PHP,Perl 或 Python。

PHP 是一种编程语言最初设计生产动态网站。PHP 是主要用于服务器端的应用程序软件,Perl 和 Python 类似。

LINUX——源码编译安装部署LAMP平台

Apache

概述
1955年时,发布Apache服务程序的1.0版本
源于A Patchy Server,著名的开源web服务软件
由Apache软件基金会(ASF)负责维护
最新的名称为“Apache HTTP Server”

主要特点:
开放源代码,跨平台应用
支持多种网页编程语言
模块化设计,运行稳定,良好的安全性

手工编译安装的优点

具有较大的自由度,功能可定制
及时获得最新的软件版本
适用于大多数Linux版本

先安装apache

// 
rpm -e httpd --nodeps   ##先卸载httpd及相关依赖包
yum install -y apr-util-devel pcre-devel   ##下载apache支持的底层软件包支持
cd /opt
将文件 apr-1.6.2.tar.gz
apr-util-1.6.0.tar.gz
httpd-2.4.29.tar.bz2  拉入到命令行中
tar xf apr-util-1.6.0.tar.gz 
tar xf apr-1.6.2.tar.gz       
tar xf httpd-2.4.29.tar.bz2   
mv apr-1.6.2 httpd-2.4.29/srclib/apr #将文件移动到httpd-2.4.29当中
mv apr-util-1.6.0 httpd-2.4.29/srclib/apr-util  #将文件移动到httpd-2.4.29当中
yum -y install gcc gcc-c++ make pcre perl pcre-devel expat-devel
gcc \   #c语言的编辑器
gcc-c++ #c++的编译器
make    #源代码编译器(源代码转换成二进制文件)
pcre    #pcre是一个perl函数库,包括perl 兼容的正则表达式库
pcre-devel  #perl的接口开发包
expat-devel #用于支持网站解析HTMLXML文件
perl        #perl语言编译器
cd httpd-2.4.29/
 ./configure --prefix=/usr/local/httpd --enable-so --enable-rewrite --enable-charset-lite --enable-cgi
--prefix=/usr/local/httpd \ #指定httpd服务程序的安装路径
--enable-so \  #启用动态加载核心模块支持
--enable-rewrite \  #启用网页地址重写功能,
--enable-charset-lite \  #启动字符集支持
--enable-cgi #启动cgi(通用网关接口)脚本程序支持

make && make install;
// 
ln -s /usr/local/httpd/conf/httpd.conf /etc/
ln -s /usr/local/httpd/bin/* /usr/local/bin/
cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd
vim /etc/init.d/httpd
# chkconfig: 35 85 21   ##手动添加
# description: Apache is a World Wide Web server  ##手动添加
systemctl enable httpd
chkconfig  --add httpd
vim /usr/local/httpd/conf/httpd.conf;

在这里插入图片描述

在这里插入图片描述

//
 httpd -t
 Syntax OK
 service  httpd restart
 netstat -anpt | grep 80
tcp        0      0 192.168.142.142:80      0.0.0.0:*               LISTEN      95223/httpd ;

在这里插入图片描述

MySQL

概述
MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),使用最常用的数据库管理语言–结构化查询语言(SQL)进行数据库管理。
MySQL是开放源代码的,是一个真正的多线程,多用户的SQL数据库服务,凭借其速度、可靠性和适应性而备受关注。

// 
yum -y install gcc gcc-c++ ncurses ncurses-devel bison cmake autoconf
 ##ncurses-devel是字符终端下屏幕控制的基本库'
 ##autoconf生成可以自动配置软件源代码'
 ##cmake跨平台编译安装工具
 cd  /opt
 将mysql-5.6.26.tar.gz 文件从文件夹当中拉入命令行
 tar xzvf mysql-5.6.26.tar.gz
 ls
 cd mysql-5.6.26
 cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DEXTRA_CHARSETS=all -DSYSCONFIDIR=/etc -DMYSQL_DATADIR=/home/mysql/ -DMYSQL_UNIX_ADDR=/home/mysql/mysql.sock
 -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \  指定路径
-DDEFAULT_CHARSET=utf8 \ 指定默认使用的字符集编码,如 utf-8
-DDEFAULT_COLLATION=utf8_general_ci \指定默认使用的字符集校对规则'
-DEXTRA_CHARSETS=all \  指定支持其他字符集编码
-DSYSCONFIDIR=/etc \   /etc/mysql --->系统中有一个默认的配置
-DMYSQL_DATADIR=/home/mysql/ \  数据文件
-DMYSQL_UNIX_ADDR=/home/mysql/mysql.sock 指定连接数据库的通讯文件(启动数据库的时候
make  && make install
ls
cp support-files/my-default.cnf /etc/my.cnf
cp:是否覆盖"/etc/my.cnf"? yes
cp support-files/mysql.server /etc/init.d/mysqld
chmod 755 /etc/init.d/mysqld   ##文件提权
chkconfig --add /etc/init.d/mysqld
chkconfig  mysqld  --level 35 on  ##开启MySQL
useradd -s /sbin/nologin mysql
chown -R mysql:mysql /usr/local/mysql/  ##更改属主和属组为mysql
chown mysql:mysql /etc/my.cnf  #更改管理主/组
id mysql
uid=1001(mysql) gid=1001(mysql)=1001(mysql)
echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile ##更改环境变量,宣告mysql命令便于系统识别
source /etc/profile  ##刷新环境变量
echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/mysql/bin
/usr/local/mysql/scripts/mysql_install_db --user=mysql --ldata=/var/lib/mysql --basedir=/usr/local/mysql --datadir=/home/mysql  ##初始化数据库
vim  /etc/init.d/mysqld
46行 basedir=/usr/local/mysql
47行 datadir=/home/mysql
service  mysqld start
Starting MySQL. SUCCESS!
netstat -anpt | grep 3306
tcp6       0      0 :::3306                 :::*                    LISTEN      33877/mysqld        
mysqladmin -u root -p password "123qwe"  ##p为旧密码 passwd是新密码
Enter password:    ##原本密码为空,直接回车即可
mysql -u root -p123qwe   #将密码直接加入在后面
mysql> exit
Bye



安装PHP

// 
yum -y install gd libpng libpng-devel pcre pcre-devel libxml2-devel libjpeg-devel 
cd /opt
将php-5.6.11.tar.bz2 拉入命令行
  tar xjf php-5.6.11.tar.bz2
 ls
apr-1.6.2.tar.gz       mysql-5.6.26.tar.gz
apr-util-1.6.0.tar.gz  php-5.6.11
httpd-2.4.29           php-5.6.11.tar.bz2
httpd-2.4.29.tar.bz2   rh
mysql-5.6.26
 cd php-5.6.11
 ./configure --prefix=/usr/local/php5 --with-gd --with-zlib --with-apxs2=/usr/local/httpd/bin/apxs --with-mysql=/usr/local/mysql --with-config-file-path=/usr/local/php5 --enable-mbstring
 make && make install
 ln -s /usr/local/php5/bin/* /usr/local/bin/   ##优化把PHP的可执行程序文件放入路径环境变量的目录中便于系统识别
 vim /etc/httpd.conf;

在这里插入图片描述
在这里插入图片描述
:

// 
vim /usr/local/httpd/htdocs/index.php
;

创建php页面

在这里插入图片描述

// 
service httpd stop 
service httpd start;

在这里插入图片描述

安装论坛

//
 cd /opt
mysql -u root -pabc123
CREATE DATABASE bbs; #创建一个数据库
GRANT all ON bbs.* TO 'bbsuser'@'%' IDENTIFIED BY 'admin123'; #把bbs数据库里面所有表的权限授予给bbsuser,并设置密码
GRANT all ON bbs.* TO 'bbsuser'@'localhost' IDENTIFIED BY 'admin123';
flush privileges;   #刷新数据库
exit
将Discuz_X2.5_SC_UTF8.zip从文件当中拉入命令行
unzip   Discuz_X2.5_SC_UTF8.zip -d /opt/dis
ls
cd /dis
cp -r upload/ /usr/local/httpd/htdocs/bbs
cd /usr/local/httpd/htdocs/bbs
chown -R daemon ./config
chown -R daemon ./data
chown -R daemon ./uc_client
chown -R daemon ./uc_server/data

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值