Web基础与apache讲解与搭建

网站基础:

1.域名:

域名是一个IP地址的“面具” ,目的是便于记忆和访问一个或一组服务器的地址(网站,电子邮件,FTP等)。
www.baidu.com 这是一个完整的FQDN
一个完整的FQDN=主机名+域名
主机名:www
域名:baidu.com

使用域名的原因:是因为IP地址,不容易记


2. 域名解析:

本地HOSTS解析、DNS服务器解析
Web基础与apache讲解与搭建_第1张图片


3. 网站的基本概念:

网站、网页、主页;HTTP、URL、HTML、超链接
Url和uri它俩之间很相似
Url比uri能够更精确的定位到资源,资源位置是绝对路径,uri的资源位置可以是相对路径
url=https://www.baidu.com/

https: 这个是客户端访问服务端所用到的协议
www.baidu.com: 这个是客户端想要访问的服务端域名
/: 这个是客户端访问服务端的具体资源


4.web网站:

有web1.0(以编辑为特征)和web2.0(侧重用户交互)


5.动态页面与静态页面的差别:

1)URL不同:静态页面没有?、动态页面包含?
2)后缀不同(开发语言不同):
静态页面一般以.html/.htm/.xml;
开发在写完页面之后,所写的页面需要部署到服务器上的,在部署页面之前需要在服务器上安装能够解析静态页面的服务(nginx httpd这两类web服务默认只能解析静态页面)

动态页面一般以.php/.asp/.jsp/.pl/.py/.cgi等为后缀
同样动态页面也需要在服务器上部署能够解析动态页面的服务(nginx httpd),还要安装能够解析php页面php服务

3)静态页面的内容是固定的,动态页面的内容会因用户、浏览器、时间、地点等而发生变化。
http://(协议头)cn.bing.com(域名)/(URI资源:路径/文件名):
https://jx.tmall.com/?ali_trackid=2:mm_28347190_2425761_27186547:1512434578_208_1779858597


6.网站传输协议:

http–超文本传输协议,监听的端口为tcp协议的80端口,不加密、https–安全超文本传输协议,监听的端口号是tcp协议的443号端口,加密传输,使用证书加密;


HTTP协议分析:

1.HTTP:

超文本传输协议协议是互联网上应用最为广泛的一种网络协议,协议的核心功能是传输 Web 服务器上的 HTML 页面及其他文件;


2.版本:

http0.9(已过时)、http1.0和http1.1(目前广泛使用)、http2.0(未普及);


3.http协议请求流程:

Web基础与apache讲解与搭建_第2张图片
影响客户端访问web站点的因素:客户端请求的网络I/O;Web服务器请求页面的磁盘I/O;


http请求报文和响应报文

http协议是一个应用层协议,其报文分为请求报文和响应报文
当客户端请求一个网页时,会先通过http协议将请求的内容封装在http请求报文之中,服务器收到该请求报文后根据协议规范进行报文解析,然后向客户端返回响应报文。


http报文结构为:
• 起始行
对报文进行描述
• 头部
向报文中添加了一些附加信息,是一个名/只的列表,头部和协议配合工作,共同决定了客户端和服务器能做什么事情
例如:Content-Length(主体长度),Content-Type(主体类型)等。
• 主体
包含数据的主体部分

请求报文
下面是我用wireshark捕捉到的一个http请求报文,我们来分析一下它。
Web基础与apache讲解与搭建_第3张图片
起始行
在请求报文中,起始行包括了3个部分:

• 请求的方法(POST)
• 请求的URL(/cgi-bin/qqshow_user_props_info)
• 协议类型及版本(HTTP/1.1)

请求方法

在本例中请求的方法是POST,http中请求方法有以下8种(其中比较常用的是GET,POST,HEAD):


1.OPTIONS
返回服务器针对特定资源所支持的HTTP请求方法,也可以利用向web服务器发送‘*’的请求来测试服务器的功能性
2.HEAD
向服务器索与GET请求相一致的响应,只不过响应体将不会被返回。这一方法可以再不必传输整个响应内容的情况下,就可以获取包含在响应小消息头中的元信息。
3.GET
向特定的资源发出请求。它本质就是发送一个请求来取得服务器上的某一资源。资源通过一组HTTP头和呈现数据(如HTML文本,或者图片或者视频等)返回给客户端。GET请求中,永远不会包含呈现数据。
4.POST
向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。 Loadrunner中对应POST请求函数:web_submit_data,web_submit_form
5.PUT
向指定资源位置上传其最新内容
6.DELETE
请求服务器删除Request-URL所标识的资源
7.TRACE
回显服务器收到的请求,主要用于测试或诊断
8.CONNECT
HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。

其实他们的本质区别是GET是从服务器上请求数据,而POST是向服务器发送数据


头部
以下只列出部分请求报文头部所独有的信息:
Client-IP:提供了运行客户端的机器的IP地址
From:提供了客户端用户的E-mail地址
Host:给出了接收请求的服务器的主机名和端口号
Referer:Referer是header的一部分,当浏览器向web服务器发送请求的时候,一般会带上Referer,告诉服务器该网页是从哪个页面链接过来的,服务器因此可以获得一些信息用于处理。
UA-Color:提供了与客户端显示器的显示颜色有关的信息
UA-CPU:给出了客户端CPU的类型或制造商
UA-OS:给出了运行在客户端机器上的操作系统名称及版本
User-Agent:将发起请求的应用程序名称告知服务器
Accept:告诉服务器能够发送哪些媒体类型
Accept-Charset:告诉服务器能够发送哪些字符集
Accept-Encoding:告诉服务器能够发送哪些编码方式
Accept-Language:告诉服务器能够发送哪些语言
TE:告诉服务器可以使用那些扩展传输编码
Expect:允许客户端列出某请求所要求的服务器行为
Range:如果服务器支持范围请求,就请求资源的指定范围
Cookie:客户端用它向服务器传送数据
Cookie2:用来说明请求端支持的cookie版本


应答报文
和上面一样,下面是我用wireshark捕获到的一个http应答报文
Web基础与apache讲解与搭建_第4张图片
起始行
应答报文的起始行也包含了3个部分
• 协议类型及版本号
• 状态码
• 状态码的文字描述

头部
响应报文首部提供的额外信息:
Age:(从最初创建开始)响应持续时间

Public:服务器为其资源支持的请求方法列表

Retry-After:如果资源不可用的话,在此日期或时间重试

Server:服务器应用程序软件的名称和版本

Title:对HTML文档来说,就是HTML文档的源端给出的标题

Warning:比原因短语更详细一些的警告报文

Accept-Ranges:对此资源来说,服务器可接受的范围类型

Vary:服务器会根据这些首部的内容挑选出最适合的资源版本发送给客户端

Proxy-Authenticate:来自代理的对客户端的质询列表

Set-Cookie:在客户端设置数据,以便服务器对客户端进行标识

Set-Cookie2:与Set-Cookie类似

WWW-Authenticate:来自服务器的对客户端的质询列表


访问日志access_log记录了所有对Web服务器的访问活动,下面是访问日志access_log中的一个标准记录
183.202.144.5 - - [13/Apr/2020:14:55:46 +0800] “GET / HTTP/1.1” 200 30 “-” "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:74.0) Gecko/20100101 Firefox/74.0"

日志字段所代表的内容如下:
1.远程主机IP:表明访问网站的是谁 183.202.144.5
2.空白(E-mail):为了避免用户的邮箱被垃圾邮件骚扰,第二项就用“-”取代了
3.空白(登录名):用于记录浏览者进行身份验证时提供的名字。dgf
4.请求时间:用方括号包围,而且采用“公用日志格式”或者“标准英文格式”。 时间信息最后的“+0800”表示服务器所处时区位于UTC之后的8小时。
5.方法+资源+协议:服务器收到的是一个什么样的请求。该项信息的典型格式是“METHOD RESOURCE PROTOCOL”,即“方法 资源 协议”。
METHOD: GET、POST、HEAD、……
RESOURCE: /、index.html、/default/index.php、……(请求的文件)
PROTOCOL: HTTP+版本号
6.状态代码:请求是否成功,或者遇到了什么样的错误。大多数时候,这项值是200,它表示服务器已经成功地响应浏览器的请求,一切正常。
7.发送字节数:表示发送给客户端的总字节数。它告诉我们传输是否被打断(该数值是否和文件的大小相同)。把日志记录中的这些值加起来就可以得知服务器在一天、一周或者一月内发送了多少数据。
8.客户端的系统,以及客户端访问服务器的浏览器类型


5.http状态返回状态码:

状态码首位 范围 分类
1xx 100-101 信息提示
2xx 200-206 成功
3xx 300-305 重定向
4xx 400-415 客户端错误
5xx 500-505 服务器错误
常见的状态返回码:
200 ok 301 请求的页面永久跳转 302 临时跳转 403 禁止访问该页面
404 找不到页面 500 服务器内部错误 502 网关错误
503 当前服务不可用 504 网关请求超时

3.查看系统中数据包的状态;

netstat -anto				##查看系统中所有连接
netstat -ant |awk '/^tcp|^udp/{state[$6]++}END{for(i in state){print i,state[i]}}'		##统计连接

apache原理讲解:

1.概述:apache作为最早的web服务程序,基于http协议提供网页浏览服务;
2.特点:模块化设置、开放源代码、跨平台应用、支持多种web编程语言、运行稳定;
3.apache的常见三种工作模式:
Apache 的核心模块叫多路处理模块Multi-Processing Module,简称 MPM;
MPM-prefork:多进程模式,一个进程处理一个连接,每个进程相对来讲都是独立的,这个过程会用到select机制来通知;特点:稳定、响应快、消耗大量cpu和内存、不适用于高并发的场景,keep-alive长连接占据问题;
注解:keep-alive长连接-- TCP连接在发送后将仍然保持打开状态,于是,浏览器可以继续通过相同的连接发送请求。保持连接节省了为每个请求建立新连接所需的时间,还节约了带宽。减少重复请求的次数,进而加快访问速度,实现长连接要客户端和服务端都支持长连接。

Web基础与apache讲解与搭建_第5张图片

MPM-worker:多进程多线程、一个进程开多个线程、每一个线程处理一个连接,但通知机制还是select不过可以接受更多的请求;特点:节省资源、兼容性不好、稳定性不高、适用于高并发场景,keep-alive长连接占据问题;
Web基础与apache讲解与搭建_第6张图片

MPM-event:worker的升级版、把服务器进程和连接进行分离,基于异步I/O模型。请求过来后进程并不处理请求,而是直接交由其他机制来处理,通过epoll机制来通知请求是否完成;在这个过程中,进程本身一直处于空闲状态,可以一直接收用户请求。可以实现一个进程响应多个用户请求。并且event模式对于keep-alive连接处理也有所优化,event模式有单独的线程处理keep-alive长连接,执行完毕后,又允许它释放。这样增强了高并发场景下的请求处理能力。特点:支持海量级高并发负载、消耗资源少、但其对https支持的不完美;
Web基础与apache讲解与搭建_第7张图片


总结:

不同模式效率不同,主要用于调优、命令“httpd -V |grep "Server MPM"”查看当前使用模式;

httpd_2.2版本默认的模式为prefork,httpd_2.4版本默认的模式为event;


案例:搭建apache网站服务

实验步骤:

下面是下载软件包的方法
Web基础与apache讲解与搭建_第8张图片
Web基础与apache讲解与搭建_第9张图片
Web基础与apache讲解与搭建_第10张图片
最后直接命令行输入wget 然后把复制的地址粘贴到后面
在这里插入图片描述


1.准备环境,上传软件包,并解压编译安装

rpm -e httpd --nodeps
wget http://archive.apache.org/dist/httpd/httpd-2.2.17.tar.gz
tar zxvf httpd-2.2.17.tar.gz -C /usr/src/
cd /usr/src/httpd-2.2.17/
./configure --prefix=/usr/local/httpd --enable-so --enable-rewrite --enable-cgi  &&  make  &&make install

httpd是高度模块化的程序,各个功能通过加载各个模块来实现。但前提是将功能对应的模块先编译好,以供httpd加载。

httpd对模块有两种编译方式:静态编译和动态编译。
静态编译:将模块直接编译进httpd的核心中。静态编译的所有模块都会随着httpd的启动和启动。
动态编译:将模块编译好,但不编译到httpd的核心中。要启动动态编译的模块,需要在httpd的配置文件中使用LoadModule指令加载。

注解:
–enable-so ##开启动态加载模块的功能
–enable-rewrite ##开启地址重写、重定向功能
–enable-cgi ##开启与一些动态编程语言之间进行交互的接口
在这里插入图片描述
注解:
bin:存放命令;
lib:跟httpd相关的库文件
man:帮助文档
modules:模块文件
conf:配置文件存放位置
htdocs:网页存放位置
logs:日志存放文件位置

 [root@localhost httpd-2.2.17]# cd

2.安装后优化调整

ln -s /usr/local/httpd/bin/* /usr/local/bin/    ##优化执行命令的路径

在这里插入图片描述

cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd
chmod a+x /etc/init.d/httpd

修改启动脚本如下:

vi /etc/init.d/httpd

Web基础与apache讲解与搭建_第11张图片
修改定制配置文件、准备网页文档、并启动服务

vi /usr/local/httpd/conf/httpd.conf
29 ServerRoot "/usr/local/httpd"            #httpd的安装路径
40 Listen 80                             #httpd监听的端口号
65 User daemon                         #启动httpd服务的用户
66 Group daemon                        #启动httpd服务的组
88 ServerAdmin admin@linuxfan.cn      	##修改管理员的邮箱
97 ServerName www.linuxfan.cn:80   	    ##添加网站的域名
104 DocumentRoot "/usr/local/httpd/htdocs"  #httpd的默认网页存放路径
131 "/usr/local/httpd/htdocs">		##此区域标识网页的设置,如限制、认证等
     ... 
159 </Directory>
186 ErrorLog "logs/error_log"
193 LogLevel warn
215 CustomLog "logs/access_log" common
:wq

访问顺序:先允许,后拒绝,默认拒绝所有
先拒绝,后允许,默认允许所有

准备网页文档

[root@www ~]# cat < /usr/local/httpd/htdocs/index.html


www<span class="token punctuation">.</span>linuxfan<span class="token punctuation">.</span>com<<span class="token operator">/</span>title>
<<span class="token operator">/</span>head>
 
<body>
<h1><span style=<span class="token string">"color:#3F9; font-size:36px;"</span>>www<span class="token punctuation">.</span>linuxfan<span class="token punctuation">.</span>com<<span class="token operator">/</span>h1>
<p><img src=<span class="token string">"./linux.jpg"</span> alt=<span class="token string">"www.linuxfan.com"</span> title=<span class="token string">"www.linuxfan.com width=700"</span><span class="token string">" height="</span>500" <span class="token operator">/</span>><<span class="token operator">/</span>p>
<<span class="token operator">/</span>body>
<<span class="token operator">/</span>html>
<span class="token keyword">END</span>
</code></pre> 
  <p><strong>启动服务</strong></p> 
  <pre><code class="prism language-powershell"> <span class="token function">ls</span> <span class="token operator">/</span>usr<span class="token operator">/</span>local<span class="token operator">/</span>httpd<span class="token operator">/</span>htdocs<span class="token operator">/</span>
 <span class="token operator">/</span>etc<span class="token operator">/</span>init<span class="token punctuation">.</span>d<span class="token operator">/</span>httpd <span class="token function">start</span>    <span class="token comment">##启动网站服务</span>
 netstat <span class="token operator">-</span>utpln <span class="token punctuation">|</span>grep httpd
</code></pre> 
  <p><img src="http://img.e-com-net.com/image/info8/346ede9f27364b9a8f6ea648322ad01e.jpg" alt="在这里插入图片描述" width="650" height="27"></p> 
  <pre><code class="prism language-powershell">注解:
  CLOSED          无连接是活动的或正在进行 
  LISTEN          服务器在等待进入呼叫 
  SYN_RECV        一个连接请求已经到达,等待确认 
  SYN_SENT        应用已经开始,打开一个连接 
  ESTABLISHED     正常数据传输状态<span class="token operator">/</span>当前并发连接数 
  FIN_WAIT1       应用说它已经完成 
  FIN_WAIT2       另一边已同意释放 
  TIMED_WAIT      等待所有分组死掉 
  CLOSING         两边同时尝试关闭 
  TIME_WAIT       另一边已初始化一个释放 
  LAST_ACK        等待所有分组死掉
</code></pre> 
  <p><strong>客户端访问测试</strong></p> 
  <pre><code class="prism language-powershell">yum <span class="token operator">-</span>y install elinks
elinks <span class="token operator">--</span>dump http:<span class="token operator">/</span><span class="token operator">/</span>192<span class="token punctuation">.</span>168<span class="token punctuation">.</span>17<span class="token punctuation">.</span>176
</code></pre> 
  <p><a href="http://img.e-com-net.com/image/info8/665acf8dc8994f0ea81a5a6faf1bb9a5.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/665acf8dc8994f0ea81a5a6faf1bb9a5.jpg" alt="Web基础与apache讲解与搭建_第12张图片" width="650" height="159" style="border:1px solid black;"></a><br> <a href="http://img.e-com-net.com/image/info8/9c375cff64a2476785baf6d2a43620e3.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/9c375cff64a2476785baf6d2a43620e3.jpg" alt="Web基础与apache讲解与搭建_第13张图片" width="650" height="495" style="border:1px solid black;"></a></p> 
  <hr> 
  <p><strong>继续优化</strong><br> <strong>删除apache的默认页面</strong><br> <a href="http://img.e-com-net.com/image/info8/025ca065dfe3445681bb67dcb9448b0f.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/025ca065dfe3445681bb67dcb9448b0f.jpg" alt="在这里插入图片描述" width="650" height="74"></a><br> <strong>然后删掉配置文件里第144行的<code>Indexes</code></strong></p> 
  <pre><code class="prism language-powershell">vi <span class="token operator">/</span>usr<span class="token operator">/</span>local<span class="token operator">/</span>httpd<span class="token operator">/</span>conf<span class="token operator">/</span>httpd<span class="token punctuation">.</span>conf 
</code></pre> 
  <p><a href="http://img.e-com-net.com/image/info8/07b3badc859c49dfb456be12d7396237.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/07b3badc859c49dfb456be12d7396237.jpg" alt="在这里插入图片描述" width="650" height="87"></a><br> <strong>最后显示下面这个页面就可以了</strong><br> <a href="http://img.e-com-net.com/image/info8/57a5752006d74e9aa66e918d73a9f3af.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/57a5752006d74e9aa66e918d73a9f3af.jpg" alt="Web基础与apache讲解与搭建_第14张图片" width="543" height="287" style="border:1px solid black;"></a><br> <strong>想要显示出内容,必须跟上文件名称</strong><br> <a href="http://img.e-com-net.com/image/info8/ecc41b443a284609a80f4c6266bbb162.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/ecc41b443a284609a80f4c6266bbb162.jpg" alt="Web基础与apache讲解与搭建_第15张图片" width="557" height="205" style="border:1px solid black;"></a><br> <a href="http://img.e-com-net.com/image/info8/492d5b80c94e4b9c88ad382794c299b1.png" target="_blank"><img src="http://img.e-com-net.com/image/info8/492d5b80c94e4b9c88ad382794c299b1.png" alt="在这里插入图片描述" width="559" height="64"></a></p> 
  <hr> 
  <h2>优化httpd服务:调整其工作模式</h2> 
  <p><strong>1.查看工作模式:</strong></p> 
  <pre><code class="prism language-powershell"><span class="token operator">/</span>usr<span class="token operator">/</span>local<span class="token operator">/</span>httpd<span class="token operator">/</span>bin<span class="token operator">/</span>httpd <span class="token operator">-</span>V <span class="token punctuation">|</span>grep MPM		<span class="token comment">##查看工作模式</span>
</code></pre> 
  <p><a href="http://img.e-com-net.com/image/info8/7e9bd24f649a4d89992d9b6d24ce2e09.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/7e9bd24f649a4d89992d9b6d24ce2e09.jpg" alt="在这里插入图片描述" width="650" height="80"></a><br> <strong>注:设置httpd的工作模式时,不仅考虑网站的并发连接等工作效率,也要考虑服务器硬件占用情况,内存尤为重点考虑</strong></p> 
  <hr> 
  <p><strong>2.prefork(进程+子进程)模式,默认:</strong><br> <a href="http://img.e-com-net.com/image/info8/de69cd03cfaa4928ba8a6a233480e51d.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/de69cd03cfaa4928ba8a6a233480e51d.jpg" alt="Web基础与apache讲解与搭建_第16张图片" width="650" height="288" style="border:1px solid black;"></a><br> <a href="http://img.e-com-net.com/image/info8/cb41ae8e51ad4ca787ed86f1ac56835a.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/cb41ae8e51ad4ca787ed86f1ac56835a.jpg" alt="Web基础与apache讲解与搭建_第17张图片" width="650" height="201" style="border:1px solid black;"></a><br> <strong>修改配置文件</strong></p> 
  <pre><code class="prism language-powershell">vi <span class="token operator">/</span>usr<span class="token operator">/</span>local<span class="token operator">/</span>httpd<span class="token operator">/</span>conf<span class="token operator">/</span>extra<span class="token operator">/</span>httpd<span class="token operator">-</span>mpm<span class="token punctuation">.</span>conf
</code></pre> 
  <p><a href="http://img.e-com-net.com/image/info8/bdbf89f861754f75b0fa456e39cb088c.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/bdbf89f861754f75b0fa456e39cb088c.jpg" alt="Web基础与apache讲解与搭建_第18张图片" width="650" height="202" style="border:1px solid black;"></a><br> <strong>去掉注释让<code>httpd.conf</code>生效</strong></p> 
  <pre><code class="prism language-powershell">vi <span class="token operator">/</span>usr<span class="token operator">/</span>local<span class="token operator">/</span>httpd<span class="token operator">/</span>conf<span class="token operator">/</span>httpd<span class="token punctuation">.</span>conf <span class="token operator">+</span>370
</code></pre> 
  <p><a href="http://img.e-com-net.com/image/info8/b3a5dad5a179452193e4631b49ad37e2.png" target="_blank"><img src="http://img.e-com-net.com/image/info8/b3a5dad5a179452193e4631b49ad37e2.png" alt="在这里插入图片描述" width="666" height="44"></a><br> <strong>重启服务查看进程</strong></p> 
  <pre><code class="prism language-powershell"><span class="token operator">/</span>etc<span class="token operator">/</span>init<span class="token punctuation">.</span>d<span class="token operator">/</span>httpd  restart
<span class="token function">ps</span> aux <span class="token punctuation">|</span>grep httpd <span class="token punctuation">|</span>grep <span class="token operator">-</span>v grep	     <span class="token comment">##一个主进程,五个子进程</span>
</code></pre> 
  <p><a href="http://img.e-com-net.com/image/info8/87a30bb130d54e6fb0cbbc0305175269.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/87a30bb130d54e6fb0cbbc0305175269.jpg" alt="在这里插入图片描述" width="650" height="89"></a></p> 
  <hr> 
  <p><strong>3.worker(多进程+多线程)工作模式:</strong><br> <a href="http://img.e-com-net.com/image/info8/533fd84b10274fd0b1be827de2c9469f.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/533fd84b10274fd0b1be827de2c9469f.jpg" alt="Web基础与apache讲解与搭建_第19张图片" width="650" height="121" style="border:1px solid black;"></a><br> <a href="http://img.e-com-net.com/image/info8/5ebdb98cf98343a2aa150a7deaf83fe2.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/5ebdb98cf98343a2aa150a7deaf83fe2.jpg" alt="Web基础与apache讲解与搭建_第20张图片" width="650" height="220" style="border:1px solid black;"></a><br> <strong>注:如若开启worker工作模式,需要在编译安装时–with-mpm=worker选项指定</strong><br> <a href="http://img.e-com-net.com/image/info8/a2e1999cbf53483fb95cd11dbaf98767.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/a2e1999cbf53483fb95cd11dbaf98767.jpg" alt="Web基础与apache讲解与搭建_第21张图片" width="650" height="188" style="border:1px solid black;"></a><br> <strong>当从prefork切换到worker时,重新编译安装时</strong></p> 
  <pre><code class="prism language-powershell">cd <span class="token operator">/</span>usr<span class="token operator">/</span>src<span class="token operator">/</span>httpd<span class="token operator">-</span>2<span class="token punctuation">.</span>2<span class="token punctuation">.</span>17<span class="token operator">/</span>   <span class="token comment">##进入配置目录</span>
<span class="token punctuation">.</span><span class="token operator">/</span>configure <span class="token operator">--</span>prefix=<span class="token operator">/</span>usr<span class="token operator">/</span>local<span class="token operator">/</span>httpd  <span class="token operator">--</span>enable<span class="token operator">-</span>so <span class="token operator">--</span>enable<span class="token operator">-</span>rewrite <span class="token operator">--</span>enable<span class="token operator">-</span>cgi <span class="token operator">--</span>with<span class="token operator">-</span>mpm=worker   <span class="token comment">##切换到worker</span>
make clean   <span class="token comment">##清空缓存</span>
make && make install   <span class="token comment">##重新编译安装</span>
</code></pre> 
  <p><strong>此时已经切换成功</strong><br> <a href="http://img.e-com-net.com/image/info8/28fbb450d03647b394f3183e239ab3f0.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/28fbb450d03647b394f3183e239ab3f0.jpg" alt="在这里插入图片描述" width="650" height="41"></a><br> <strong>优化参数</strong><br> vi /usr/local/httpd/conf/extra/httpd-mpm.conf<br> <a href="http://img.e-com-net.com/image/info8/57031e2b49184a47b8f4842a043771ff.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/57031e2b49184a47b8f4842a043771ff.jpg" alt="Web基础与apache讲解与搭建_第22张图片" width="650" height="250" style="border:1px solid black;"></a><br> <strong>去掉注释</strong></p> 
  <pre><code class="prism language-powershell"><span class="token namespace">[root@www ~]</span><span class="token comment"># vi /usr/local/httpd/conf/httpd.conf +370  </span>
370  Include conf<span class="token operator">/</span>extra<span class="token operator">/</span>httpd<span class="token operator">-</span>mpm<span class="token punctuation">.</span>conf
:wq
</code></pre> 
  <p><a href="http://img.e-com-net.com/image/info8/5f40d61f0b0543f0a0ca4d1c703044c9.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/5f40d61f0b0543f0a0ca4d1c703044c9.jpg" alt="在这里插入图片描述" width="650" height="87"></a></p> 
  <hr> 
  <p><strong>4.event工作模式:</strong><br> <a href="http://img.e-com-net.com/image/info8/076340ac76ab494da773d89b08164dce.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/076340ac76ab494da773d89b08164dce.jpg" alt="Web基础与apache讲解与搭建_第23张图片" width="650" height="411" style="border:1px solid black;"></a><br> <strong>注:如若开启event工作模式,需要在编译安装时–with-mpm=event选项指定,并且内核版本最低需要2.6</strong></p> 
  <pre><code class="prism language-powershell">cd <span class="token operator">/</span>usr<span class="token operator">/</span>src<span class="token operator">/</span>httpd<span class="token operator">-</span>2<span class="token punctuation">.</span>2<span class="token punctuation">.</span>17<span class="token operator">/</span>   <span class="token comment">##进入配置目录</span>
<span class="token punctuation">.</span><span class="token operator">/</span>configure <span class="token operator">--</span>prefix=<span class="token operator">/</span>usr<span class="token operator">/</span>local<span class="token operator">/</span>httpd  <span class="token operator">--</span>enable<span class="token operator">-</span>so <span class="token operator">--</span>enable<span class="token operator">-</span>rewrite <span class="token operator">--</span>enable<span class="token operator">-</span>cgi <span class="token operator">--</span>with<span class="token operator">-</span>mpm=event   <span class="token comment">##切换到event</span>
make clean   <span class="token comment">##清空缓存</span>
make && make install   <span class="token comment">##重新编译安装</span>
</code></pre> 
  <p><strong>查看工作模式</strong></p> 
  <pre><code>/usr/local/httpd/bin/httpd -V |grep MPM
</code></pre> 
  <p><a href="http://img.e-com-net.com/image/info8/7cca77e04b1d4992aafd8e1165082cff.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/7cca77e04b1d4992aafd8e1165082cff.jpg" alt="在这里插入图片描述" width="650" height="64"></a><br> <strong>可以看到上面 此时已经成功切换为event模式</strong></p> 
  <p><strong>在配置文件末尾添加参数</strong></p> 
  <pre><code>vi /usr/local/httpd/conf/extra/httpd-mpm.conf
</code></pre> 
  <pre><code class="prism language-powershell">111 <IfModule mpm_event_module>
112 ServerLimit         1000         
113 StartServers         20
114 MinSpareThreads        25
115 MaxSpareThreads      1200
116 ThreadsPerChild      50
117 MaxConnectionsPerChild  1000
118 <<span class="token operator">/</span>IfModule>   
</code></pre> 
  <p><a href="http://img.e-com-net.com/image/info8/5f476354ebf44563baea0150ee7f4beb.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/5f476354ebf44563baea0150ee7f4beb.jpg" alt="Web基础与apache讲解与搭建_第24张图片" width="650" height="215" style="border:1px solid black;"></a><br> <strong>去掉注释</strong></p> 
  <pre><code class="prism language-powershell"><span class="token namespace">[root@www ~]</span><span class="token comment"># vi /usr/local/httpd/conf/httpd.conf +370</span>
370  Include conf<span class="token operator">/</span>extra<span class="token operator">/</span>httpd<span class="token operator">-</span>mpm<span class="token punctuation">.</span>conf
:wq
</code></pre> 
  <p><a href="http://img.e-com-net.com/image/info8/ee49d12c9dee4a658823e49d75e2b50a.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/ee49d12c9dee4a658823e49d75e2b50a.jpg" alt="Web基础与apache讲解与搭建_第25张图片" width="650" height="123" style="border:1px solid black;"></a><br> <strong>动态编译:</strong></p> 
  <pre><code class="prism language-powershell"><span class="token punctuation">.</span><span class="token operator">/</span>configure  <span class="token operator">--</span>prefix=<span class="token operator">/</span>usr<span class="token operator">/</span>local<span class="token operator">/</span>httpd <span class="token operator">--</span>enable<span class="token operator">-</span>so  <span class="token operator">--</span>enable<span class="token operator">-</span>modules=most   <span class="token operator">--</span>enable<span class="token operator">-</span>mpms<span class="token operator">-</span>shared=all
</code></pre> 
  <p><strong>查看模块</strong></p> 
  <pre><code>/usr/local/httpd/bin/apachectl -D DUMP_MODULES
</code></pre> 
  <p><a href="http://img.e-com-net.com/image/info8/e75568c960cc462399df9e7d067f3fbc.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/e75568c960cc462399df9e7d067f3fbc.jpg" alt="在这里插入图片描述" width="650" height="44"></a></p> 
  <hr> 
 </div> 
</div>
                            </div>
                        </div>
                    </div>
                    <!--PC和WAP自适应版-->
                    <div id="SOHUCS" sid="1402735760800534528"></div>
                    <script type="text/javascript" src="/views/front/js/chanyan.js"></script>
                    <!-- 文章页-底部 动态广告位 -->
                    <div class="youdao-fixed-ad" id="detail_ad_bottom"></div>
                </div>
                <div class="col-md-3">
                    <div class="row" id="ad">
                        <!-- 文章页-右侧1 动态广告位 -->
                        <div id="right-1" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad">
                            <div class="youdao-fixed-ad" id="detail_ad_1"> </div>
                        </div>
                        <!-- 文章页-右侧2 动态广告位 -->
                        <div id="right-2" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad">
                            <div class="youdao-fixed-ad" id="detail_ad_2"></div>
                        </div>
                        <!-- 文章页-右侧3 动态广告位 -->
                        <div id="right-3" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad">
                            <div class="youdao-fixed-ad" id="detail_ad_3"></div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
    <div class="container">
        <h4 class="pt20 mb15 mt0 border-top">你可能感兴趣的:(云计算,http,linux)</h4>
        <div id="paradigm-article-related">
            <div class="recommend-post mb30">
                <ul class="widget-links">
                    <li><a href="/article/1946592891820371968.htm"
                           title="暑期自学嵌入式——Day02(C语言阶段)" target="_blank">暑期自学嵌入式——Day02(C语言阶段)</a>
                        <span class="text-muted">一位搞嵌入式的 genius</span>
<a class="tag" taget="_blank" href="/search/%E5%B5%8C%E5%85%A5%E5%BC%8F%E8%87%AA%E5%AD%A6%E4%B8%93%E6%A0%8F/1.htm">嵌入式自学专栏</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/%E5%B5%8C%E5%85%A5%E5%BC%8FC%E8%AF%AD%E8%A8%80/1.htm">嵌入式C语言</a>
                        <div>点关注不迷路哟。你的点赞、收藏,一键三连,是我持续更新的动力哟!!!主页:一位搞嵌入式的genius-CSDN博客https://blog.csdn.net/m0_73589512?spm=1000.2115.3001.5343目录Day02→数据类型(上)数据类型分类基本数据类型整形数据类型字符型数据类型实型数据类型构造数据类型特殊数据类型布尔类型详解基本概念使用注意事项预处理分析知识小结Day</div>
                    </li>
                    <li><a href="/article/1946592892621484032.htm"
                           title="暑期自学嵌入式——Day03(C语言阶段)" target="_blank">暑期自学嵌入式——Day03(C语言阶段)</a>
                        <span class="text-muted">一位搞嵌入式的 genius</span>
<a class="tag" taget="_blank" href="/search/%E5%B5%8C%E5%85%A5%E5%BC%8F%E8%87%AA%E5%AD%A6%E4%B8%93%E6%A0%8F/1.htm">嵌入式自学专栏</a><a class="tag" taget="_blank" href="/search/c%E8%AF%AD%E8%A8%80/1.htm">c语言</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/%E5%B5%8C%E5%85%A5%E5%BC%8FC%E8%AF%AD%E8%A8%80/1.htm">嵌入式C语言</a>
                        <div>个人主页:一位搞嵌入式的genius-CSDN博客https://blog.csdn.net/m0_73589512?spm=1010.2135.3001.5343点关注不迷路哟。你的点赞、收藏,一键三连,是我持续更新的动力哟!!!目录Day03:输入输出(上)Day03→嵌入式开发输入输出(上)知识纲要数据输出1)C语言IO特性2)字符输出函数(putchar)例题:putchar函数应用3)编</div>
                    </li>
                    <li><a href="/article/1946592240998608896.htm"
                           title="CentOS7下Systemctl详解" target="_blank">CentOS7下Systemctl详解</a>
                        <span class="text-muted">JerryAi</span>

                        <div>一、Systemd简介Systemd是由红帽公司的一名叫做LennartPoettering的员工开发,systemd是Linux系统中最新的初始化系统(init),它主要的设计目的是克服SysV固有的缺点,提高系统的启动速度,systemd和upstart是竞争对手,ubantu上使用的是upstart的启动方式,centos7上使用systemd替换了SysV,Systemd目录是要取代Uni</div>
                    </li>
                    <li><a href="/article/1946590749848039424.htm"
                           title="Duckdb处理excel文件" target="_blank">Duckdb处理excel文件</a>
                        <span class="text-muted">__风__</span>
<a class="tag" taget="_blank" href="/search/duckdb/1.htm">duckdb</a><a class="tag" taget="_blank" href="/search/excel/1.htm">excel</a>
                        <div>duckdb通过xlsx扩展读写excel文件,但是不支持xls格式。具体可以参考https://duckdb.org/docs/stable/guides/file_formats/excel_importhttps://duckdb.org/docs/stable/guides/file_formats/excel_export常用测试例子:使用duckdbcli工具将PG的数据导入到exce</div>
                    </li>
                    <li><a href="/article/1946589993862492160.htm"
                           title="微信发送器项目指南:从结构到配置的全方位解析" target="_blank">微信发送器项目指南:从结构到配置的全方位解析</a>
                        <span class="text-muted">余媛奕Lowell</span>

                        <div>微信发送器项目指南:从结构到配置的全方位解析项目目录结构及介绍本开源项目【微信发送器](https://github.com/bluedazzle/wechat_sender.git)采用清晰的目录布局,确保开发者能够迅速定位核心组件。以下是关键目录及其简介:src:核心源代码所在目录。main.py:主要运行入口,负责整个应用的启动和逻辑控制。wechat_sender:业务逻辑包,封装了与微信</div>
                    </li>
                    <li><a href="/article/1946588984889110528.htm"
                           title="etcd:从应用场景到实现原理的全方位解读" target="_blank">etcd:从应用场景到实现原理的全方位解读</a>
                        <span class="text-muted"></span>

                        <div>转自:http://www.infoq.com/cn/articles/etcd-interpretation-application-scenario-implement-principleetcd:从应用场景到实现原理的全方位解读随着CoreOS和Kubernetes等项目在开源社区日益火热,它们项目中都用到的etcd组件作为一个高可用强一致性的服务发现存储仓库,渐渐为开发人员所关注。在云计算</div>
                    </li>
                    <li><a href="/article/1946588732165517312.htm"
                           title="【Linux学习】Ubuntu对用户进行管理" target="_blank">【Linux学习】Ubuntu对用户进行管理</a>
                        <span class="text-muted">Small___ming</span>
<a class="tag" taget="_blank" href="/search/Linux/1.htm">Linux</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/ubuntu/1.htm">ubuntu</a><a class="tag" taget="_blank" href="/search/%E7%94%A8%E6%88%B7%E7%AE%A1%E7%90%86/1.htm">用户管理</a>
                        <div>目录写在前面【Linux学习】Ubuntu对用户进行管理一、为什么需要用户管理?二、用户管理基础操作(一)用户管理1.用户管理命令表格2.关键操作场景说明场景一:创建用户并配置权限场景二:修改用户属性场景三:设置密码策略场景四:锁定并删除用户3.配置文件说明4.注意事项5.其他问题(1)新创建的用户目录在哪里?(2)多硬盘服务器如何指定用户目录?方法一:创建用户时直接指定路径方法二:挂载硬盘到`/</div>
                    </li>
                    <li><a href="/article/1946587975668264960.htm"
                           title="2025年计算机领域年度主题:融合创新与技术突破" target="_blank">2025年计算机领域年度主题:融合创新与技术突破</a>
                        <span class="text-muted">Гений.大天才</span>
<a class="tag" taget="_blank" href="/search/%E9%87%8F%E5%AD%90%E8%AE%A1%E7%AE%97/1.htm">量子计算</a><a class="tag" taget="_blank" href="/search/2025%E5%B9%B4%E5%BA%A6%E4%B8%BB%E9%A2%98/1.htm">2025年度主题</a>
                        <div>2025年计算机领域年度主题:融合创新与技术突破一、引言2025年,计算机领域迎来了诸多重大技术突破和行业动态。这些进展不仅推动了技术的边界,也为开发者和企业带来了新的机遇和挑战。2025年的年度主题是“融合创新与技术突破”,这一主题反映了当前计算机领域技术融合的趋势,以及在各个子领域中取得的重大突破。本文将从量子计算、AI芯片、云计算、区块链等多个方面,详细介绍2025年计算机领域的技术进展和应</div>
                    </li>
                    <li><a href="/article/1946578776431325184.htm"
                           title="STM32F103R6的Keil和Protues仿真-点亮LED灯" target="_blank">STM32F103R6的Keil和Protues仿真-点亮LED灯</a>
                        <span class="text-muted">怎么就重名了</span>
<a class="tag" taget="_blank" href="/search/stm32/1.htm">stm32</a><a class="tag" taget="_blank" href="/search/%E5%B5%8C%E5%85%A5%E5%BC%8F%E7%A1%AC%E4%BB%B6/1.htm">嵌入式硬件</a><a class="tag" taget="_blank" href="/search/%E5%8D%95%E7%89%87%E6%9C%BA/1.htm">单片机</a>
                        <div>STM32F103R6的Keil和Protues仿真-点亮LED灯STM32F103R6的Keil和Protues仿真-点亮LED灯1、效果1.1、低电平点亮1.2、高电平点亮2、代码2.1、Keil2.2、protueshttps://gitee.com/xiaolixi/l-stm32/tree/master/STM32Protues/diandeng-lowhttps://gitee.com</div>
                    </li>
                    <li><a href="/article/1946577263839473664.htm"
                           title="Qualcomm Linux 蓝牙指南学习--概述" target="_blank">Qualcomm Linux 蓝牙指南学习--概述</a>
                        <span class="text-muted">专业开发者</span>
<a class="tag" taget="_blank" href="/search/%E8%93%9D%E7%89%99/1.htm">蓝牙</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a>
                        <div>前言QualcommTechnologies推出的Linux蓝牙指南详细介绍了基于QualcommRB3Gen2和IQ-9100Beta开发套件的蓝牙解决方案。该文档涵盖BlueZ和Fluoride协议栈的功能验证流程,支持蓝牙5.2核心规范,包括WCN6750/WCN6856/QCA6698AQ芯片组的特性。主要内容分为三部分:‌1.功能架构‌支持GAP、SPP、A2DP等10种蓝牙Profil</div>
                    </li>
                    <li><a href="/article/1946577264409899008.htm"
                           title="Qualcomm Linux 蓝牙指南学习--入门指南" target="_blank">Qualcomm Linux 蓝牙指南学习--入门指南</a>
                        <span class="text-muted">专业开发者</span>
<a class="tag" taget="_blank" href="/search/%E8%93%9D%E7%89%99/1.htm">蓝牙</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a>
                        <div>前言QualcommTechnologies推出的Linux蓝牙指南详细介绍了基于QualcommRB3Gen2和IQ-9100Beta开发套件的蓝牙解决方案。该文档涵盖BlueZ和Fluoride协议栈的功能验证流程,支持蓝牙5.2核心规范,包括WCN6750/WCN6856/QCA6698AQ芯片组的特性。主要内容分为三部分:‌1.功能架构‌支持GAP、SPP、A2DP等10种蓝牙Profil</div>
                    </li>
                    <li><a href="/article/1946573985810542592.htm"
                           title="【RK3568 嵌入式linux QT开发笔记】 二维码开源库 libqrencode 交叉静态编译和使用" target="_blank">【RK3568 嵌入式linux QT开发笔记】 二维码开源库 libqrencode 交叉静态编译和使用</a>
                        <span class="text-muted"></span>

                        <div>本文参考文章:https://blog.csdn.net/qq_41630102/article/details/108306720参考文章有些地方描述的有疏漏,导致笔者学习过程中,编译的.a文件无法在RK3568平台运行,故写本文做了修正,以下仅是自我学习的笔记,没有写的很详细。一:下载软件包https://download.csdn.net/download/qq_41630102/12781</div>
                    </li>
                    <li><a href="/article/1946573481504206848.htm"
                           title="如何通过linux黑窗口实现对远程服务器的操作" target="_blank">如何通过linux黑窗口实现对远程服务器的操作</a>
                        <span class="text-muted"></span>

                        <div>①选择合适的云平台进行设备的租用并复制好远程设备的IP地址②使用管理员权限打开黑窗口③输入命令连接远程的设备:ssh用户名@服务器IP地址,此时得到的是一个什么都没有的设备④由于该设备什么都没有,故先:sudoaptupdate,然后安装gcc编译器:sudoaptinstallbulid-essential,再然后安装python:sudoaptinstallpython-3.8,再然后安装mi</div>
                    </li>
                    <li><a href="/article/1946573017752596480.htm"
                           title="PYTHON对接第三方验证码短信接口" target="_blank">PYTHON对接第三方验证码短信接口</a>
                        <span class="text-muted">短信接口开发</span>

                        <div>PYTHON短信接口对接demo#接口类型:互亿无线触发短信接口,支持发送验证码短信、订单通知短信等。#账户注册:请通过该地址开通账户http://user.ihuyi.com/?DKimmu#注意事项:#(1)调试期间,请使用用系统默认的短信内容:您的验证码是:【变量】。请不要把验证码泄露给其他人。#(2)请使用APIID及APIKEY来调用接口,可在会员中心获取;#(3)该代码仅供接入互亿无线</div>
                    </li>
                    <li><a href="/article/1946572596124381184.htm"
                           title="第二十四篇 Requests+BeautifulSoup,秒抓网站信息!你的智能信息收集器!" target="_blank">第二十四篇 Requests+BeautifulSoup,秒抓网站信息!你的智能信息收集器!</a>
                        <span class="text-muted">爱分享的飘哥</span>
<a class="tag" taget="_blank" href="/search/%E6%97%A5%E5%B8%B8%E6%95%88%E7%8E%87%E8%87%AA%E5%8A%A8%E5%8C%96/1.htm">日常效率自动化</a><a class="tag" taget="_blank" href="/search/beautifulsoup/1.htm">beautifulsoup</a><a class="tag" taget="_blank" href="/search/Python%E7%88%AC%E8%99%AB/1.htm">Python爬虫</a><a class="tag" taget="_blank" href="/search/Requests/1.htm">Requests</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E6%8A%93%E5%8F%96/1.htm">数据抓取</a><a class="tag" taget="_blank" href="/search/%E5%8A%9E%E5%85%AC%E8%87%AA%E5%8A%A8%E5%8C%96/1.htm">办公自动化</a><a class="tag" taget="_blank" href="/search/%E4%BF%A1%E6%81%AF%E6%94%B6%E9%9B%86/1.htm">信息收集</a>
                        <div>python爬虫序言:手动复制粘贴网页数据?效率太低了1.网页数据抓取基础:HTTP请求与网页结构速览1.1HTTP请求:浏览器如何和网页交互?1.2网页结构:HTML,信息的载体2.Requests库:发送网络请求的利器2.1安装与基础用法:你的第一个HTTP请求2.2处理请求头与参数:模拟浏览器访问3.BeautifulSoup:解析网页的利器3.1安装与基础用法:快速解析HTML内容3.2精</div>
                    </li>
                    <li><a href="/article/1946569313938894848.htm"
                           title="【LeetCode 3136. 有效单词】解析" target="_blank">【LeetCode 3136. 有效单词】解析</a>
                        <span class="text-muted"></span>

                        <div>目录LeetCode中国站原文原始题目题目描述示例1:示例2:示例3:提示:讲解化繁为简:如何优雅地“盘”逻辑判断题第一部分:算法思想——“清单核对”与“一票否决”第二部分:代码实现——清晰的逻辑翻译实现一:常规判断逻辑实现二:使用正则表达式(一行代码的“炫技”)第三部分:总结LeetCode中国站原文https://leetcode.cn/problems/valid-word/原始题目题目描述</div>
                    </li>
                    <li><a href="/article/1946568809561255936.htm"
                           title="19c补丁-20250715发布的19.28补丁的校验码" target="_blank">19c补丁-20250715发布的19.28补丁的校验码</a>
                        <span class="text-muted">bestsun999</span>
<a class="tag" taget="_blank" href="/search/Oracle_19c/1.htm">Oracle_19c</a><a class="tag" taget="_blank" href="/search/oracle/1.htm">oracle</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a>
                        <div>Patch6880880:OPatch12.2.0.1.47forDB19.0.0.0.0(Jul2025)OPatch12.2.0.1.47forDB19.0.0.0.0(Jul2025)(Patch)p6880880_190000_Linux-x86-64.zip69.5MB(72847006bytes)SHA-10F709DB263D031393086EC55F6D5270A73DE509D</div>
                    </li>
                    <li><a href="/article/1946567932712644608.htm"
                           title="京东超级补贴优惠劵领取入口,京东超级补贴优惠劵领取方法教程" target="_blank">京东超级补贴优惠劵领取入口,京东超级补贴优惠劵领取方法教程</a>
                        <span class="text-muted">古楼</span>

                        <div>京东超级补贴优惠劵以及京东百亿补贴优惠劵怎么领,今天把正确的方法分享给大家,文章最后有超级省钱教程;1、京东超级补贴有两种进入方式;①微信识别官方活动二维码进入优惠补贴会场②通过官方链接进入(部分网页无法正常跳转,可复制到微信即可进入)【京东】超级补贴,官方补贴,款款爆品,周周更新!戳>https://u.jd.com/ss4o9Em2、京东百亿补贴入口和超级补贴进入方式一样;京东百亿补贴,天天低</div>
                    </li>
                    <li><a href="/article/1946566789441843200.htm"
                           title="初识linux" target="_blank">初识linux</a>
                        <span class="text-muted">贩卖纯净水.</span>
<a class="tag" taget="_blank" href="/search/Linux/1.htm">Linux</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a>
                        <div>Linux从哪里来?(东土大唐)它是怎么发展的?(一个筋斗云翻身)历史沿革我是程序猿,你是运动员,我们都有缘。作为一个码农,有一些计算机界的“常识”是需要了解的。计算机是在什么时候诞生的呢?又是在一个怎样的背景下,计算机诞生了呢?计算机的发明其实早期的计算机是为了给军事提供支持才被发明出来的,被用于计算导弹弹道轨迹。在美苏冷战时期,军备竞赛转变为科技竞赛,计算机于对抗中产生,首先应用于军事。计算机</div>
                    </li>
                    <li><a href="/article/1946560111560421376.htm"
                           title="iOS 苹果开发最全 架构总结 实践" target="_blank">iOS 苹果开发最全 架构总结 实践</a>
                        <span class="text-muted"></span>

                        <div>源码仓库地址:https://github.com/lagoueduCol/iOS-linyongjianiOS工程化实践:告别手工时代,构建高效开发体系背景与挑战:自动化与工程化的必然趋势传统的iOS开发模式常受限于封闭系统和工具链的缺失,导致大量重复性工作依赖手工操作。这种模式效率低下、错误率高、维护成本高昂,已无法满足现代企业对开发速度、质量和稳定性的更高要求。自动化与工程化已成为必然选择。</div>
                    </li>
                    <li><a href="/article/1946557357081292800.htm"
                           title="github push 失败解决方案" target="_blank">github push 失败解决方案</a>
                        <span class="text-muted">日不落000</span>

                        <div>问题1:之前一直很好用的Git,今天突然push失败,报错如下:YInit[master]⚡gitpushfatal:unabletoaccess'https://github.com/ribuluo000/react-native-boilerplate.git/':Emptyreplyfromserver问题2:github.com在Firefox访问也慢的不行,基本不可以使用了,Chrome</div>
                    </li>
                    <li><a href="/article/1946555953524568064.htm"
                           title="初识linux(一):全面了解linux目录结构&基础操作指令详解" target="_blank">初识linux(一):全面了解linux目录结构&基础操作指令详解</a>
                        <span class="text-muted">whelloworldw</span>
<a class="tag" taget="_blank" href="/search/linux%E7%B3%BB%E7%BB%9F%E7%BC%96%E7%A8%8B/1.htm">linux系统编程</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a><a class="tag" taget="_blank" href="/search/%E6%9C%8D%E5%8A%A1%E5%99%A8/1.htm">服务器</a>
                        <div>今天小风将带着大家进行有关liunx部分章节的学习,由于是第一节初识linux部分的内容,所以内容理解起来并不会太过困难。在本篇博客中,小风将向大家具体讲解一下内容:初识Linux操作系统初识Xshell登录命令,简单了解一下操作系统基本概念使用常用Linux命令,了解linux系统目录结构和访问方式一、初识linux操作系统1.linux发展史1991年10月5日,赫尔辛基大学的一名研究生Lin</div>
                    </li>
                    <li><a href="/article/1946553054052544512.htm"
                           title="钉钉 Ubuntu x64 版本安装与应用" target="_blank">钉钉 Ubuntu x64 版本安装与应用</a>
                        <span class="text-muted"></span>

                        <div>本文还有配套的精品资源,点击获取简介:钉钉是阿里巴巴集团推出的企业通讯和协作平台,集成了即时通讯、日程管理等功能。本Ubuntux64版为64位Linux系统用户提供了专属的安装包。通过简单的命令行安装步骤,用户可以享受到支持窗口缩放的便捷应用体验。该软件包已经经过测试,确保兼容Ubuntu系统,并随附readme.txt文件以指导用户安装。1.钉钉应用简介钉钉是阿里巴巴集团推出的企业通讯与协同办</div>
                    </li>
                    <li><a href="/article/1946549400151060480.htm"
                           title="【自学linux】计算机体系结构和操作系统第二章" target="_blank">【自学linux】计算机体系结构和操作系统第二章</a>
                        <span class="text-muted">java攻城狮k</span>
<a class="tag" taget="_blank" href="/search/%E8%B7%9F%E7%9D%80QS50%E8%87%AA%E5%AD%A6%E7%BC%96%E7%A8%8B/1.htm">跟着QS50自学编程</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/%E7%B3%BB%E7%BB%9F%E6%9E%B6%E6%9E%84/1.htm">系统架构</a><a class="tag" taget="_blank" href="/search/unix/1.htm">unix</a><a class="tag" taget="_blank" href="/search/%E6%9C%8D%E5%8A%A1%E5%99%A8/1.htm">服务器</a>
                        <div>操作系统第一讲-介绍操作系统本门课程使用unix和linux作为案例讲解操作系统是如何工作的。首先学习给虚拟机安装和管理一个典型的linux系统,虚拟机运行在windows下。我们讨论操作系统是什么、它们在计算机环境中的使用和用一点篇幅回顾一下Unix系统的历史。一、介绍1、什么是操作系统(operatingsystemorO/S)?一种典型的大型软件,允许计算机硬件用户:1)运行各式各样的软件(</div>
                    </li>
                    <li><a href="/article/1946548388451381248.htm"
                           title="关于Spring RestTemplate" target="_blank">关于Spring RestTemplate</a>
                        <span class="text-muted"></span>

                        <div>一、概述RestTemplate是SpringFramework提供的一个同步HTTP客户端工具,用于简化与RESTfulAPI的交互。它封装了底层HTTP通信细节,提供了统一的API来发送各种HTTP请求(GET、POST、PUT、DELETE等),并自动处理响应数据的序列化和反序列化。二、依赖配置如果使用Maven项目,需要在pom.xml中添加以下依赖:xml  org.springfram</div>
                    </li>
                    <li><a href="/article/1946548009353408512.htm"
                           title="Day04_C语言网络编程20250716_sql语言大全" target="_blank">Day04_C语言网络编程20250716_sql语言大全</a>
                        <span class="text-muted">liujing10232929</span>
<a class="tag" taget="_blank" href="/search/C%E8%AF%AD%E8%A8%80%E7%BD%91%E7%BB%9C%E7%BC%96%E7%A8%8B/1.htm">C语言网络编程</a><a class="tag" taget="_blank" href="/search/c%E8%AF%AD%E8%A8%80/1.htm">c语言</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/1.htm">网络</a><a class="tag" taget="_blank" href="/search/sql/1.htm">sql</a>
                        <div>linux中sql语法大全:MYSQL数据库什么是数据库:关系型数据管理系统数据库的结构层次:数据库文件(后缀名.db)->表单->字段->存储的数据数据库里面针对数据的所有操作,都需要使用指令去实现MYSQL数据库特点:特别适合web的环境,和PHP结合非常好低版本的MYSQL依旧是开源软件,适合用来做二次开发先安装一下mysql安装前,检测是否安装了mysql:rpm–qa|grepmysql</div>
                    </li>
                    <li><a href="/article/1946545868245102592.htm"
                           title="ROS1/Linux——linux虚拟机主ip地址:网络信息不可用" target="_blank">ROS1/Linux——linux虚拟机主ip地址:网络信息不可用</a>
                        <span class="text-muted">eagle_Annie</span>
<a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/1.htm">网络</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/tcp%2Fip/1.htm">tcp/ip</a>
                        <div>ROS1/Linux——linux虚拟机主ip地址:网络信息不可用文章目录ROS1/Linux——linux虚拟机主ip地址:网络信息不可用参考亿点链接问题描述最终解决方案参考亿点链接Unabletofetchsomearchives,mayberunapt-getupdateortrywith–fix-missinglinux虚拟机主ip地址:网络信息不可用(没IP)【问题解决】VMWare虚拟</div>
                    </li>
                    <li><a href="/article/1946544603960242176.htm"
                           title="详细介绍一下OpenAI的API使用方法" target="_blank">详细介绍一下OpenAI的API使用方法</a>
                        <span class="text-muted">alankuo</span>
<a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a>
                        <div>以下是详细的OpenAIAPI使用方法:获取API密钥访问OpenAI官方网站(https://platform.openai.com/)并注册账号.登录后,点击右上角的个人资料名称或图标,选择“ViewAPIKeys”.在API密钥页面,点击“Createnewsecretkey”来创建新的API密钥,将其妥善保存,因为此密钥仅在生成时显示一次.安装OpenAI库在命令行中使用pipinstal</div>
                    </li>
                    <li><a href="/article/1946540696399835136.htm"
                           title="【vLLM 学习】Encoder Decoder Multimodal" target="_blank">【vLLM 学习】Encoder Decoder Multimodal</a>
                        <span class="text-muted">HyperAI超神经</span>
<a class="tag" taget="_blank" href="/search/vLLM/1.htm">vLLM</a><a class="tag" taget="_blank" href="/search/vLLM/1.htm">vLLM</a><a class="tag" taget="_blank" href="/search/KV%E7%BC%93%E5%AD%98/1.htm">KV缓存</a><a class="tag" taget="_blank" href="/search/%E5%A4%A7%E8%AF%AD%E8%A8%80%E6%A8%A1%E5%9E%8B/1.htm">大语言模型</a><a class="tag" taget="_blank" href="/search/%E6%8E%A8%E7%90%86%E5%8A%A0%E9%80%9F/1.htm">推理加速</a><a class="tag" taget="_blank" href="/search/%E5%86%85%E5%AD%98%E7%AE%A1%E7%90%86/1.htm">内存管理</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E6%BA%90%E9%A1%B9%E7%9B%AE/1.htm">开源项目</a><a class="tag" taget="_blank" href="/search/%E5%9C%A8%E7%BA%BF%E6%95%99%E7%A8%8B/1.htm">在线教程</a>
                        <div>vLLM是一款专为大语言模型推理加速而设计的框架,实现了KV缓存内存几乎零浪费,解决了内存管理瓶颈问题。更多vLLM中文文档及教程可访问→https://vllm.hyper.ai/*在线运行vLLM入门教程:零基础分步指南源码examples/offline_inference/encoder_decoder_multimodal.py#SPDX-License-Identifier:Apach</div>
                    </li>
                    <li><a href="/article/1946539436271529984.htm"
                           title="Linux常用命令——touch 命令详解" target="_blank">Linux常用命令——touch 命令详解</a>
                        <span class="text-muted">Darrich</span>
<a class="tag" taget="_blank" href="/search/Linux%E5%91%BD%E4%BB%A4%E5%A4%A7%E5%85%A8/1.htm">Linux命令大全</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a><a class="tag" taget="_blank" href="/search/%E6%9C%8D%E5%8A%A1%E5%99%A8/1.htm">服务器</a><a class="tag" taget="_blank" href="/search/ubuntu/1.htm">ubuntu</a><a class="tag" taget="_blank" href="/search/centos/1.htm">centos</a><a class="tag" taget="_blank" href="/search/kylin/1.htm">kylin</a><a class="tag" taget="_blank" href="/search/ssh/1.htm">ssh</a><a class="tag" taget="_blank" href="/search/1024%E7%A8%8B%E5%BA%8F%E5%91%98%E8%8A%82/1.htm">1024程序员节</a>
                        <div>Linux常用命令——touch详解命令介绍:touch命令是Linux系统中的一个非常基础但也非常有用的命令,它主要用于创建空文件和更新文件的访问时间和修改时间。基本语法:touch[选项]文件名常用选项和参数:-a:只更新文件的访问时间,不改变修改时间。touch-amyfile.txt-m:只更新文件的修改时间,不改变访问时间touch-mmyfile.txt-c或--no-create:如</div>
                    </li>
                                <li><a href="/article/78.htm"
                                       title="桌面上有多个球在同时运动,怎么实现球之间不交叉,即碰撞?" target="_blank">桌面上有多个球在同时运动,怎么实现球之间不交叉,即碰撞?</a>
                                    <span class="text-muted">换个号韩国红果果</span>
<a class="tag" taget="_blank" href="/search/html/1.htm">html</a><a class="tag" taget="_blank" href="/search/%E5%B0%8F%E7%90%83%E7%A2%B0%E6%92%9E/1.htm">小球碰撞</a>
                                    <div>稍微想了一下,然后解决了很多bug,最后终于把它实现了。其实原理很简单。在每改变一个小球的x y坐标后,遍历整个在dom树中的其他小球,看一下它们与当前小球的距离是否小于球半径的两倍?若小于说明下一次绘制该小球(设为a)前要把他的方向变为原来相反方向(与a要碰撞的小球设为b),即假如当前小球的距离小于球半径的两倍的话,马上改变当前小球方向。那么下一次绘制也是先绘制b,再绘制a,由于a的方向已经改变</div>
                                </li>
                                <li><a href="/article/205.htm"
                                       title="《高性能HTML5》读后整理的Web性能优化内容" target="_blank">《高性能HTML5》读后整理的Web性能优化内容</a>
                                    <span class="text-muted">白糖_</span>
<a class="tag" taget="_blank" href="/search/html5/1.htm">html5</a>
                                    <div> 
 读后感 
 
        先说说《高性能HTML5》这本书的读后感吧,个人觉得这本书前两章跟书的标题完全搭不上关系,或者说只能算是讲解了“高性能”这三个字,HTML5完全不见踪影。个人觉得作者应该首先把HTML5的大菜拿出来讲一讲,再去分析性能优化的内容,这样才会有吸引力。因为只是在线试读,没有机会看后面的内容,所以不胡乱评价了。 
  </div>
                                </li>
                                <li><a href="/article/332.htm"
                                       title="[JShop]Spring MVC的RequestContextHolder使用误区" target="_blank">[JShop]Spring MVC的RequestContextHolder使用误区</a>
                                    <span class="text-muted">dinguangx</span>
<a class="tag" taget="_blank" href="/search/jeeshop/1.htm">jeeshop</a><a class="tag" taget="_blank" href="/search/%E5%95%86%E5%9F%8E%E7%B3%BB%E7%BB%9F/1.htm">商城系统</a><a class="tag" taget="_blank" href="/search/jshop/1.htm">jshop</a><a class="tag" taget="_blank" href="/search/%E7%94%B5%E5%95%86%E7%B3%BB%E7%BB%9F/1.htm">电商系统</a>
                                    <div>    在spring mvc中,为了随时都能取到当前请求的request对象,可以通过RequestContextHolder的静态方法getRequestAttributes()获取Request相关的变量,如request, response等。         在jshop中,对RequestContextHolder的</div>
                                </li>
                                <li><a href="/article/459.htm"
                                       title="算法之时间复杂度" target="_blank">算法之时间复杂度</a>
                                    <span class="text-muted">周凡杨</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a><a class="tag" taget="_blank" href="/search/%E6%97%B6%E9%97%B4%E5%A4%8D%E6%9D%82%E5%BA%A6/1.htm">时间复杂度</a><a class="tag" taget="_blank" href="/search/%E6%95%88%E7%8E%87/1.htm">效率</a>
                                    <div>      在 
计算机科学 中, 
算法 的时间复杂度是一个 
函数 ,它定量描述了该算法的运行时间。这是一个关于代表算法输入值的 
字符串 的长度的函数。时间复杂度常用 
大O符号 表述,不包括这个函数的低阶项和首项系数。使用这种方式时,时间复杂度可被称为是 
渐近 的,它考察当输入值大小趋近无穷时的情况。 
这样用大写O()来体现算法时间复杂度的记法,</div>
                                </li>
                                <li><a href="/article/586.htm"
                                       title="Java事务处理" target="_blank">Java事务处理</a>
                                    <span class="text-muted">g21121</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a>
                                    <div>一、什么是Java事务 通常的观念认为,事务仅与数据库相关。 事务必须服从ISO/IEC所制定的ACID原则。ACID是原子性(atomicity)、一致性(consistency)、隔离性(isolation)和持久性(durability)的缩写。事务的原子性表示事务执行过程中的任何失败都将导致事务所做的任何修改失效。一致性表示当事务执行失败时,所有被该事务影响的数据都应该恢复到事务执行前的状</div>
                                </li>
                                <li><a href="/article/713.htm"
                                       title="Linux awk命令详解" target="_blank">Linux awk命令详解</a>
                                    <span class="text-muted">510888780</span>
<a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a>
                                    <div>一.  AWK 说明 
  awk是一种编程语言,用于在linux/unix下对文本和数据进行处理。数据可以来自标准输入、一个或多个文件,或其它命令的输出。它支持用户自定义函数和动态正则表达式等先进功能,是linux/unix下的一个强大编程工具。它在命令行中使用,但更多是作为脚本来使用。 
 
   awk的处理文本和数据的方式:它逐行扫描文件,从第一行到</div>
                                </li>
                                <li><a href="/article/840.htm"
                                       title="android permission" target="_blank">android permission</a>
                                    <span class="text-muted">布衣凌宇</span>
<a class="tag" taget="_blank" href="/search/Permission/1.htm">Permission</a>
                                    <div><uses-permission android:name="android.permission.ACCESS_CHECKIN_PROPERTIES" ></uses-permission>允许读写访问"properties"表在checkin数据库中,改值可以修改上传 
<uses-permission android:na</div>
                                </li>
                                <li><a href="/article/967.htm"
                                       title="Oracle和谷歌Java Android官司将推迟" target="_blank">Oracle和谷歌Java Android官司将推迟</a>
                                    <span class="text-muted">aijuans</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/oracle/1.htm">oracle</a>
                                    <div>北京时间 10 月 7 日,据国外媒体报道,Oracle 和谷歌之间一场等待已久的官司可能会推迟至 10 月 17 日以后进行,这场官司的内容是 Android 操作系统所谓的 Java 专利权之争。本案法官 William Alsup 称根据专利权专家 Florian Mueller 的预测,谷歌 Oracle 案很可能会被推迟。  该案中的第二波辩护被安排在 10 月 17 日出庭,从目前看来</div>
                                </li>
                                <li><a href="/article/1094.htm"
                                       title="linux shell 常用命令" target="_blank">linux shell 常用命令</a>
                                    <span class="text-muted">antlove</span>
<a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/shell/1.htm">shell</a><a class="tag" taget="_blank" href="/search/command/1.htm">command</a>
                                    <div>grep [options] [regex] [files] 
/var/root # grep -n "o" *                                                       
hello.c:1:/* This C source can be compiled with:                            </div>
                                </li>
                                <li><a href="/article/1221.htm"
                                       title="Java解析XML配置数据库连接(DOM技术连接 SAX技术连接)" target="_blank">Java解析XML配置数据库连接(DOM技术连接 SAX技术连接)</a>
                                    <span class="text-muted">百合不是茶</span>
<a class="tag" taget="_blank" href="/search/sax%E6%8A%80%E6%9C%AF/1.htm">sax技术</a><a class="tag" taget="_blank" href="/search/Java%E8%A7%A3%E6%9E%90xml%E6%96%87%E6%A1%A3/1.htm">Java解析xml文档</a><a class="tag" taget="_blank" href="/search/dom%E6%8A%80%E6%9C%AF/1.htm">dom技术</a><a class="tag" taget="_blank" href="/search/XML%E9%85%8D%E7%BD%AE%E6%95%B0%E6%8D%AE%E5%BA%93%E8%BF%9E%E6%8E%A5/1.htm">XML配置数据库连接</a>
                                    <div>    XML配置数据库文件的连接其实是个很简单的问题,为什么到现在才写出来主要是昨天在网上看了别人写的,然后一直陷入其中,最后发现不能自拔 所以今天决定自己完成 ,,,,现将代码与思路贴出来供大家一起学习 
  
XML配置数据库的连接主要技术点的博客; 
JDBC编程 : JDBC连接数据库 
DOM解析XML:  DOM解析XML文件 
SA</div>
                                </li>
                                <li><a href="/article/1348.htm"
                                       title="underscore.js 学习(二)" target="_blank">underscore.js 学习(二)</a>
                                    <span class="text-muted">bijian1013</span>
<a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a><a class="tag" taget="_blank" href="/search/underscore/1.htm">underscore</a>
                                    <div>        Array Functions 所有数组函数对参数对象一样适用。1.first   _.first(array, [n])   别名: head, take       返回array的第一个元素,设置了参数n,就</div>
                                </li>
                                <li><a href="/article/1475.htm"
                                       title="plSql介绍" target="_blank">plSql介绍</a>
                                    <span class="text-muted">bijian1013</span>
<a class="tag" taget="_blank" href="/search/oracle/1.htm">oracle</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a><a class="tag" taget="_blank" href="/search/plsql/1.htm">plsql</a>
                                    <div>/*
 * PL/SQL 程序设计学习笔记
 * 学习plSql介绍.pdf
 * 时间:2010-10-05
*/

--创建DEPT表
create table DEPT
(
  DEPTNO NUMBER(10),
  DNAME  NVARCHAR2(255),
  LOC    NVARCHAR2(255)
)

delete dept;

select </div>
                                </li>
                                <li><a href="/article/1602.htm"
                                       title="【Nginx一】Nginx安装与总体介绍" target="_blank">【Nginx一】Nginx安装与总体介绍</a>
                                    <span class="text-muted">bit1129</span>
<a class="tag" taget="_blank" href="/search/nginx/1.htm">nginx</a>
                                    <div>启动、停止、重新加载Nginx 
nginx            启动Nginx服务器,不需要任何参数u
nginx -s stop    快速(强制)关系Nginx服务器
nginx -s quit    优雅的关闭Nginx服务器
nginx -s reload  重新加载Nginx服务器的配置文件
nginx -s reopen  重新打开Nginx日志文件 
  
 
</div>
                                </li>
                                <li><a href="/article/1729.htm"
                                       title="spring mvc开发中浏览器兼容的奇怪问题" target="_blank">spring mvc开发中浏览器兼容的奇怪问题</a>
                                    <span class="text-muted">bitray</span>
<a class="tag" taget="_blank" href="/search/jquery/1.htm">jquery</a><a class="tag" taget="_blank" href="/search/Ajax/1.htm">Ajax</a><a class="tag" taget="_blank" href="/search/springMVC/1.htm">springMVC</a><a class="tag" taget="_blank" href="/search/%E6%B5%8F%E8%A7%88%E5%99%A8/1.htm">浏览器</a><a class="tag" taget="_blank" href="/search/%E4%B8%8A%E4%BC%A0%E6%96%87%E4%BB%B6/1.htm">上传文件</a>
                                    <div>    最近个人开发一个小的OA项目,属于复习阶段.使用的技术主要是spring mvc作为前端框架,mybatis作为数据库持久化技术.前台使用jquery和一些jquery的插件. 
    在开发到中间阶段时候发现自己好像忽略了一个小问题,整个项目一直在firefox下测试,没有在IE下测试,不确定是否会出现兼容问题.由于jquer</div>
                                </li>
                                <li><a href="/article/1856.htm"
                                       title="Lua的io库函数列表" target="_blank">Lua的io库函数列表</a>
                                    <span class="text-muted">ronin47</span>
<a class="tag" taget="_blank" href="/search/lua+io/1.htm">lua io</a>
                                    <div>1、io表调用方式:使用io表,io.open将返回指定文件的描述,并且所有的操作将围绕这个文件描述 
  io表同样提供三种预定义的文件描述io.stdin,io.stdout,io.stderr 
  2、文件句柄直接调用方式,即使用file:XXX()函数方式进行操作,其中file为io.open()返回的文件句柄 
  多数I/O函数调用失败时返回nil加错误信息,有些函数成功时返回nil</div>
                                </li>
                                <li><a href="/article/1983.htm"
                                       title="java-26-左旋转字符串" target="_blank">java-26-左旋转字符串</a>
                                    <span class="text-muted">bylijinnan</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a>
                                    <div>
public class LeftRotateString {

	/**
	 * Q 26 左旋转字符串
	 * 题目:定义字符串的左旋转操作:把字符串前面的若干个字符移动到字符串的尾部。
	 * 如把字符串abcdef左旋转2位得到字符串cdefab。
	 * 请实现字符串左旋转的函数。要求时间对长度为n的字符串操作的复杂度为O(n),辅助内存为O(1)。
	 */
	pu</div>
                                </li>
                                <li><a href="/article/2110.htm"
                                       title="《vi中的替换艺术》-linux命令五分钟系列之十一" target="_blank">《vi中的替换艺术》-linux命令五分钟系列之十一</a>
                                    <span class="text-muted">cfyme</span>
<a class="tag" taget="_blank" href="/search/linux%E5%91%BD%E4%BB%A4/1.htm">linux命令</a>
                                    <div>vi方面的内容不知道分类到哪里好,就放到《Linux命令五分钟系列》里吧! 
今天编程,关于栈的一个小例子,其间我需要把”S.”替换为”S->”(替换不包括双引号)。 
其实这个不难,不过我觉得应该总结一下vi里的替换技术了,以备以后查阅。 
  
1 
所有替换方案都要在冒号“:”状态下书写。 
2 
如果想将abc替换为xyz,那么就这样 
:s/abc/xyz/ 
不过要特别</div>
                                </li>
                                <li><a href="/article/2237.htm"
                                       title="[轨道与计算]新的并行计算架构" target="_blank">[轨道与计算]新的并行计算架构</a>
                                    <span class="text-muted">comsci</span>
<a class="tag" taget="_blank" href="/search/%E5%B9%B6%E8%A1%8C%E8%AE%A1%E7%AE%97/1.htm">并行计算</a>
                                    <div> 
 
     我在进行流程引擎循环反馈试验的过程中,发现一个有趣的事情。。。如果我们在流程图的每个节点中嵌入一个双向循环代码段,而整个流程中又充满着很多并行路由,每个并行路由中又包含着一些并行节点,那么当整个流程图开始循环反馈过程的时候,这个流程图的运行过程是否变成一个并行计算的架构呢? 
 
     </div>
                                </li>
                                <li><a href="/article/2364.htm"
                                       title="重复执行某段代码" target="_blank">重复执行某段代码</a>
                                    <span class="text-muted">dai_lm</span>
<a class="tag" taget="_blank" href="/search/android/1.htm">android</a>
                                    <div>用handler就可以了 
 

private Handler handler = new Handler();

private Runnable runnable = new Runnable() {
	public void run() {
		update();
		handler.postDelayed(this, 5000);
	}
};
 
开始计时 
 

h</div>
                                </li>
                                <li><a href="/article/2491.htm"
                                       title="Java实现堆栈(list实现)" target="_blank">Java实现堆栈(list实现)</a>
                                    <span class="text-muted">datageek</span>
<a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84%E2%80%94%E2%80%94%E5%A0%86%E6%A0%88/1.htm">数据结构——堆栈</a>
                                    <div>public interface IStack<T> {
    //元素出栈,并返回出栈元素
    public T pop();
    //元素入栈
    public void push(T element);
    //获取栈顶元素
    public T peek();
    //判断栈是否为空
    public boolean isEmpty</div>
                                </li>
                                <li><a href="/article/2618.htm"
                                       title="四大备份MySql数据库方法及可能遇到的问题" target="_blank">四大备份MySql数据库方法及可能遇到的问题</a>
                                    <span class="text-muted">dcj3sjt126com</span>
<a class="tag" taget="_blank" href="/search/DB/1.htm">DB</a><a class="tag" taget="_blank" href="/search/backup/1.htm">backup</a>
                                    <div>一:通过备份王等软件进行备份前台进不去? 
用备份王等软件进行备份是大多老站长的选择,这种方法方便快捷,只要上传备份软件到空间一步步操作就可以,但是许多刚接触备份王软件的客用户来说还原后会出现一个问题:因为新老空间数据库用户名和密码不统一,网站文件打包过来后因没有修改连接文件,还原数据库是好了,可是前台会提示数据库连接错误,网站从而出现打不开的情况。 
解决方法:学会修改网站配置文件,大多是由co</div>
                                </li>
                                <li><a href="/article/2745.htm"
                                       title="github做webhooks:[1]钩子触发是否成功测试" target="_blank">github做webhooks:[1]钩子触发是否成功测试</a>
                                    <span class="text-muted">dcj3sjt126com</span>
<a class="tag" taget="_blank" href="/search/github/1.htm">github</a><a class="tag" taget="_blank" href="/search/git/1.htm">git</a><a class="tag" taget="_blank" href="/search/webhook/1.htm">webhook</a>
                                    <div>转自: http://jingyan.baidu.com/article/5d6edee228c88899ebdeec47.html 
github和svn一样有钩子的功能,而且更加强大。例如我做的是最常见的push操作触发的钩子操作,则每次更新之后的钩子操作记录都会在github的控制板可以看到!       
工具/原料  
 
   github   
     
方法/步骤  
 
   </div>
                                </li>
                                <li><a href="/article/2872.htm"
                                       title="JSP中<base href="<%=basePath%>">的作用" target="_blank">JSP中<base href="<%=basePath%>">的作用</a>
                                    <span class="text-muted">蕃薯耀</span>

                                    <div>JSP中<base href="<%=basePath%>">的作用 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
</div>
                                </li>
                                <li><a href="/article/2999.htm"
                                       title="linux下SAMBA服务安装与配置" target="_blank">linux下SAMBA服务安装与配置</a>
                                    <span class="text-muted">hanqunfeng</span>
<a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a>
                                    <div>局域网使用的文件共享服务。 
一.安装包: 
rpm -qa | grep samba 
samba-3.6.9-151.el6.x86_64 
samba-common-3.6.9-151.el6.x86_64 
samba-winbind-3.6.9-151.el6.x86_64 
samba-client-3.6.9-151.el6.x86_64 
samba-winbind-clients</div>
                                </li>
                                <li><a href="/article/3126.htm"
                                       title="guava cache" target="_blank">guava cache</a>
                                    <span class="text-muted">IXHONG</span>
<a class="tag" taget="_blank" href="/search/cache/1.htm">cache</a>
                                    <div>缓存,在我们日常开发中是必不可少的一种解决性能问题的方法。简单的说,cache 就是为了提升系统性能而开辟的一块内存空间。 
  缓存的主要作用是暂时在内存中保存业务系统的数据处理结果,并且等待下次访问使用。在日常开发的很多场合,由于受限于硬盘IO的性能或者我们自身业务系统的数据处理和获取可能非常费时,当我们发现我们的系统这个数据请求量很大的时候,频繁的IO和频繁的逻辑处理会导致硬盘和CPU资源的</div>
                                </li>
                                <li><a href="/article/3253.htm"
                                       title="Query的开始--全局变量,noconflict和兼容各种js的初始化方法" target="_blank">Query的开始--全局变量,noconflict和兼容各种js的初始化方法</a>
                                    <span class="text-muted">kvhur</span>
<a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a><a class="tag" taget="_blank" href="/search/jquery/1.htm">jquery</a><a class="tag" taget="_blank" href="/search/css/1.htm">css</a>
                                    <div>这个是整个jQuery代码的开始,里面包含了对不同环境的js进行的处理,例如普通环境,Nodejs,和requiredJs的处理方法。   还有jQuery生成$, jQuery全局变量的代码和noConflict代码详解    完整资源: 
http://www.gbtags.com/gb/share/5640.htm   jQuery 源码:          
 
  (</div>
                                </li>
                                <li><a href="/article/3380.htm"
                                       title="美国人的福利和中国人的储蓄" target="_blank">美国人的福利和中国人的储蓄</a>
                                    <span class="text-muted">nannan408</span>

                                    <div>   今天看了篇文章,震动很大,说的是美国的福利。 
   美国医院的无偿入院真的是个好措施。小小的改善,对于社会是大大的信心。小孩,税费等,政府不收反补,真的体现了人文主义。 
   美国这么高的社会保障会不会使人变懒?答案是否定的。正因为政府解决了后顾之忧,人们才得以倾尽精力去做一些有创造力,更造福社会的事情,这竟成了美国社会思想、人</div>
                                </li>
                                <li><a href="/article/3507.htm"
                                       title="N阶行列式计算(JAVA)" target="_blank">N阶行列式计算(JAVA)</a>
                                    <span class="text-muted">qiuwanchi</span>
<a class="tag" taget="_blank" href="/search/N%E9%98%B6%E8%A1%8C%E5%88%97%E5%BC%8F%E8%AE%A1%E7%AE%97/1.htm">N阶行列式计算</a>
                                    <div>package gaodai;

import java.util.List;

/**
 * N阶行列式计算
 * @author 邱万迟
 *
 */
public class DeterminantCalculation {
	
	public DeterminantCalculation(List<List<Double>> determina</div>
                                </li>
                                <li><a href="/article/3634.htm"
                                       title="C语言算法之打渔晒网问题" target="_blank">C语言算法之打渔晒网问题</a>
                                    <span class="text-muted">qiufeihu</span>
<a class="tag" taget="_blank" href="/search/c/1.htm">c</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a>
                                    <div>如果一个渔夫从2011年1月1日开始每三天打一次渔,两天晒一次网,编程实现当输入2011年1月1日以后任意一天,输出该渔夫是在打渔还是在晒网。 
代码如下: 
  
#include <stdio.h>
int leap(int a)  /*自定义函数leap()用来指定输入的年份是否为闰年*/
{
	if((a%4 == 0 && a%100 != 0</div>
                                </li>
                                <li><a href="/article/3761.htm"
                                       title="XML中DOCTYPE字段的解析" target="_blank">XML中DOCTYPE字段的解析</a>
                                    <span class="text-muted">wyzuomumu</span>
<a class="tag" taget="_blank" href="/search/xml/1.htm">xml</a>
                                    <div>DTD声明始终以!DOCTYPE开头,空一格后跟着文档根元素的名称,如果是内部DTD,则再空一格出现[],在中括号中是文档类型定义的内容. 而对于外部DTD,则又分为私有DTD与公共DTD,私有DTD使用SYSTEM表示,接着是外部DTD的URL. 而公共DTD则使用PUBLIC,接着是DTD公共名称,接着是DTD的URL. 
  
私有DTD 
<!DOCTYPErootSYST</div>
                                </li>
                </ul>
            </div>
        </div>
    </div>

<div>
    <div class="container">
        <div class="indexes">
            <strong>按字母分类:</strong>
            <a href="/tags/A/1.htm" target="_blank">A</a><a href="/tags/B/1.htm" target="_blank">B</a><a href="/tags/C/1.htm" target="_blank">C</a><a
                href="/tags/D/1.htm" target="_blank">D</a><a href="/tags/E/1.htm" target="_blank">E</a><a href="/tags/F/1.htm" target="_blank">F</a><a
                href="/tags/G/1.htm" target="_blank">G</a><a href="/tags/H/1.htm" target="_blank">H</a><a href="/tags/I/1.htm" target="_blank">I</a><a
                href="/tags/J/1.htm" target="_blank">J</a><a href="/tags/K/1.htm" target="_blank">K</a><a href="/tags/L/1.htm" target="_blank">L</a><a
                href="/tags/M/1.htm" target="_blank">M</a><a href="/tags/N/1.htm" target="_blank">N</a><a href="/tags/O/1.htm" target="_blank">O</a><a
                href="/tags/P/1.htm" target="_blank">P</a><a href="/tags/Q/1.htm" target="_blank">Q</a><a href="/tags/R/1.htm" target="_blank">R</a><a
                href="/tags/S/1.htm" target="_blank">S</a><a href="/tags/T/1.htm" target="_blank">T</a><a href="/tags/U/1.htm" target="_blank">U</a><a
                href="/tags/V/1.htm" target="_blank">V</a><a href="/tags/W/1.htm" target="_blank">W</a><a href="/tags/X/1.htm" target="_blank">X</a><a
                href="/tags/Y/1.htm" target="_blank">Y</a><a href="/tags/Z/1.htm" target="_blank">Z</a><a href="/tags/0/1.htm" target="_blank">其他</a>
        </div>
    </div>
</div>
<footer id="footer" class="mb30 mt30">
    <div class="container">
        <div class="footBglm">
            <a target="_blank" href="/">首页</a> -
            <a target="_blank" href="/custom/about.htm">关于我们</a> -
            <a target="_blank" href="/search/Java/1.htm">站内搜索</a> -
            <a target="_blank" href="/sitemap.txt">Sitemap</a> -
            <a target="_blank" href="/custom/delete.htm">侵权投诉</a>
        </div>
        <div class="copyright">版权所有 IT知识库 CopyRight © 2000-2050 E-COM-NET.COM , All Rights Reserved.
<!--            <a href="https://beian.miit.gov.cn/" rel="nofollow" target="_blank">京ICP备09083238号</a><br>-->
        </div>
    </div>
</footer>
<!-- 代码高亮 -->
<script type="text/javascript" src="/static/syntaxhighlighter/scripts/shCore.js"></script>
<script type="text/javascript" src="/static/syntaxhighlighter/scripts/shLegacy.js"></script>
<script type="text/javascript" src="/static/syntaxhighlighter/scripts/shAutoloader.js"></script>
<link type="text/css" rel="stylesheet" href="/static/syntaxhighlighter/styles/shCoreDefault.css"/>
<script type="text/javascript" src="/static/syntaxhighlighter/src/my_start_1.js"></script>





</body>

</html>