不学其他了!Apache部署了这么好玩的网站

news/2024/5/9 19:58:39/文章来源:https://blog.csdn.net/Friendsofthewind/article/details/120031448

相关术语

提示:怎么让您看起来像专业人士,先知道这些

何为HTTP协议?是超文本传输协议,Hyper Text transfer protocal(发明者:蒂姆.伯纳斯.李)

1.超文本
包含超链接(link)和各种多媒体元素的文本,这些超文本文件彼此相连,形成网状(web),因此又被称为网页(web page),这些链接使用URL表示,文本格式一般为HTML或HTM

2.HTTP协议版本:浏览器F12选择network可查看
HTTP 0.9
HTTP 1.0
HTTP 1.1 当前最流行,更多的请求方法,更精细的缓存控制,支持持久连接
HTTP 2.0

3.URI和URL区别

URI:uniform resource identifier,统一资源标识符,用来唯一的标识一个资源。大范围统称。
URI一般由三部组成:①访问资源的命名机制②存放资源的主机名③资源自身的名称,由路径表示,着重强调于资源。概括性抽象的。

URL:uniform resource locator,统一资源定位器,它是一种具体的URI,即URL可以用来标识一个资源,而且还指明了如何locate这个资源。格式:https://www.baidu.com/?tn=98010089_dg&ch=12
URL是Internet上用来描述信息资源的字符串,主要用在各种WWW客户程序和服务器程序上,特别是著名的Mosaic。采用URL可以用一种统一的格式来描述各种信息资源,包括文件、服务器的地址和目录等。具体的个体

URI是以一种抽象的,高层次概念定义统一资源标识,而URL则是具体的资源标识的方式。

4.HTTP请求报文的主要方法

get  获得请求文件信息的数据内容(下载)
post 用户提交数据到服务器(上传)

5.HTTP返回状态码(status-code),由3位数字组成(维护网站常用,必须要懂)

200 请求成功
201 上传文件成功
301 永久重定向(redirect)
302,307 临时重定向(redirect)
304 浏览器缓存
403 请求不到首页,没有权限(文件没有设置权限,或权限不足以完成这个请求)
404 请求的资源在前端查明不存在(前端服务如:Apache等找不到请求的资源)
405 请求方法不支持(以未做重定向为例,仅允许https的方式访问,如果用http不支持)
500 服务器的内部错误,程序错误(Apache等前端程序错误)
502 请求的资源前端有记录,指向后端数据库,却找不到后端资源(前端服务,如:Apache有记录,Apache向mysql请求数据,找不到资源)
503 服务暂时不可用(服务器的程序出现问题)
504 请求超时(规定时间,没有收到响应)

6.HTTP的连接类型:
短连接:建立一次tcp的连接,发起一次HTTP的请求,结束,tcp断开(客户-经理-我)
长连接:建立一次tcp的连接,发起多次HTTP的请求,结束,tcp断开;比如:您是财务经理,我是主管,客户提供的服务需要经费,只要客户一次请求我,我给您告知这件事,并说明这个业务需要周期性,支出经费,您说不用每次都为这件事找我,只要是这件事的,你直接决定就行。所以流程简单化,客户-我(完成长连接)

7.HTTP统计术语:

PV:(page view)页面浏览量,访问每一个网页*
UV:(Unique visitor)独立客户浏览量,手机端、电脑端访问
IP:(Internet Protocol)独立ip浏览量,单独的公网IP
例子:50人,每人通过手机和电脑访问同一网站各两次,全部都用公司宽带上网,会产生多少pv、uv、ip?
答案:200 100 1

8.HTTP协议原理和流程

(1)用户输入用户名->浏览器跳转->app缓存->DNS解析(递归查询|迭代查询)
(2)由浏览器向服务器发起tcp连接(三次握手)
(3)客户端发起HTTP请求:

请求的方法(获取)	
请求的主机:域名
请求的资源类型(html)
请求的端口(80、443)
请求携带的参数(类型、压缩、认证等)

(4)服务器的响应:

服务器的web软件
响应的文件类型
是否压缩
是否长连接

(5)客户端向服务器发起tcp断开(四次握手)

9.用户访问网站流程:
(1)客户端发起HTTP请求,抵达网站的前端防火墙
(2)防火墙收到请求,分析判断是否符合规则,将合规流量通过tcp连接负载均衡器,传递用户HTTP请求
(3)负载均衡器收到请求,根据内容和策略进行下发任务,通过tcp连接web服务器,转发用户的HTTP请求
(4)web服务器收到用户的请求之后,解析请求内容:
静态请求:web服务器向nfs建立tcp连接,获取图片等静态文件,返回给负载均衡器
动态请求:由web服务器向后端的缓存或数据库建立tcp连接,将用户的动态请求传递给动态程序进行解析
(5)由数据库->动态程序->缓存->web->负载均衡器->防火墙->用户


案例

请添加图片描述

提示:实验环境,所有服务搭建在一台主机上,只做本章重点,其他省略。

一、搭建环境:

1、 保障网络连通互联网,关闭防火墙、setenforce宽容模式,检查是否已安装rpm包httpd、mysql,把所需软件下载下来,放在指定位置

rpm -q httpd \查看是否安装
rpm -e httpd --nodeps \卸载已安装的程序

2、 安装前提软件
查询是否安装依赖包:rpm -q make gcc gcc-c++ kernel-devel m4 ncurses-devel openssl-devel
如果缺少哪个,则需要安装。

使用脚本安装,以软件存放位置在/usr/src为例
mkdir /sh
cd /sh
vim qianti.sh
添加以下内容:

#!/bin/bash
cd /usr/src
tar zxf apr-1.5.2.tar.gz
cd apr-1.5.2
./configure --prefix=/usr/local/apr && make && make installcd ..
tar zxf apr-util-1.5.4.tar.gz
cd apr-util-1.5.4
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr && make && make installcd ..
yum -y install zlib-*tar zxf pcre-8.39.tar.gz
cd pcre-8.39
./configure --prefix=/usr/local/pcre && make && make installcd ..
tar zxf openssl-1.0.1u.tar.gz
cd openssl-1.0.1u
./config -fPIC --prefix=/usr/local/openssl enable-shared && make && make install

保存退出,执行脚本:sh qianti.sh

3、安装服务

安装Apache,及优化链接

cd /sh
vim httpd.sh
添加以下内容:

#!/bin/bash
cd /usr/src
tar zxf httpd-2.4.25.tar.gz
cd httpd-2.4.25
./configure --prefix=/usr/local/httpd --enable-so --enable-cgi --enable-cgid --enable-ssl --with-ssl=/usr/local/openssl --enable-rewrite --with-pcre=/usr/local/pcre --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-modules=most --enable-mods-shared=most --enable-mpms-shared=all --with-mpm=event --enable-proxy --enable-proxy-fcgi --enable-expires --enable-deflate && make && make install
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 15    		\\声明服务启动级别,开机启动顺序,关机关闭顺序,chkconfig:后面空格
# description: apache 2.4.25	\\服务声明,简要信息,description:后面空格
保存退出
chkconfig --add httpd			\\添加httpd到系统服务
chkconfig httpd on				\\设置服务开机自启(等同于:systemctl enable httpd)
systemctl start httpd			\\开启服务(等同于:service httpd start)

4、查看httpd模块(验证,每个需要的模块是否安装成功)
httpd -V \查看版本和已装模块
在这里插入图片描述
httpd -l \只查看静态编译模块
在这里插入图片描述
httpd -M \查看所有模块
在这里插入图片描述
5.MPM(Multi Process Modules):多进程处理模块
负责实现网络监听、请求的处理等功能,目的为了在不同的平台上实现最优化的性能和稳定性。
操作系统平台 MPM
BeOS beos
NetWare mpm_netware
OS/2 mpm_os2
linux prefork、worker、event
Windows mpm_winnt

6.prefork模式:

非线程、预生成进程型MPM,一个子进程同一时间点仅能处理一个用户请求,根据并发请求数动态调整子进程
worker模式:
线程化、多进程型MPM,每个进程可生成多个线程,每个线程处理一个请求,缺点:长连接,资源容易被占用
event模式:
worker的改进版,使用监控线程处理长连接出现的资源占用问题

7.修改mpm配置文件

vim /usr/local/httpd/conf/extra/httpd-mpm.conf

StartServers 3 #apache 启动时候默认开始的子进程数
MinSpareThreads 75 #最小空闲数量的工作线程
MaxSpareThreads 250 #最大空闲数量的工作线程
ThreadsPerChild 25 #每个子进程产生的线程数量
MaxRequestWorkers 400 #允许同时的最大接入请求数量
MaxConnectionsPerChild 0 #每个子进程可处理的请求数

二、安装mysql(以编译好的rpm包方式安装mysql为例)

复制mysql5.6-rpm到虚拟机/root

cd /root/mysql5.6-rpm
yum -y localinstall *.rpm
systemctl start mysql
systemctl enable mysql

三、安装php

1.安装前提软件
yum -y install epel-release
yum -y install gcc gcc-c++ libxml2-devel lzip2-devel libcurl-devel libmcrypt-devel openssl-devel bzip2-devel

2.复制libmcrpt和php包到/usr/src,安装libmcrypt加密工具
cd /usr/src
tar zxf libmcrypt-2.5.7.tar.gz
cd libmcrypt-2.5.7/
./configure --prefix=/usr/local/libmcrypt && make && make install

3.安装php
cd /usr/src
tar zxf php-5.6.27.tar.gz
cd php-5.6.27/
./configure --prefix=/usr/local/php5.6 --with-mysql=mysqlnd --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd --with-openssl --enable-fpm --enable-sockets --enable-sysvshm --enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --with-mhash --with-mcrypt=/usr/local/libmcrypt --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-bz2 --enable-maintainer-zts && make && make install

4.提供 php 配置文件
cp /usr/src/php-5.6.27/php.ini-production /etc/php.ini

5.为 php-fpm 提供脚本
cd /usr/src/php-5.6.27/
cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
chmod +x /etc/init.d/php-fpm
chkconfig --add php-fpm
chkconfig php-fpm on

6.提供 php-fpm 配置文件并编辑
cp /usr/local/php5.6/etc/php-fpm.conf.default /usr/local/php5.6/etc/php-fpm.conf
vim /usr/local/php5.6/etc/php-fpm.conf
修改内容如下:
pid = run/php-fpm.pid
listen = 192.168.1.105:9000
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 35
保存退出

7.启动php-fpm服务
systemctl start php-fpm

四.测试Apache与php的静/动分离

1.启用Apache服务的代理转发

vim /usr/local/httpd/conf/httpd.conf

找到下面三行,去除#号:
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
Include conf/extra/httpd-vhosts.conf

找到AddType所在行,添加:

AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

定位至 DirectoryIndex,改为:

DirectoryIndex index.php index.html

保存退出
systemctl restart httpd

2.配置虚拟主机文件

vim /usr/local/httpd/conf/extra/httpd-vhosts.conf
改为:

<VirtualHost *:80>ServerAdmin webmaster@benet.comDocumentRoot "/var/www/benet"ServerName www.benet.comServerAlias benet.comErrorLog "logs/benet.com-error_log"CustomLog "logs/benet.com-access_log" commonProxyRequests OffProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://192.168.1.105:9000/var/www/benet/$1<Directory "/var/www/benet">Options FollowSymLinksAllowOverride NoneRequire all granted
</Directory>
</VirtualHost>

保存退出

3.测试
(1)mysql服务器,创建测试数据库用户
mysql \登录数据库命令
grant all on . to testuser@’%’ identified by '123456’;

(2)在 php 服务器上的/var/www/benet 目录下创建.php 的测试页:
vim /var/www/benet/index.php

常见错误:少;号则访问是空白页

添加:

<?php
phpinfo();
?>

保存退出

vim /var/www/benet/test1.php
添加:

<?php
$link=mysql_connect('192.168.1.111','testuser','123456');
if ($link)echo "connection success......";
mysql_close();
?>

保存退出

(3)在mysql服务器上测试访问Apache,会出现php内容

常见错误:mysql密码等错误,下图页面中会出现,红色不正常信息。

在这里插入图片描述
验证:mysql与PHP连接正常
在这里插入图片描述
五.部署Discuz论坛

(1)复制Discuz包到apache和php服务器的/var/www/benet目录,解压并重命名赋权

mkdir -p /var/www/benet
unzip Discuz_7.0.0_FULL_SC_UTF8.zip
mv upload/ /var/www/benet/bbs
chmod -R 777 /var/www/benet/bbs

(2)在php服务器修改配置文件,重启服务

vim /etc/php.ini

找到下行并改为:
short_open_tag = On
保存退出
service php-fpm restart

(3)在mysql服务器上创建bbs数据库及用户

mysql> create database bbsdb;
mysql> grant all on bbsdb.* to runbbs@’%’ identified by ‘pwd@123’;

(4)访问Apache,安装discuz论坛

注意:安装页面,地址:最好写真实地址如:192.168.2.130(如果本机有多个地址localhost会报错)

在这里插入图片描述
管理端:
在这里插入图片描述
在这里插入图片描述


总结

提示:会排错最重要

两个常见错误:

1、 创建.php 的测试页:代码少个;号,不报错,显示页面为空。

2、 安装discuz论坛,提示mysql用户名或密码错误,改正密码之后,问题还是未解决,改成真实IP地址,解决问题。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_782157.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

面试常备知识-Linux网站架构优化

启用网站压缩deflate 提示&#xff1a;以Apache为例 1.查看并启用mod_deflate ,压缩传输 查看mod_deflate&#xff1a;提示未找到 打开网页查看&#xff1a;也没有压缩响应头 2.在httpd.conf配置文件末尾&#xff0c;添加deflate参数配置 vim /usr/local/httpd/conf/httpd.…

饿了吗?一饱眼福-不能不懂的web网站架构负载均衡群集

理论 1、web搭建网站有哪些方式实现负载均衡与高可用性能&#xff1f; Nginx&#xff1a;反向代理&#xff0c;适用于中小型网站服务 优点&#xff1a;工作在七层之上&#xff0c;针对HTTP做分流策略&#xff0c;正则规则haproxy更灵活对网络的稳定性依赖小安装配置简单高负载…

轻松搭建web网站架构服务

学习目标&#xff1a; 搭建lnmp网站架构&#xff0c;实现负载均衡、高可用&#xff0c;以及https&#xff0c;并通过NFS优化数据存储。 服务器IP地址web1192.168.2.137web2192.168.2.136mysql192.168.2.133PHP192.168.2.130lb(keepalived)1192.168.2.135lb(keepalived)2192.1…

云计算必备-企业架构网站综合项目

目录流程一、实现效果二、步骤1.实施规范2.实施流程总结流程 1.需求分析&#xff0c;写项目规划书&#xff08;项目经理、技术总监cto&#xff09; 2.画架构图&#xff0c;将架构分解成各种模块&#xff08;架构师&#xff09; 3.各模块实施和测试&#xff08;运维工程师&…

Asp.NET MVC 拍卖网站,拆解【1】预览与目录

本人最近带创业团队基本做完了一个艺术品拍卖的外包项目&#xff0c;分为网站前台&#xff08;asp.net mvc5&#xff09;&#xff0c;网站管理员管理的后台使用的9900端口&#xff08;asp.net mvc5&#xff09;&#xff0c;监听拍卖状态的windows服务&#xff0c;为手机端提供服…

html5相关网站

2019独角兽企业重金招聘Python工程师标准>>> http://designmodo.com/ 非常非常多的下载资源 UI界面 http://www.cnblogs.com/lhb25/ 有很多好的文章 http://www.freebiesgallery.com/ 免费psd http://medialoot.com 免费模板 http://chocotemplates.com/ 模板下载 h…

如何解决国产TongWeb中间件启动之后无法访问网站管理后台界面

背景介绍&#xff1a;什么是国产TongWeb中间件呢&#xff1f; TongWeb7 是遵循 JavaEE7 Web Profile 规范的企业级应用服务器&#xff0c;它为企业应用提供了可靠、可伸缩、可管理和高安全的基础平台。同时具有功能完善、支持开放标准和基于组件开发、多层架构、轻量等特点&…

IIS 发布网站 ashx无法访问

IIS6 问题 1.是否安装相应的.net版本 2.查看.net版本是否一致 3.查看web 服务扩展中.net版本是否允许。 4.添加相应的MIME类型文件 在IIS中右键网站→属性→主目录→配置→添加 可执行文件路径:C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll 取消确认文件是…

网络爬虫-cnzz网站统计(umuuid参数加密破解)

总体来说算是比较easy的js加密 由于涉及到部分隐私 就简单说下该参数的加密思路 以马蜂窝为例 该网站使用的是CNZZ统计流量 首先抓包看参数&#xff0c;如图 可以比较清晰地看到 cnzz的统计是发起的这个get请求 然后看下这些参数 我们不确定的参数有 id / cnzz_eid / umuuid …

网站页面横幅维护以及实现方案(含详细代码)

在很多中小型的网站开发公司来讲&#xff0c;承担网站建设后的日常维护是极为重要的一部分工作&#xff1b;也为了后续的其他产品的推广积攒更好的客户关系&#xff1b;网站维护的现状绝大多数都是内容维护&#xff0c;功能维护及新增频率会少很多&#xff0c;针对于此现状&…

如何在电脑上测试手机网站(补充)和phonegap

颜海镜 介绍了专业人士精准测试手机网站的经验 http://www.cnblogs.com/yanhaijing/p/3557261.html, 因为太专业了&#xff0c;稍显复杂和琐碎&#xff0c;这里我介绍下我一直关注的的 inter XDK 去年的 xdk 是浏览器插件&#xff0c;今年用nodejs重写了&#xff0c;可见前端会…

Windows Azure 网站自愈

编辑人员注释&#xff1a;本文章由 Windows Azure 网站团队的项目经理Apurva Joshi 撰写。 您有多少次在半夜被叫醒去解决一个仅需重新启动网站即可解决的问题&#xff1f;要是可以自动检测一些状况并自动恢复该有多好&#xff01; 随着 Windows Azure 网站 (WAWS) 最新更新的推…

win2008r2的iis7.5手动建站方法,iis7.5中用独立用户建立网站的方法,提高网站安全性...

win2003的iis6手动建站方法,iis6中用独立用户建立网站的方法,提高网站安全性&#xff0c;我们前面的教程有说明&#xff0c;请看http://www.piis.cn/zhishi/web574.asp 现在我们说下在WIN2008R2环境中IIS7.5中手动建立网站并设置网站安全的方法&#xff1a; 设置以上身份…

快速排名 让人疯狂的黑帽seo技术

对于黑帽seo大家或许并不陌生&#xff0c;黑帽seo和白帽seo恰恰相反&#xff0c;是作弊手段。有白帽seo的时候&#xff0c;就有了黑帽seo一直到现在。但隔行如隔山这句话这句话一点都没错&#xff0c;再没接触黑帽seo技术之前我根本不知道黑帽seo能这么快的排名。今天我就解密下…

网站页面横幅维护以及实现方案(含详细代码)

在很多中小型的网站开发公司来讲&#xff0c;承担网站建设后的日常维护是极为重要的一部分工作&#xff1b;也为了后续的其他产品的推广积攒更好的客户关系&#xff1b;网站维护的现状绝大多数都是内容维护&#xff0c;功能维护及新增频率会少很多&#xff0c;针对于此现状&…

公祭日网站变灰白色效果

四天前 星期六 清明节   2020年&#xff0c;一个很不平凡的年度。鼠疫、新型冠状病毒肺炎和就在清明节前夕的西昌山火。在这一段时间里我国经历很多惨痛的时刻&#xff0c;很多英雄“逆向而行”去到了最危险的前线保护人民群众生命财产的安全&#xff01;更有很多英雄在保护…

如何快速创建个人网站

个人网站是属于自己的一个网站&#xff0c;可以用来分享自己生活感悟、知识想法等&#xff0c;或者介绍自己的生活教育经历&#xff0c;常用于面试&#xff0c;给人眼前一亮的感觉。那么该怎样快速拥有个人网站呢&#xff1f;个人建站方式概况 个人建站方式主要分为云服务器开发…

黑科技!无需代码快速搭建网站的平台来了

通过智能网站搭建平台&#xff0c;可以无需代码快速搭建网站。 步骤一&#xff1a;注册/登陆爱用建站平台PC或移动端登陆用户中心-爱用智能网站&#xff0c;新用户注册【iYong通行证】。 步骤二&#xff1a;通过类似PPT编辑操作的可视化设计器设计上线网站。保存即可上线&…

没有设计能力,如何打造个人网站?

没有设计能力&#xff0c;如何打造个人网站&#xff1f; 通过爱用建站—Design Lab的主题功能&#xff0c;快速完成网站布局排版和色彩搭配&#xff0c;让您快速上线品牌网站&#xff01; 第一步&#xff1a;选择主题 1、进入【爱用平台】——【Design Lab】桌面端/移动端&am…

爱用建站一键开启头条巨量流量

什么是头条搜索&#xff1f; 头条搜索是字节跳动推出的搜索引擎服务。所收录网页内容将出现于今日头条等字节跳动APP矩阵的搜索内容中。 头条搜索站点设置教程&#xff1f; 1、注册并登陆【头条搜索站长平台】 2、进入首页&#xff0c;添加绑定站点 3、填写站点域名&#xf…