12.15Nginx优化、PHP优化

一、静态资源优化
1.静态资源
2.静态资源缓存
1)配置缓存过期时间
2)配置不走缓存
3.静态资源读取
1)文件高效读取
2)文件高效传输
3)长连接
4)长连接传输
4.静态资源压缩
1)静态资源压缩配置语法
2)压缩配置
3)上传文件
二、防资源盗链
1.配置被盗连的网站
2.配置盗链的网站
3.配置hosts访问测试
4.配置防盗链语法
5.配置防盗链
6.伪造请求头
7.允许多个域名盗链
三、跨域访问
1.盗链和跨域的区别
2.配置被跨域的网站
3.配置跨域网站
4.配置hosts测试
5.测试跨域访问
6.配置允许被跨域
四、CPU亲和
1.查看cpu状态
2.修改nginx配置
3.没有配置亲和的情况
4.配置cpu亲和
1)方式1
2)方式2
3)方式3
5.配置CPU亲和后
五、nginx通用优化文件
1.通用优化配置
2.nginx优化总结
六、PHP优化
1.配置PHP页面
2.php.ini配置文件优化
3.PHP危险函数
4.php-fpm服务配置
1)php-fpm.conf配置优化
2)包含配置文件优化 /etc/php-fpm.d/*.conf
5.php状态页
1)配置php
2)配置nginx
3)访问页面

一、静态资源优化

1.静态资源

12.15Nginx优化、PHP优化_第1张图片

2.静态资源缓存

服务器上:

  • Etag:服务器上的文件唯一标示
  • Last-Modified:服务器上的文件最后修改时间
  • Expires:文件缓存过期时间
  • Cache-Control:文件多久过期
    浏览器上:
  • If-None-Match:浏览器上的文件唯一标示 ===》对应服务器上的Etag
  • If-Modified-Since:浏览器上的文件最后修改时间 ===》对应服务器上的Last-Modified
    1)配置缓存过期时间
#语法
Syntax:	expires [modified] time;
		expires epoch | max | off;
Default:	expires off;
Context:	http, server, location, if in location

#配置
[root@web01 conf.d]# vim linux.cache.com.conf
server {
    listen 80;
    server_name linux.cache.com;

    location ~* \.(png|jpg|gif)$ {
        root /code/cache;
        expires 7d;
    }
}
[root@web01 conf.d]# systemctl restart nginx
[root@web01 conf.d]# cd /code/
[root@web01 code]# mkdir cache
[root@web01 code]# cd cache/
[root@web01 cache]# rz                                                                             
[root@web01 cache]# ll
total 1868
-rw-r--r-- 1 root root  156617 Dec  7 08:54 1.jpg
-rw-r--r-- 1 root root   47542 Dec  7 08:54 2.jpg
-rw-r--r-- 1 root root 1586108 Dec  7 08:54 3.jpg
-rw-r--r-- 1 root root  113900 Dec  7 09:28 4.jpg
[root@web01 cache]# chown -R www.www /code/cache/

2)配置不走缓存

方法一:使用无痕模式
方法二:开启浏览器上面的 Disable cache
方法三:配置nginx关闭缓存
[root@web01 conf.d]# vim linux.cache.com.conf
server {
    listen 80;
    server_name linux.cache.com;

    location ~* \.(png|jpg|gif)$ {
        root /code/cache;
        etag off;
        add_header Cache-Control no-cache;
        if_modified_since off;
    }
}

3.静态资源读取

1)文件高效读取

Syntax:	sendfile on | off;
Default:	sendfile off;
Context:	http, server, location, if in location

2)文件高效传输

#将多个数据打个包,一次推送,大文件适合此配置,需要开启 sendfile
Syntax:	tcp_nopush on | off;
Default:	tcp_nopush off;
Context:	http, server, location

3)长连接

Syntax:	keepalive_timeout timeout [header_timeout];
Default:	keepalive_timeout 75s;
Context:	http, server, location

4)长连接传输

#来一条数据传输一条数据,需要开启 keepalive
Syntax:	tcp_nodelay on | off;
Default:	tcp_nodelay on;
Context:	http, server, location

4.静态资源压缩

1)静态资源压缩配置语法

#开启压缩
Syntax:	gzip on | off;
Default:	gzip off;
Context:	http, server, location, if in location

#指定压缩文件的类型
Syntax:	gzip_types mime-type ...;
Default:	gzip_types text/html;
Context:	http, server, location

#指定压缩的级别,压缩比例
Syntax:	gzip_comp_level level;
Default:	gzip_comp_level 1;   #共1-9个级别,一般我们设置3-5
Context:	http, server, location

#压缩后传输使用的协议
Syntax:	gzip_http_version 1.0 | 1.1;
Default:	gzip_http_version 1.1;
Context:	http, server, location

2)压缩配置

[root@web01 cache]# vim /etc/nginx/conf.d/linux.gzip.com.conf 
server {
    listen 80;
    server_name linux.gzip.com;

    location ~* \.(png|jpg|gif)$ {
        root /code/cache;
        gzip on;
        gzip_types image/jpeg image/gif image/png;
       gzip_comp_level 9;
    }

    location ~* \.txt$ {
        root /code/cache;
        gzip on;
        gzip_types text/plain;
        gzip_comp_level 5;
    }
}

3)上传文件

[root@web01 cache]# ll -h
total 134M
-rw-r--r-- 1 www www 153K Dec  7 08:54 1.jpg
-rw-r--r-- 1 www www 125M Dec 15 09:38 1.png
-rw-r--r-- 1 www www 7.1M Dec 15 09:33 1.txt
-rw-r--r-- 1 www www  47K Dec  7 08:54 2.jpg
-rw-r--r-- 1 www www 1.6M Dec  7 08:54 3.jpg
-rw-r--r-- 1 www www 112K Dec  7 09:28 4.jpg

二、防资源盗链

1.配置被盗连的网站

[root@web01 conf.d]# vim linux.beidaolian.com.conf 
server {
    listen 80;
    server_name linux.beidaolian.com;

    location ~* \.(png|jpg|gif)$ {
        root /code;
        index index.html;
    }
}
[root@web01 ~]# systemctl restart nginx

#准备站点和文件
[root@web01 conf.d]# echo "我是被盗连的机器" > /code/index.html
[root@web01 code]# ll /code/
-rw-r--r--   1 www  www     31962 Dec 14 09:37 404.jpg
-rw-r--r--   1 www  www        25 Dec 15 10:18 index.html

2.配置盗链的网站

[root@lb01 ~]# vim /etc/nginx/conf.d/linux.daolian.com.conf
server {
    listen 80;
    server_name linux.daolian.com;

    location ~* / {
        root /code;
        index index.html;
    }
}
[root@lb01 ~]# systemctl restart nginx

#准备站点
[root@lb01 ~]# vim /code/index.html

	
		"http://linux.beidaolian.com/404.jpg">
	</body>
</html>

3.配置hosts访问测试

10.0.0.4 linux.daolian.com
10.0.0.7 linux.beidaolian.com

#windows访问
http://linux.daolian.com/

4.配置防盗链语法

Syntax:	valid_referers none | blocked | server_names | string ...;
Default:	—
Context:	server, location

none			#nginx日志中referer部分为空
blocked 		#nginx日志中referer部分没有协议
server_names	#nginx日志中referer部分为指定的域名
string			#nginx日志中referer部分为指定的域名(可以使用正则表达式)

5.配置防盗链

[root@web01 conf.d]# vim linux.beidaolian.com.conf 
server {
    listen 80;
    server_name linux.beidaolian.com;

    location / {
        root /code;
        index index.html;
    }

    location ~* \.jpg$ {
        root /code;
        valid_referers none blocked server_names;
        if ($invalid_referer) {
           return 500;
        }
    }
}

6.伪造请求头

#模拟请求头为 http://linux.daolian.com 访问图片
[root@lb01 ~]# curl -e "http://linux.daolian.com" -I http://linux.beidaolian.com/404.jpg
HTTP/1.1 500 Internal Server Error
Server: nginx/1.18.0
Date: Tue, 15 Dec 2020 02:51:41 GMT
Content-Type: text/html; charset=utf8
Content-Length: 177
Connection: close


#模拟请求头为 http://linux.beidaolian.com 访问图片
[root@lb01 ~]# curl -e "http://linux.beidaolian.com" -I http://linux.beidaolian.com/404.jpg
HTTP/1.1 200 OK
Server: nginx/1.18.0
Date: Tue, 15 Dec 2020 02:52:24 GMT
Content-Type: image/jpeg
Content-Length: 31962
Last-Modified: Mon, 14 Dec 2020 01:37:29 GMT
Connection: keep-alive
ETag: "5fd6c1d9-7cda"
Accept-Ranges: bytes

7.允许多个域名盗链

[root@web01 conf.d]# vim linux.beidaolian.com.conf 
server {
    listen 80;
    server_name linux.beidaolian.com;

    location / {
        root /code;
        index index.html;
    }

    location ~* \.jpg$ {
        root /code;
        valid_referers none blocked server_names *.baidu.com;
        if ($invalid_referer) {
           return 500;
        }
    }
}

[root@lb01 ~]# curl -e "http://www.baidu.com" -I http://linux.beidaolian.com/404.jpg
HTTP/1.1 200 OK
Server: nginx/1.18.0
Date: Tue, 15 Dec 2020 02:58:27 GMT
Content-Type: image/jpeg
Content-Length: 31962
Last-Modified: Mon, 14 Dec 2020 01:37:29 GMT
Connection: keep-alive
ETag: "5fd6c1d9-7cda"
Accept-Ranges: bytes

三、跨域访问

1.盗链和跨域的区别

盗链是由盗链的网站向被盗链的网站发起get请求获取内容
跨域是由跨域的网站向被跨域的网站发起一个完整http请求,甚至是完全跳转

2.配置被跨域的网站

[root@web01 conf.d]# vim linux.beikuayu.com.conf
server {
    listen 80;
    server_name linux.beikuayu.com;

    location / {
        root /code;
        index index.html;
    }   
}

#配置站点
[root@web01 conf.d]# echo "被跨域" > /code/index.html

3.配置跨域网站

[root@lb01 conf.d]# vim linux.kuayu.com.conf 
server {
    listen 80;
    server_name linux.kuayu.com;

    location ~* / {
        root /code;
        index index.html;
    }
}

#配置跨域的站点
[root@lb01 conf.d]# vim /code/index.html 
"en">

        "UTF-8" />
        测试ajax和跨域访问<<span class="token operator">/</span>title>
        <script src=<span class="token string">"http://libs.baidu.com/jquery/2.1.4/jquery.min.js"</span>><<span class="token operator">/</span>script>
<<span class="token operator">/</span>head>
<script <span class="token function">type</span>=<span class="token string">"text/javascript"</span>>
$<span class="token punctuation">(</span>document<span class="token punctuation">)</span><span class="token punctuation">.</span>ready<span class="token punctuation">(</span><span class="token keyword">function</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">{</span>
        $<span class="token punctuation">.</span>ajax<span class="token punctuation">(</span><span class="token punctuation">{</span>
        <span class="token function">type</span>: <span class="token string">"GET"</span><span class="token punctuation">,</span>
        url: <span class="token string">"http://linux.beikuayu.com"</span><span class="token punctuation">,</span>
        success: <span class="token keyword">function</span><span class="token punctuation">(</span><span class="token keyword">data</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
                alert<span class="token punctuation">(</span><span class="token string">"sucess 卧槽 卧槽 卧槽 成功了!!!"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        <span class="token punctuation">}</span><span class="token punctuation">,</span>
        error: <span class="token keyword">function</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
                alert<span class="token punctuation">(</span><span class="token string">"fail!!,跨不过去啊,不让进去啊,只能蹭蹭!"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        <span class="token punctuation">}</span>
        <span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<<span class="token operator">/</span>script>
        <body>
                <h1>测试跨域访问<<span class="token operator">/</span>h1>
        <<span class="token operator">/</span>body>
<<span class="token operator">/</span>html>
</code></pre> 
  <h4>4.配置hosts测试</h4> 
  <pre><code class="prism language-powershell"><span class="token comment">#windows的hosts</span>
10<span class="token punctuation">.</span>0<span class="token punctuation">.</span>0<span class="token punctuation">.</span>4 linux<span class="token punctuation">.</span>kuayu<span class="token punctuation">.</span>com
10<span class="token punctuation">.</span>0<span class="token punctuation">.</span>0<span class="token punctuation">.</span>7 linux<span class="token punctuation">.</span>beikuayu<span class="token punctuation">.</span>com

<span class="token namespace">[root@web01 conf.d]</span><span class="token comment"># vim /etc/hosts</span>
10<span class="token punctuation">.</span>0<span class="token punctuation">.</span>0<span class="token punctuation">.</span>4 linux<span class="token punctuation">.</span>kuayu<span class="token punctuation">.</span>com
10<span class="token punctuation">.</span>0<span class="token punctuation">.</span>0<span class="token punctuation">.</span>7 linux<span class="token punctuation">.</span>beikuayu<span class="token punctuation">.</span>com

<span class="token namespace">[root@lb01 conf.d]</span><span class="token comment"># vim /etc/hosts</span>
10<span class="token punctuation">.</span>0<span class="token punctuation">.</span>0<span class="token punctuation">.</span>4 linux<span class="token punctuation">.</span>kuayu<span class="token punctuation">.</span>com
10<span class="token punctuation">.</span>0<span class="token punctuation">.</span>0<span class="token punctuation">.</span>7 linux<span class="token punctuation">.</span>beikuayu<span class="token punctuation">.</span>com
</code></pre> 
  <h4>5.测试跨域访问</h4> 
  <h4>6.配置允许被跨域</h4> 
  <pre><code class="prism language-powershell"><span class="token namespace">[root@web01 conf.d]</span><span class="token comment"># vim linux.beikuayu.com.conf </span>
server <span class="token punctuation">{</span>
    listen 80<span class="token punctuation">;</span>
    server_name linux<span class="token punctuation">.</span>beikuayu<span class="token punctuation">.</span>com<span class="token punctuation">;</span>

    location <span class="token operator">/</span> <span class="token punctuation">{</span>
        root <span class="token operator">/</span>code<span class="token punctuation">;</span>
        index index<span class="token punctuation">.</span>html<span class="token punctuation">;</span>
        <span class="token comment">#允许跨域的网站</span>
        add_header Access<span class="token operator">-</span>Control<span class="token operator">-</span>Allow<span class="token operator">-</span>Origin <span class="token operator">*</span><span class="token punctuation">;</span>
        <span class="token comment">#允许跨域网站发起的请求类型</span>
        add_header Access<span class="token operator">-</span>Control<span class="token operator">-</span>Allow<span class="token operator">-</span>Methods <span class="token string">'GET,POST,PUT,DELETE,OPTIONS'</span><span class="token punctuation">;</span>
    <span class="token punctuation">}</span>
<span class="token punctuation">}</span>
</code></pre> 
  <h2>四、CPU亲和</h2> 
  <h4>1.查看cpu状态</h4> 
  <pre><code class="prism language-powershell"><span class="token namespace">[root@web01 ~]</span><span class="token comment"># lscpu</span>
CPU<span class="token punctuation">(</span>s<span class="token punctuation">)</span>:                4
On<span class="token operator">-</span>line CPU<span class="token punctuation">(</span>s<span class="token punctuation">)</span> list:   0<span class="token operator">-</span>3
Thread<span class="token punctuation">(</span>s<span class="token punctuation">)</span> per core:    1
Core<span class="token punctuation">(</span>s<span class="token punctuation">)</span> per socket:    4
NUMA node0 CPU<span class="token punctuation">(</span>s<span class="token punctuation">)</span>:     0<span class="token operator">-</span>3
</code></pre> 
  <h4>2.修改nginx配置</h4> 
  <pre><code class="prism language-powershell"><span class="token namespace">[root@web01 ~]</span><span class="token comment"># vim /etc/nginx/nginx.conf </span>
worker_processes  4<span class="token punctuation">;</span>

<span class="token namespace">[root@web01 ~]</span><span class="token comment"># systemctl restart nginx</span>
</code></pre> 
  <h4>3.没有配置亲和的情况</h4> 
  <pre><code class="prism language-powershell"><span class="token namespace">[root@web01 ~]</span><span class="token comment"># ps -eo pid,args,psr | grep [n]ginx</span>
  7549 nginx: master <span class="token keyword">process</span> <span class="token operator">/</span>usr<span class="token operator">/</span>   3
  7550 nginx: worker <span class="token keyword">process</span>         2
  7551 nginx: worker <span class="token keyword">process</span>         0
  7552 nginx: worker <span class="token keyword">process</span>         1
  7553 nginx: worker <span class="token keyword">process</span>         1
</code></pre> 
  <h4>4.配置cpu亲和</h4> 
  <p>1)方式1</p> 
  <pre><code class="prism language-powershell">worker_processes    4<span class="token punctuation">;</span>
worker_cpu_affinity 0001 0010 0100 1000<span class="token punctuation">;</span>

worker_processes    16<span class="token punctuation">;</span>
worker_cpu_affinity 0000000000000001 0000000000000010 0000000000000100 0000000000001000 <span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">;</span>
</code></pre> 
  <p>2)方式2</p> 
  <pre><code class="prism language-powershell">worker_processes    2<span class="token punctuation">;</span>
worker_cpu_affinity 0101 1010<span class="token punctuation">;</span>
</code></pre> 
  <p>3)方式3</p> 
  <pre><code class="prism language-powershell">worker_processes auto<span class="token punctuation">;</span>
worker_cpu_affinity auto<span class="token punctuation">;</span>
</code></pre> 
  <h4>5.配置CPU亲和后</h4> 
  <pre><code class="prism language-powershell"><span class="token namespace">[root@web01 ~]</span><span class="token comment"># ps -eo pid,args,psr | grep [n]ginx</span>
  7629 nginx: master <span class="token keyword">process</span> <span class="token operator">/</span>usr<span class="token operator">/</span>   3
  7630 nginx: worker <span class="token keyword">process</span>         0
  7631 nginx: worker <span class="token keyword">process</span>         1
  7632 nginx: worker <span class="token keyword">process</span>         2
  7633 nginx: worker <span class="token keyword">process</span>         3
</code></pre> 
  <h2>五、nginx通用优化文件</h2> 
  <h4>1.通用优化配置</h4> 
  <pre><code class="prism language-powershell"><span class="token namespace">[root@nginx ~]</span><span class="token comment"># cat nginx.conf</span>
user www<span class="token punctuation">;</span>									<span class="token comment">#nginx启动用户</span>
worker_processes auto<span class="token punctuation">;</span>						 <span class="token comment">#nginx工作进程数</span>
worker_cpu_affinity auto<span class="token punctuation">;</span>					  <span class="token comment">#开启CPU亲和</span>
error_log <span class="token operator">/</span><span class="token keyword">var</span><span class="token operator">/</span>log<span class="token operator">/</span>nginx<span class="token operator">/</span>error<span class="token punctuation">.</span>log warn<span class="token punctuation">;</span>	  <span class="token comment">#错误日志,存放路径,记录日志的级别</span>
pid <span class="token operator">/</span>run<span class="token operator">/</span>nginx<span class="token punctuation">.</span>pid<span class="token punctuation">;</span>							<span class="token comment">#指定pid文件位置</span>
worker_rlimit_nofile 35535<span class="token punctuation">;</span>					 <span class="token comment">#指定nginx服务的最大打开文件数</span>

events <span class="token punctuation">{</span>
    use epoll<span class="token punctuation">;</span>								<span class="token comment">#使用epoll网络模型</span>
    worker_connections 10240<span class="token punctuation">;</span>				 <span class="token comment">#worker工作进程的最大连接数</span>
<span class="token punctuation">}</span>

http <span class="token punctuation">{</span>
    include             mime<span class="token punctuation">.</span>types<span class="token punctuation">;</span>				   <span class="token comment">#nginx能识别的文件类型</span>
    default_type        application<span class="token operator">/</span>octet<span class="token operator">-</span>stream<span class="token punctuation">;</span>   <span class="token comment">#nginx不识别的文件类型默认下载</span>
    charset utf<span class="token operator">-</span>8<span class="token punctuation">;</span>								 <span class="token comment">#指定字符集</span>

    log_format  main  <span class="token string">'$remote_addr - $remote_user [$time_local] "$request" '</span>
                      <span class="token string">'$status $body_bytes_sent "$http_referer" '</span>
                      <span class="token string">'"$http_user_agent" "$http_x_forwarded_for"'</span><span class="token punctuation">;</span>			<span class="token comment">#配置日志格式</span>

    access_log  <span class="token operator">/</span><span class="token keyword">var</span><span class="token operator">/</span>log<span class="token operator">/</span>nginx<span class="token operator">/</span>access<span class="token punctuation">.</span>log  main		<span class="token comment">#指定访问日志路径,调用日志的格式</span>
    server_tokens off<span class="token punctuation">;</span>							  <span class="token comment">#隐藏版本号</span>
    client_max_body_size 200m<span class="token punctuation">;</span>					   <span class="token comment">#上传文件大小限制</span>
    sendfile            on<span class="token punctuation">;</span>						   <span class="token comment">#高效读取</span>
    tcp_nopush          on<span class="token punctuation">;</span>							<span class="token comment">#高效传输</span>
    <span class="token comment">#tcp_nodelay         on;						#实时传输</span>
    keepalive_timeout   65<span class="token punctuation">;</span>							<span class="token comment">#开启长连接</span>
    gzip on<span class="token punctuation">;</span>									  <span class="token comment">#开启压缩</span>
    gzip_disable <span class="token string">"MSIE [1-6]\."</span><span class="token punctuation">;</span>					<span class="token comment">#指定不压缩的浏览器</span>
    gzip_http_version 1<span class="token punctuation">.</span>1<span class="token punctuation">;</span>							<span class="token comment">#压缩后传输的协议</span>
    gzip_comp_level 4<span class="token punctuation">;</span>								<span class="token comment">#压缩的级别</span>
    gzip_buffers 16 8k<span class="token punctuation">;</span>								<span class="token comment">#压缩缓存</span>
    gzip_min_length 1024<span class="token punctuation">;</span>							<span class="token comment">#开启压缩的最小值</span>
    gzip_types text<span class="token operator">/</span>plain text<span class="token operator">/</span>css application<span class="token operator">/</span>json application<span class="token operator">/</span>x<span class="token operator">-</span>javascript text<span class="token operator">/</span>xml application<span class="token operator">/</span>xml application<span class="token operator">/</span>xml<span class="token operator">+</span>rss text<span class="token operator">/</span>javascript image<span class="token operator">/</span>jpeg<span class="token punctuation">;</span>		<span class="token comment">#压缩的文件类型</span>
    include <span class="token operator">/</span>etc<span class="token operator">/</span>nginx<span class="token operator">/</span>conf<span class="token punctuation">.</span>d/<span class="token operator">*</span><span class="token punctuation">.</span>conf<span class="token punctuation">;</span>				<span class="token comment">#包含的配置文件</span>
<span class="token punctuation">}</span>
</code></pre> 
  <p>2.nginx优化总结</p> 
  <pre><code class="prism language-powershell">1、CPU亲和、worker进程数、调整nginx进程打开的文件句柄数
2、使用Epool网络模型、调整每个worker进程的最大连接数
3、文件的高效读取sendfile、nopush
4、文件的传输实时性、nodealy
5、开启tcp长连接,以及长连接超时时间keepalive_timeout
6、开启文件传输压缩gzip
7、开启静态文件expires缓存
8、隐藏nginx版本号
9、禁止通过ip地址访问,禁止恶意域名解析,只允许域名访问
10、配置防盗链、以及跨域访问
11、防DDOS、cc攻击,限制单IP并发连接,以及http请求
12、优雅显示nginx错误页面
13、nginx加密传输https优化
14、nginx proxy_cache、fastcgi_cache、uwsgi_cache 代理缓存,第三方工具(squid、varnish)
</code></pre> 
  <h2>六、PHP优化</h2> 
  <h4>1.配置PHP页面</h4> 
  <pre><code class="prism language-powershell"><span class="token namespace">[root@web01 ~]</span><span class="token comment"># vim /etc/nginx/conf.d/php.conf</span>
server <span class="token punctuation">{</span>
    listen 80<span class="token punctuation">;</span>
    server_name linux<span class="token punctuation">.</span>phpserver<span class="token punctuation">.</span>com<span class="token punctuation">;</span>
    root <span class="token operator">/</span>code<span class="token operator">/</span>phpserver<span class="token punctuation">;</span>
    index index<span class="token punctuation">.</span>php<span class="token punctuation">;</span>

    location ~<span class="token operator">*</span> \<span class="token punctuation">.</span>php$ <span class="token punctuation">{</span>
        fastcgi_pass 127<span class="token punctuation">.</span>0<span class="token punctuation">.</span>0<span class="token punctuation">.</span>1:9000<span class="token punctuation">;</span>
        fastcgi_param SCRIPT_FILENAME <span class="token variable">$document_root</span><span class="token variable">$fastcgi_script_name</span><span class="token punctuation">;</span>
        include fastcgi_params<span class="token punctuation">;</span>
    <span class="token punctuation">}</span>
<span class="token punctuation">}</span>

<span class="token comment">#配置站点</span>
<span class="token namespace">[root@web01 ~]</span><span class="token comment"># mkdir /code/phpserver</span>
<span class="token namespace">[root@web01 ~]</span><span class="token comment"># vim /code/phpserver/index.php </span>
<?php
    phpinfo<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
</code></pre> 
  <h4>2.php.ini配置文件优化</h4> 
  <pre><code class="prism language-powershell"><span class="token comment">#;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</span>
<span class="token comment">#; Error handling and logging ;</span>
<span class="token comment">#;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</span>
expose_php = Off                        <span class="token comment"># 关闭php版本信息</span>
display_error = Off                     <span class="token comment"># 屏幕不显示错误日志(开发环境可以开启 on)</span>
error_reporting = E_ALL                 <span class="token comment"># 记录PHP的每个错误</span>
log_errors = On                         <span class="token comment"># 开启错误日志</span>
error_log = <span class="token operator">/</span><span class="token keyword">var</span><span class="token operator">/</span>log<span class="token operator">/</span>php_error<span class="token punctuation">.</span>log      <span class="token comment"># 错误日志写入的位置(程序处理代码时的错误)</span>
date<span class="token punctuation">.</span>timezone = Asia<span class="token operator">/</span>Shanghai           <span class="token comment"># 调整时区,默认PRC</span>

<span class="token comment">#;;;;;;;;;;;;;;;;</span>
<span class="token comment">#; File Uploads ;</span>
<span class="token comment">#;;;;;;;;;;;;;;;;</span>
file_uploads = On           <span class="token comment"># 允许文件上传</span>
upload_max_filesize = 300M  <span class="token comment"># 允许上传文件的最大大小</span>
post_max_size = 300M        <span class="token comment"># 允许客户端单个POST请求发送的最大数据</span>
max_file_uploads = 20       <span class="token comment"># 允许同时上传的文件的最大数量</span>
memory_limit = 128M         <span class="token comment"># 每个脚本执行最大内存</span>
</code></pre> 
  <h4>3.PHP危险函数</h4> 
  <pre><code class="prism language-powershell">有时候为了安全我们需要禁掉一些PHP危险函数,整理如下需要的朋友可以参考下 
phpinfo<span class="token punctuation">(</span><span class="token punctuation">)</span> 
功能描述:输出 PHP 环境信息以及相关的模块、WEB 环境等信息。 
危险等级:中

passthru<span class="token punctuation">(</span><span class="token punctuation">)</span> 
功能描述:允许执行一个外部程序并回显输出,类似于 exec<span class="token punctuation">(</span><span class="token punctuation">)</span>。 
危险等级:高

exec<span class="token punctuation">(</span><span class="token punctuation">)</span> 
功能描述:允许执行一个外部程序(如 UNIX Shell 或 CMD 命令等)。 
危险等级:高

system<span class="token punctuation">(</span><span class="token punctuation">)</span> 
功能描述:允许执行一个外部程序并回显输出,类似于 passthru<span class="token punctuation">(</span><span class="token punctuation">)</span>。 
危险等级:高

chroot<span class="token punctuation">(</span><span class="token punctuation">)</span> 
功能描述:可改变当前 PHP 进程的工作根目录,仅当系统支持 <span class="token function">CLI</span> 模式 
PHP 时才能工作,且该函数不适用于 Windows 系统。 
危险等级:高

scandir<span class="token punctuation">(</span><span class="token punctuation">)</span> 
功能描述:列出指定路径中的文件和目录。 
危险等级:中

chgrp<span class="token punctuation">(</span><span class="token punctuation">)</span> 
功能描述:改变文件或目录所属的用户组。 
危险等级:高

chown<span class="token punctuation">(</span><span class="token punctuation">)</span> 
功能描述:改变文件或目录的所有者。 
危险等级:高

shell_exec<span class="token punctuation">(</span><span class="token punctuation">)</span> 
功能描述:通过 Shell 执行命令,并将执行结果作为字符串返回。 
危险等级:高

proc_open<span class="token punctuation">(</span><span class="token punctuation">)</span> 
功能描述:执行一个命令并打开文件指针用于读取以及写入。 
危险等级:高

proc_get_status<span class="token punctuation">(</span><span class="token punctuation">)</span> 
功能描述:获取使用 proc_open<span class="token punctuation">(</span><span class="token punctuation">)</span> 所打开进程的信息。 
危险等级:高

error_log<span class="token punctuation">(</span><span class="token punctuation">)</span> 
功能描述:将错误信息发送到指定位置(文件)。 
安全备注:在某些版本的 PHP 中,可使用 error_log<span class="token punctuation">(</span><span class="token punctuation">)</span> 绕过 PHP safe mode, 
执行任意命令。 
危险等级:低

ini_alter<span class="token punctuation">(</span><span class="token punctuation">)</span> 
功能描述:是 ini_set<span class="token punctuation">(</span><span class="token punctuation">)</span> 函数的一个别名函数,功能与 ini_set<span class="token punctuation">(</span><span class="token punctuation">)</span> 相同。 
具体参见 ini_set<span class="token punctuation">(</span><span class="token punctuation">)</span>。 
危险等级:高

ini_set<span class="token punctuation">(</span><span class="token punctuation">)</span> 
功能描述:可用于修改、设置 PHP 环境配置参数。 
危险等级:高

ini_restore<span class="token punctuation">(</span><span class="token punctuation">)</span> 
功能描述:可用于恢复 PHP 环境配置参数到其初始值。 
危险等级:高

dl<span class="token punctuation">(</span><span class="token punctuation">)</span> 
功能描述:在 PHP 进行运行过程当中(而非启动时)加载一个 PHP 外部模块。 
危险等级:高

pfsockopen<span class="token punctuation">(</span><span class="token punctuation">)</span> 
功能描述:建立一个 Internet 或 UNIX 域的 socket 持久连接。 
危险等级:高

syslog<span class="token punctuation">(</span><span class="token punctuation">)</span> 
功能描述:可调用 UNIX 系统的系统层 syslog<span class="token punctuation">(</span><span class="token punctuation">)</span> 函数。 
危险等级:中

readlink<span class="token punctuation">(</span><span class="token punctuation">)</span> 
功能描述:返回符号连接指向的目标文件内容。 
危险等级:中

symlink<span class="token punctuation">(</span><span class="token punctuation">)</span> 
功能描述:在 UNIX 系统中建立一个符号链接。 
危险等级:高

popen<span class="token punctuation">(</span><span class="token punctuation">)</span> 
功能描述:可通过 popen<span class="token punctuation">(</span><span class="token punctuation">)</span> 的参数传递一条命令,并对 popen<span class="token punctuation">(</span><span class="token punctuation">)</span> 所打开的文件进行执行。 
危险等级:高

stream_socket_server<span class="token punctuation">(</span><span class="token punctuation">)</span> 
功能描述:建立一个 Internet 或 UNIX 服务器连接。 
危险等级:中

putenv<span class="token punctuation">(</span><span class="token punctuation">)</span> 
功能描述:用于在 PHP 运行时改变系统字符集环境。在低于 5<span class="token punctuation">.</span>2<span class="token punctuation">.</span>6 版本的 PHP 中,可利用该函数 
修改系统字符集环境后,利用 sendmail 指令发送特殊参数执行系统 SHELL 命令。 
危险等级:高

<span class="token comment">#禁用方法如下: </span>
打开<span class="token operator">/</span>etc<span class="token operator">/</span>php<span class="token punctuation">.</span>ini文件, 
查找到 disable_functions ,添加需禁用的函数名,如下: 
phpinfo<span class="token punctuation">,</span>eval<span class="token punctuation">,</span>passthru<span class="token punctuation">,</span>exec<span class="token punctuation">,</span>system<span class="token punctuation">,</span>chroot<span class="token punctuation">,</span>scandir<span class="token punctuation">,</span>chgrp<span class="token punctuation">,</span>chown<span class="token punctuation">,</span>shell_exec<span class="token punctuation">,</span>proc_open<span class="token punctuation">,</span>proc_get_status<span class="token punctuation">,</span>ini_alter<span class="token punctuation">,</span>ini_alter<span class="token punctuation">,</span>ini_restore<span class="token punctuation">,</span>dl<span class="token punctuation">,</span>p
</code></pre> 
  <h4>4.php-fpm服务配置</h4> 
  <p>1)php-fpm.conf配置优化</p> 
  <pre><code class="prism language-powershell"><span class="token namespace">[root@web02 ~]</span><span class="token comment"># vim /etc/php-fpm.conf</span>
<span class="token namespace">[global]</span>
<span class="token punctuation">;</span>pid = <span class="token operator">/</span><span class="token keyword">var</span><span class="token operator">/</span>log<span class="token operator">/</span>php<span class="token operator">-</span>fpm<span class="token operator">/</span>php<span class="token operator">-</span>fpm<span class="token punctuation">.</span>pid     	<span class="token comment">#pid文件存放的位置</span>
<span class="token punctuation">;</span>error_log = <span class="token operator">/</span><span class="token keyword">var</span><span class="token operator">/</span>log<span class="token operator">/</span>php<span class="token operator">-</span>fpm<span class="token operator">/</span>php<span class="token operator">-</span>fpm<span class="token punctuation">.</span>log   <span class="token comment">#错误日志存放的位置(启动时的日志)</span>
<span class="token punctuation">;</span>log_level = error                  	<span class="token comment">#日志级别, alert, error, warning, notice, debug</span>
rlimit_files = 65535                	<span class="token comment">#php-fpm进程能打开的文件句柄数</span>
<span class="token punctuation">;</span>events<span class="token punctuation">.</span>mechanism = epoll           	<span class="token comment">#使用epoll事件模型处理请求</span>
include=<span class="token operator">/</span>etc<span class="token operator">/</span>php<span class="token operator">-</span>fpm<span class="token punctuation">.</span>d/<span class="token operator">*</span><span class="token punctuation">.</span>conf
</code></pre> 
  <p>2)包含配置文件优化 /etc/php-fpm.d/*.conf</p> 
  <pre><code class="prism language-powershell"><span class="token namespace">[root@web02 ~]</span><span class="token comment"># vim /etc/php-fpm.d/www.conf</span>
<span class="token namespace">[www]</span>       				   <span class="token comment">#池名称</span>
user = www  				   <span class="token comment">#进程运行的用户</span>
<span class="token function">group</span> = www 				   <span class="token comment">#进程运行的组</span>
<span class="token punctuation">;</span>listen = <span class="token operator">/</span>dev<span class="token operator">/</span>shm<span class="token operator">/</span>php<span class="token operator">-</span>fpm<span class="token punctuation">.</span>sock <span class="token comment">#监听在本地socket文件</span>
listen = 127<span class="token punctuation">.</span>0<span class="token punctuation">.</span>0<span class="token punctuation">.</span>1:9000         <span class="token comment">#监听在本地tcp的9000端口</span>
<span class="token punctuation">;</span>listen<span class="token punctuation">.</span>allowed_clients = 127<span class="token punctuation">.</span>0<span class="token punctuation">.</span>0<span class="token punctuation">.</span>1 <span class="token comment">#允许访问FastCGI进程的IP,any不限制 </span>
pm = dynamic                    <span class="token comment">#管理方式(dynamic为动态,static为静态)</span>
pm<span class="token punctuation">.</span>max_children = 512           <span class="token comment">#最大启动的php-fpm进程数(静态管理,配置dynamic时失效)</span>
pm<span class="token punctuation">.</span>start_servers = 32           <span class="token comment">#动态方式下的起始php-fpm进程数量。</span>
pm<span class="token punctuation">.</span>min_spare_servers = 32       <span class="token comment">#动态方式下的最小php-fpm进程数量。</span>
pm<span class="token punctuation">.</span>max_spare_servers = 64       <span class="token comment">#动态方式下的最大php-fpm进程数量。</span>
pm<span class="token punctuation">.</span>max_requests = 1500          <span class="token comment">#达到这个请求数,子进程会重启,如果是0那就一直接受请求</span>
pm<span class="token punctuation">.</span>process_idle_timeout = 15s<span class="token punctuation">;</span>  <span class="token comment">#没有请求时多久释放一个进程</span>
pm<span class="token punctuation">.</span>status_path = <span class="token operator">/</span>php_status    <span class="token comment">#开启php的状态页面</span>

php_flag<span class="token namespace">[display_errors]</span> = off
php_admin_value<span class="token namespace">[error_log]</span> = <span class="token operator">/</span><span class="token keyword">var</span><span class="token operator">/</span>log<span class="token operator">/</span>phpfpm_error<span class="token punctuation">.</span>log
php_admin_flag<span class="token namespace">[log_errors]</span> = on
request_slowlog_timeout = 5s    <span class="token comment">#php脚本执行超过5s的文件</span>
slowlog = <span class="token operator">/</span><span class="token keyword">var</span><span class="token operator">/</span>log<span class="token operator">/</span>php_slow<span class="token punctuation">.</span>log <span class="token comment">#记录至该文件中</span>
</code></pre> 
  <h4>5.php状态页</h4> 
  <p>1)配置php</p> 
  <pre><code class="prism language-powershell"><span class="token namespace">[root@web02 ~]</span><span class="token comment"># vim /etc/php-fpm.d/www.conf</span>
pm<span class="token punctuation">.</span>status_path = <span class="token operator">/</span>php_status 		<span class="token comment">#开启php的状态页面</span>

<span class="token namespace">[root@web02 ~]</span><span class="token comment"># systemctl restart php-fpm</span>
</code></pre> 
  <p>2)配置nginx</p> 
  <pre><code class="prism language-powershell"><span class="token namespace">[root@web02 ~]</span><span class="token comment"># cat /etc/nginx/conf.d/php.conf</span>
server <span class="token punctuation">{</span>
	listen 80<span class="token punctuation">;</span>
	server_name linux<span class="token punctuation">.</span>php<span class="token punctuation">.</span>com<span class="token punctuation">;</span>
	root <span class="token operator">/</span>code<span class="token operator">/</span>php<span class="token punctuation">;</span>
	index index<span class="token punctuation">.</span>php<span class="token punctuation">;</span>
	location ~<span class="token operator">*</span> \<span class="token punctuation">.</span>php$ <span class="token punctuation">{</span>
        fastcgi_pass 127<span class="token punctuation">.</span>0<span class="token punctuation">.</span>0<span class="token punctuation">.</span>1:9000<span class="token punctuation">;</span>
        fastcgi_param SCRIPT_FILENAME <span class="token variable">$document_root</span><span class="token variable">$fastcgi_script_name</span><span class="token punctuation">;</span>
        include fastcgi_params<span class="token punctuation">;</span>
	<span class="token punctuation">}</span>
	location <span class="token operator">/</span>status <span class="token punctuation">{</span>
		stub_status<span class="token punctuation">;</span>
	<span class="token punctuation">}</span>
	location <span class="token operator">/</span>php_status <span class="token punctuation">{</span>
		fastcgi_pass 127<span class="token punctuation">.</span>0<span class="token punctuation">.</span>0<span class="token punctuation">.</span>1:9000<span class="token punctuation">;</span>
        fastcgi_param SCRIPT_FILENAME <span class="token variable">$document_root</span><span class="token variable">$fastcgi_script_name</span><span class="token punctuation">;</span>
        include fastcgi_params<span class="token punctuation">;</span>
	<span class="token punctuation">}</span>	
<span class="token punctuation">}</span>
</code></pre> 
  <p>3)访问页面</p> 
  <pre><code class="prism language-powershell"><span class="token comment">#访问  http://linux.php.com/php_status</span>
pool:                 www							<span class="token comment">#池名称</span>
<span class="token keyword">process</span> manager:      dynamic						<span class="token comment">#动态管理</span>
<span class="token function">start</span> time:           14<span class="token operator">/</span>Sep<span class="token operator">/</span>2020:18:52:12 <span class="token operator">+</span>0800	  <span class="token comment">#启动时间</span>
<span class="token function">start</span> since:          14							<span class="token comment">#启动了多久</span>
accepted conn:        1								<span class="token comment">#连接数</span>
listen queue:         0								<span class="token comment">#等待队列</span>
max listen queue:     0								<span class="token comment">#最大等待队列</span>
listen queue len:     511							<span class="token comment">#等待队列长度</span>
idle processes:       4								<span class="token comment">#空闲的进程数</span>
active processes:     1								<span class="token comment">#活跃的进程数</span>
total processes:      5								<span class="token comment">#总的进程数</span>
max active processes: 1								<span class="token comment">#最大的活跃进程数</span>
max children reached: 0								<span class="token comment">#进程最大的限制连接数</span>
slow requests:        0								<span class="token comment">#慢查询</span>
</code></pre> 
 </div> 
</div>
                            </div>
                        </div>
                    </div>
                    <!--PC和WAP自适应版-->
                    <div id="SOHUCS" sid="1514145163839078400"></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">你可能感兴趣的:(架构,php,nginx)</h4>
        <div id="paradigm-article-related">
            <div class="recommend-post mb30">
                <ul class="widget-links">
                    <li><a href="/article/1901428064982724608.htm"
                           title="深入解析两大AI模型的架构与功能" target="_blank">深入解析两大AI模型的架构与功能</a>
                        <span class="text-muted">草莓屁屁我不吃</span>
<a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a><a class="tag" taget="_blank" href="/search/chatgpt/1.htm">chatgpt</a>
                        <div>在人工智能(AI)领域,自然语言处理(NLP)一直是研究的热点之一。随着技术的不断进步,我们见证了从简单的聊天机器人到复杂语言模型的演变。其中,Google的Gemini和OpenAI的ChatGPT作为两大代表性模型,各自在技术和应用上展现出了卓越的性能。本文将详细解析Gemini和ChatGPT的系统架构、功能特性及其背后的技术原理。Gemini模型详解技术背景与架构Gemini,顾名思义,意</div>
                    </li>
                    <li><a href="/article/1901426174429556736.htm"
                           title="SpringBoot实践(三十二):5分钟搭建springboot单体应用开发框架" target="_blank">SpringBoot实践(三十二):5分钟搭建springboot单体应用开发框架</a>
                        <span class="text-muted">A叶子叶</span>
<a class="tag" taget="_blank" href="/search/%23/1.htm">#</a><a class="tag" taget="_blank" href="/search/SpringBoot%E4%B8%8E%E5%BE%AE%E6%9C%8D%E5%8A%A1/1.htm">SpringBoot与微服务</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a>
                        <div>熟悉语言和开发工具上基础快速使用框架构建应用是个机械工作,5分钟完成开发准备工作,没有冗余动作。目录准备工作开发框架搭建spring初始化常规依赖其他依赖规范化开发目录结构依赖适配代码生成器响应体封装github代码准备工作后端开发需要数据持久化,数据库使用mysql,这也是生产环境大部分的选择,本地开发如果没有mysql可以直接在idea上创建h2数据库,具体创建方式可以参考:使用IDEA创建H</div>
                    </li>
                    <li><a href="/article/1901417728665776128.htm"
                           title="探索未来架构:基于AWS的响应式微服务框架" target="_blank">探索未来架构:基于AWS的响应式微服务框架</a>
                        <span class="text-muted">柏赢安Simona</span>

                        <div>探索未来架构:基于AWS的响应式微服务框架reactive-refarch-cloudformationReactiveMicroservicesArchitectureswithAmazonECS,AWSLambda,AmazonKinesisStreams,AmazonElastiCache,andAmazonDynamoDB项目地址:https://gitcode.com/gh_mirror</div>
                    </li>
                    <li><a href="/article/1901416971283525632.htm"
                           title="展望 AIGC 前景:通义万相 2.1 与蓝耘智算平台共筑 AI 生产力高地" target="_blank">展望 AIGC 前景:通义万相 2.1 与蓝耘智算平台共筑 AI 生产力高地</a>
                        <span class="text-muted">accurater</span>
<a class="tag" taget="_blank" href="/search/AIGC/1.htm">AIGC</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a><a class="tag" taget="_blank" href="/search/%E7%A5%9E%E7%BB%8F%E7%BD%91%E7%BB%9C/1.htm">神经网络</a><a class="tag" taget="_blank" href="/search/%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0/1.htm">深度学习</a>
                        <div>喜欢可以到主页订阅专栏引言人工智能生成内容(AIGC)技术正在重塑内容创作、影视制作、广告设计等行业的底层逻辑。作为该领域的革命性技术代表,通义万相2.1凭借其开源特性、多模态生成能力和技术突破,成为全球视频生成模型的标杆。而蓝耘智算平台则通过高性能算力支持与分布式架构优化,为AIGC技术的规模化应用提供了基础设施保障。两者的协同不仅推动了AI生产力的跃迁,更开启了从技术研发到商业落地的全链条创新</div>
                    </li>
                    <li><a href="/article/1901414574024880128.htm"
                           title="PHP与数据库连接常见问题及解决办法" target="_blank">PHP与数据库连接常见问题及解决办法</a>
                        <span class="text-muted">奥顺互联_老张</span>
<a class="tag" taget="_blank" href="/search/php%E6%95%99%E7%A8%8B/1.htm">php教程</a><a class="tag" taget="_blank" href="/search/php/1.htm">php</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a>
                        <div>PHP与数据库连接常见问题及解决办法在现代Web开发中,PHP与数据库的连接是不可或缺的一部分。无论是构建动态网站、内容管理系统(CMS)还是电子商务平台,PHP与数据库的交互都是核心功能之一。然而,在实际开发过程中,开发者常常会遇到各种与数据库连接相关的问题。本文将探讨PHP与数据库连接中的常见问题,并提供相应的解决办法。1.数据库连接失败问题描述在PHP中,连接数据库时最常见的错误是无法连接到</div>
                    </li>
                    <li><a href="/article/1901412304969330688.htm"
                           title="AJAX PHP:深入理解与实际应用" target="_blank">AJAX PHP:深入理解与实际应用</a>
                        <span class="text-muted">wjs2024</span>
<a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a>
                        <div>AJAXPHP:深入理解与实际应用引言随着互联网技术的不断发展,前端与后端交互变得更加频繁。AJAX(AsynchronousJavaScriptandXML)和PHP(HypertextPreprocessor)作为两种流行的技术,在实现动态网页和应用程序方面扮演着重要角色。本文将深入探讨AJAXPHP的工作原理、应用场景以及实际开发中的注意事项。AJAXPHP概述AJAXAJAX是一种基于Ja</div>
                    </li>
                    <li><a href="/article/1901409534006587392.htm"
                           title="K8S学习之基础二十八:k8s中的configMap" target="_blank">K8S学习之基础二十八:k8s中的configMap</a>
                        <span class="text-muted">云上艺旅</span>
<a class="tag" taget="_blank" href="/search/K8S%E5%AD%A6%E4%B9%A0/1.htm">K8S学习</a><a class="tag" taget="_blank" href="/search/kubernetes/1.htm">kubernetes</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a><a class="tag" taget="_blank" href="/search/%E5%AE%B9%E5%99%A8/1.htm">容器</a><a class="tag" taget="_blank" href="/search/%E4%BA%91%E5%8E%9F%E7%94%9F/1.htm">云原生</a>
                        <div>k8s中的configMapconfigMap是k8s的资源对象,简称cm,用于保存非机密性的配置,数据可以用key/value键值对形式保存,也可以通过文件形式保存在部署服务的时候,每个服务都有自己的配置文件,如果一台服务器上部署多个服务:nginx、tomcat、apache等,那么这些配置都存在这个节点上,假如一台服务器不能满足线上高并发的要求,需要对服务器扩容,扩容之后的服务器还是需要部署</div>
                    </li>
                    <li><a href="/article/1901407894306353152.htm"
                           title="Spring Boot 多级缓存实战:基于 Redis+Redisson 构建高并发解决方案" target="_blank">Spring Boot 多级缓存实战:基于 Redis+Redisson 构建高并发解决方案</a>
                        <span class="text-muted">Isaac_Gao</span>
<a class="tag" taget="_blank" href="/search/%E7%BC%93%E5%AD%98/1.htm">缓存</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/boot/1.htm">boot</a><a class="tag" taget="_blank" href="/search/redis/1.htm">redis</a>
                        <div>SpringBoot多级缓存实战:基于Redis+Redisson构建高并发解决方案本文适合人群:中高级Java开发工程师、系统架构师、对高并发场景优化感兴趣的技术人员一、为什么需要多级缓存?在百万级并发的电商系统中,我们曾遇到这样的性能瓶颈:本地缓存导致各节点数据不一致单纯依赖Redis造成带宽瓶颈缓存雪崩导致DB被打挂多级缓存架构通过结合本地缓存与分布式缓存的优势,实现了:热点数据纳秒级访问分</div>
                    </li>
                    <li><a href="/article/1901406884695437312.htm"
                           title="Dubbo、SpringCloud框架学习" target="_blank">Dubbo、SpringCloud框架学习</a>
                        <span class="text-muted">种豆走天下</span>
<a class="tag" taget="_blank" href="/search/dubbo/1.htm">dubbo</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/cloud/1.htm">cloud</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a>
                        <div>学习Dubbo和SpringCloud框架是微服务架构的一个重要部分。这两个框架在分布式系统中起着重要的作用,分别是阿里巴巴和Spring团队开发的。下面我将为你提供一些基础知识和学习路线,帮助你更好地理解和掌握这两个框架。1.Dubbo框架学习1.1什么是DubboDubbo是阿里巴巴开源的一款高性能的微服务框架。它提供了RPC(远程过程调用)、服务注册与发现、负载均衡、容错、监控等功能。Dub</div>
                    </li>
                    <li><a href="/article/1901404739938086912.htm"
                           title="鲲鹏920 7265 (128C)@3.0GHz处理器全解析" target="_blank">鲲鹏920 7265 (128C)@3.0GHz处理器全解析</a>
                        <span class="text-muted">facaixxx2024</span>
<a class="tag" taget="_blank" href="/search/%E4%BA%91%E6%9C%8D%E5%8A%A1%E5%99%A8/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/CPU/1.htm">CPU</a>
                        <div>鲲鹏9207265(128C)@3.0GHz:鲲鹏9207265处理器,通常是单芯片64核,当使用2路处理器时可达128核,主频3.0GHz,服务器百科网fwqbk.com分享鲲鹏920处理器:鲲鹏920处理器基本参数架构:ARMv8.2制造工艺:7nm内存:支持8通道DDR4内存,内存速率可达2933MT/s缓存:L1为64KB指令缓存和数据缓存;L2为512KB每核独立缓存;L3为24-64M</div>
                    </li>
                    <li><a href="/article/1901404613538541568.htm"
                           title="python提取excel数据批量生成固定格式的word文件的问题" target="_blank">python提取excel数据批量生成固定格式的word文件的问题</a>
                        <span class="text-muted">鱼弦</span>
<a class="tag" taget="_blank" href="/search/%E3%80%90HOT%E3%80%91%E6%8A%80%E6%9C%AF%E7%83%AD%E8%B0%88/1.htm">【HOT】技术热谈</a><a class="tag" taget="_blank" href="/search/excel/1.htm">excel</a><a class="tag" taget="_blank" href="/search/word/1.htm">word</a>
                        <div>鱼弦:公众号【红尘灯塔】,CSDN博客专家、内容合伙人、新星导师、全栈领域优质创作者、51CTO(Top红人+专家博主)、github开源爱好者(go-zero源码二次开发、游戏后端架构https://github.com/Peakchen)使用Python从Excel中提取数据并生成固定格式的Word文档1.介绍本项目旨在介绍如何使用Python从Excel中提取数据并生成固定格式的Word文档</div>
                    </li>
                    <li><a href="/article/1901403603986345984.htm"
                           title="python 使用microsoft-Florence-2-base进行图片描述生成" target="_blank">python 使用microsoft-Florence-2-base进行图片描述生成</a>
                        <span class="text-muted">哦里 哦里哦里给</span>
<a class="tag" taget="_blank" href="/search/AI/1.htm">AI</a><a class="tag" taget="_blank" href="/search/%E5%A4%A7%E8%AF%AD%E8%A8%80%E6%A8%A1%E5%9E%8B%E5%AE%9E%E6%88%98/1.htm">大语言模型实战</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/microsoft/1.htm">microsoft</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a>
                        <div>目录一、Florence-2简介二、代码实践三、多语言模型一、Florence-2简介Florence-2是一个先进的视觉基础模型,采用基于提示(prompt)的方式,处理广泛的视觉和视觉-语言任务。Florence-2能够解析简单的文本提示,执行如图像描述、物体检测和分割等任务。该模型利用FLD-5B数据集,该数据集包含54亿个注释,涵盖1.26亿张图像,用于掌握多任务学习。模型的序列到序列架构</div>
                    </li>
                    <li><a href="/article/1901400701255348224.htm"
                           title="10万人服务器配置如何选择?10w并发量配置架构" target="_blank">10万人服务器配置如何选择?10w并发量配置架构</a>
                        <span class="text-muted">facaixxx2024</span>
<a class="tag" taget="_blank" href="/search/%E9%98%BF%E9%87%8C%E4%BA%91/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/%E6%9E%B6%E6%9E%84/1.htm">架构</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a>
                        <div>10万并发量的应用如何选择阿里云服务器配置?首先要选择云服务器ECS实例规格,因为是10万并发量需要配置负载均衡,而且还要使用缓存技术,阿里云服务器网aliyunfuwuqi.com从阿里云官网整理的关于阿里云10万并发量服务器配置和案例分享:10万人服务器云服务器ECS实例规格选择要满足10w并发量的阿里云服务器,首先需要选择适合的云服务器ECS实例规格。阿里云提供了多种不同的实例类型,包括通用</div>
                    </li>
                    <li><a href="/article/1901395400154214400.htm"
                           title="金融时间序列分析(Yahoo Finance API实战)" target="_blank">金融时间序列分析(Yahoo Finance API实战)</a>
                        <span class="text-muted">闲人编程</span>
<a class="tag" taget="_blank" href="/search/Python%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90%E5%AE%9E%E6%88%98%E7%B2%BE%E8%A6%81/1.htm">Python数据分析实战精要</a><a class="tag" taget="_blank" href="/search/%E9%87%91%E8%9E%8D/1.htm">金融</a><a class="tag" taget="_blank" href="/search/yfinance/1.htm">yfinance</a><a class="tag" taget="_blank" href="/search/%E6%97%B6%E9%97%B4%E5%BA%8F%E5%88%97/1.htm">时间序列</a><a class="tag" taget="_blank" href="/search/%E6%B3%A2%E5%8A%A8%E7%8E%87/1.htm">波动率</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BD%92%E4%B8%80%E5%8C%96/1.htm">数据归一化</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90/1.htm">数据分析</a><a class="tag" taget="_blank" href="/search/Dash/1.htm">Dash</a>
                        <div>这里写目录标题金融时间序列分析(YahooFinanceAPI实战)1.引言2.项目背景与意义3.数据集介绍4.GPU加速在数据处理中的应用5.交互式GUI设计与加速处理6.系统整体架构7.数学公式与指标计算8.完整代码实现9.代码自查与BUG排查10.总结与展望金融时间序列分析(YahooFinanceAPI实战)1.引言在当今金融市场中,时间序列数据分析是理解股票、指数以及其他金融产品走势的重</div>
                    </li>
                    <li><a href="/article/1901394769595133952.htm"
                           title="区块链架构、跨链和演进" target="_blank">区块链架构、跨链和演进</a>
                        <span class="text-muted">Omni-Space</span>
<a class="tag" taget="_blank" href="/search/%E5%8C%BA%E5%9D%97%E9%93%BE/1.htm">区块链</a><a class="tag" taget="_blank" href="/search/%28Block/1.htm">(Block</a><a class="tag" taget="_blank" href="/search/Chain%29/1.htm">Chain)</a><a class="tag" taget="_blank" href="/search/%E5%8C%BA%E5%9D%97%E9%93%BE/1.htm">区块链</a><a class="tag" taget="_blank" href="/search/%E6%9E%B6%E6%9E%84/1.htm">架构</a><a class="tag" taget="_blank" href="/search/%E8%B7%A8%E9%93%BE/1.htm">跨链</a><a class="tag" taget="_blank" href="/search/%E6%BC%94%E8%BF%9B/1.htm">演进</a>
                        <div>本文是基于作者近几年来对各种区块链平台理念和技术的研究,结合作者过去十多年的IT经验,审慎思考的结果,文章仅代表作者个人观点。作者会假设读者对各种区块链平台有一定的认知,不会对具体的区块链平台再做详细的介绍。为了从根本上说清楚区块链的架构内涵,作者先概括出区块链的本质,从区块链的本质出发,以发展的眼光给出一个区块链的详见附件架构,并对高阶的各个模块进行详细的说明。还会从区块链跨链的本质出发,说明区</div>
                    </li>
                    <li><a href="/article/1901393508950929408.htm"
                           title="简单工厂模式、工厂方法模式、抽象工厂模式 对比学习笔记" target="_blank">简单工厂模式、工厂方法模式、抽象工厂模式 对比学习笔记</a>
                        <span class="text-muted">idgoodbye</span>
<a class="tag" taget="_blank" href="/search/%E7%AE%80%E5%8D%95%E5%B7%A5%E5%8E%82%E6%A8%A1%E5%BC%8F/1.htm">简单工厂模式</a><a class="tag" taget="_blank" href="/search/%E5%B7%A5%E5%8E%82%E6%96%B9%E6%B3%95%E6%A8%A1%E5%BC%8F/1.htm">工厂方法模式</a><a class="tag" taget="_blank" href="/search/%E6%8A%BD%E8%B1%A1%E5%B7%A5%E5%8E%82%E6%A8%A1%E5%BC%8F/1.htm">抽象工厂模式</a>
                        <div>工厂模式架构设计原则开闭原则:是指一个软件实体(如类、模块和函数)应该对扩展开放,对修改关闭。依赖倒置原则:是指设计代码结构时,高层模块不应该依赖低层模块,二者都应该依赖其抽象。抽象不应该依赖细节,细节应该依赖抽象。单一职责:是指一个类只负责一个主要任务,避免因一个类负责两个以上任务时,修改其中一个任务代码导致另一个任务代码受到连带影响。接口隔离原则:是指用多个专门的接口,而不使用单一的总接口,客</div>
                    </li>
                    <li><a href="/article/1901393500499406848.htm"
                           title="97.HarmonyOS NEXT跑马灯组件教程:基础概念与架构设计" target="_blank">97.HarmonyOS NEXT跑马灯组件教程:基础概念与架构设计</a>
                        <span class="text-muted"></span>
<a class="tag" taget="_blank" href="/search/harmonyos-next/1.htm">harmonyos-next</a>
                        <div>温馨提示:本篇博客的详细代码已发布到git:https://gitcode.com/nutpi/HarmonyosNext可以下载运行哦!HarmonyOSNEXT跑马灯组件教程:基础概念与架构设计1.跑马灯组件概述跑马灯(Marquee)是一种常见的UI组件,主要用于在有限的空间内展示超出显示区域的文本内容。当文本内容过长无法在固定宽度内完整显示时,跑马灯组件会使文本自动滚动,以便用户可以查看全</div>
                    </li>
                    <li><a href="/article/1901393253362626560.htm"
                           title="【从零开始学习计算机科学】设计模式(一)设计模式概述" target="_blank">【从零开始学习计算机科学】设计模式(一)设计模式概述</a>
                        <span class="text-muted">贫苦游商</span>
<a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a><a class="tag" taget="_blank" href="/search/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/1.htm">设计模式</a><a class="tag" taget="_blank" href="/search/%E8%BD%AF%E4%BB%B6%E5%B7%A5%E7%A8%8B/1.htm">软件工程</a><a class="tag" taget="_blank" href="/search/%E8%BD%AF%E4%BB%B6%E5%BC%80%E5%8F%91/1.htm">软件开发</a><a class="tag" taget="_blank" href="/search/%E8%BD%AF%E4%BB%B6%E8%AE%BE%E8%AE%A1/1.htm">软件设计</a><a class="tag" taget="_blank" href="/search/%E8%A1%8C%E4%B8%BA%E6%A8%A1%E5%BC%8F/1.htm">行为模式</a><a class="tag" taget="_blank" href="/search/%E5%BB%BA%E9%80%A0%E8%80%85%E6%A8%A1%E5%BC%8F/1.htm">建造者模式</a>
                        <div>【从零开始学习计算机科学】设计模式(一)设计模式概述设计模式简介设计模式与软件架构设计模式的分类1.创建型模式(CreationalPatterns)2.结构型模式(StructuralPatterns)3.行为型模式(BehavioralPatterns)4.J2EE模式(J2EEPatterns)设计模式的实际应用设计模式简介设计模式在现代软件开发中扮演着至关重要的角色。它们是开发者在长期实践</div>
                    </li>
                    <li><a href="/article/1901393123104321536.htm"
                           title="【从零开始学习计算机科学】硬件设计与FPGA原理" target="_blank">【从零开始学习计算机科学】硬件设计与FPGA原理</a>
                        <span class="text-muted">贫苦游商</span>
<a class="tag" taget="_blank" href="/search/%E3%80%90%E4%BB%8E%E9%9B%B6%E5%BC%80%E5%A7%8B%E5%AD%A6%E4%B9%A0%E8%AE%A1%E7%AE%97%E6%9C%BA%E3%80%91%E7%A1%AC%E4%BB%B6%E8%AE%BE%E8%AE%A1/1.htm">【从零开始学习计算机】硬件设计</a><a class="tag" taget="_blank" href="/search/fpga%E5%BC%80%E5%8F%91/1.htm">fpga开发</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E5%AD%97%E9%80%BB%E8%BE%91/1.htm">数字逻辑</a><a class="tag" taget="_blank" href="/search/verilog/1.htm">verilog</a><a class="tag" taget="_blank" href="/search/HDL/1.htm">HDL</a><a class="tag" taget="_blank" href="/search/%E7%A1%AC%E4%BB%B6%E8%AE%BE%E8%AE%A1/1.htm">硬件设计</a><a class="tag" taget="_blank" href="/search/%E7%A1%AC%E4%BB%B6%E5%B7%A5%E7%A8%8B/1.htm">硬件工程</a>
                        <div>硬件设计硬件设计流程在设计硬件电路之前,首先要把大的框架和架构要搞清楚,这要求我们搞清楚要实现什么功能,然后找找有否能实现同样或相似功能的参考电路板(要懂得尽量利用他人的成果,越是有经验的工程师越会懂得借鉴他人的成果)。如果你找到了的参考设计,最好还是先看懂并理解,这一方面能提高我们的电路理解能力,而且能避免设计中的错误。在开始做硬件设计前,根据自己的项目需求,可以去找能够满足硬件功能设计的,有很</div>
                    </li>
                    <li><a href="/article/1901385937934413824.htm"
                           title="Web3.0 从入门到实战:一站式开发指南" target="_blank">Web3.0 从入门到实战:一站式开发指南</a>
                        <span class="text-muted">七七知享</span>
<a class="tag" taget="_blank" href="/search/Web/1.htm">Web</a><a class="tag" taget="_blank" href="/search/web3/1.htm">web3</a><a class="tag" taget="_blank" href="/search/html5/1.htm">html5</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/%E5%8C%BA%E5%9D%97%E9%93%BE/1.htm">区块链</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8/1.htm">网络安全</a><a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%85%A8/1.htm">安全</a><a class="tag" taget="_blank" href="/search/web%E5%AE%89%E5%85%A8/1.htm">web安全</a>
                        <div>在科技浪潮持续翻涌的当下,Web3.0作为互联网发展的全新篇章,正以前所未有的姿态重塑数字世界格局。从去中心化应用(DApps)蓬勃兴起,到区块链技术成为底层支撑架构,Web3.0开启了一个用户真正掌控数据、价值自由流通的崭新时代。对于怀揣探索精神的开发者而言,投身Web3.0领域,不仅意味着解锁全新技术栈,更能参与塑造互联网的未来形态。本文精心打造了一套从理论基石铺陈,到实战项目落地的Web3.</div>
                    </li>
                    <li><a href="/article/1901385178455011328.htm"
                           title="MCP(Model Context Protocol)模型上下文协议 理论篇1 - 架构" target="_blank">MCP(Model Context Protocol)模型上下文协议 理论篇1 - 架构</a>
                        <span class="text-muted">AIQL</span>
<a class="tag" taget="_blank" href="/search/MCP%28Model/1.htm">MCP(Model</a><a class="tag" taget="_blank" href="/search/Context/1.htm">Context</a><a class="tag" taget="_blank" href="/search/Protocol%29/1.htm">Protocol)</a><a class="tag" taget="_blank" href="/search/%E6%9E%B6%E6%9E%84/1.htm">架构</a><a class="tag" taget="_blank" href="/search/ai/1.htm">ai</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a><a class="tag" taget="_blank" href="/search/MCP/1.htm">MCP</a>
                        <div>核心架构理解MCP如何连接客户端、服务器和LLM模型上下文协议(MCP)建立在灵活、可扩展的架构之上,能够实现LLM应用程序和集成之间的无缝通信。本文档涵盖了核心架构组件和概念。概述MCP采用客户端-服务器架构,其中:主机(Hosts)是发起连接的LLM应用程序(例如DesktopApp或IDE)。客户端(Clients)在主机应用程序内部与服务器保持1对1的连接。服务器(Servers)为客户端</div>
                    </li>
                    <li><a href="/article/1901382155209076736.htm"
                           title="京准电钟:体育馆GPS北斗卫星校时钟系统" target="_blank">京准电钟:体育馆GPS北斗卫星校时钟系统</a>
                        <span class="text-muted">北京华人开创公司</span>
<a class="tag" taget="_blank" href="/search/%E6%97%B6%E9%92%9F%E7%B3%BB%E7%BB%9F/1.htm">时钟系统</a><a class="tag" taget="_blank" href="/search/%E5%8C%97%E6%96%97%E5%8D%AB%E6%98%9F%E6%8E%88%E6%97%B6/1.htm">北斗卫星授时</a><a class="tag" taget="_blank" href="/search/NTP%E6%97%B6%E9%97%B4%E5%90%8C%E6%AD%A5/1.htm">NTP时间同步</a><a class="tag" taget="_blank" href="/search/%E6%97%B6%E9%92%9F%E7%B3%BB%E7%BB%9F/1.htm">时钟系统</a><a class="tag" taget="_blank" href="/search/%E5%AD%90%E6%AF%8D%E9%92%9F%E7%B3%BB%E7%BB%9F/1.htm">子母钟系统</a><a class="tag" taget="_blank" href="/search/NTP%E6%97%B6%E9%92%9F/1.htm">NTP时钟</a><a class="tag" taget="_blank" href="/search/%E5%8D%AB%E6%98%9F%E6%A0%A1%E6%97%B6%E9%92%9F/1.htm">卫星校时钟</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E6%8E%88%E6%97%B6%E7%B3%BB%E7%BB%9F/1.htm">网络授时系统</a><a class="tag" taget="_blank" href="/search/%E6%97%B6%E9%97%B4%E5%90%8C%E6%AD%A5%E7%B3%BB%E7%BB%9F/1.htm">时间同步系统</a>
                        <div>京准电钟:体育馆GPS北斗卫星校时钟系统京准电钟:体育馆GPS北斗卫星校时钟系统一、系统架构与组成主控系统(母钟)采用GPS/北斗双模接收模块,通过卫星信号获取标准UTC时间,精度可达±100ns14。主备冗余设计:两台母钟互为热备份,故障时自动切换(切换时间<50ms),内置铷原子钟或恒温晶振作为守时源,确保卫星失锁24小时内误差不超过20μs234。支持NTP/SNTP协议,为网络设备提供时间</div>
                    </li>
                    <li><a href="/article/1901378370520805376.htm"
                           title="MobileNet家族:从v1到v4的架构演进与发展历程" target="_blank">MobileNet家族:从v1到v4的架构演进与发展历程</a>
                        <span class="text-muted">彩旗工作室</span>
<a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a><a class="tag" taget="_blank" href="/search/%E6%9E%B6%E6%9E%84/1.htm">架构</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a><a class="tag" taget="_blank" href="/search/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0/1.htm">机器学习</a><a class="tag" taget="_blank" href="/search/cnn/1.htm">cnn</a><a class="tag" taget="_blank" href="/search/%E5%8D%B7%E7%A7%AF%E7%A5%9E%E7%BB%8F%E7%BD%91%E7%BB%9C/1.htm">卷积神经网络</a>
                        <div>MobileNet是一个专为移动设备和嵌入式系统设计的轻量化卷积神经网络(CNN)家族,旨在在资源受限的环境中实现高效的图像分类、对象检测和语义分割等任务。自2017年首次推出以来,MobileNet经历了从v1到v4的多次迭代,每一代都在计算效率、模型大小和准确性上取得了显著进步。本文将详细探讨MobileNetv1、v2、v3和v4的原理、架构设计及其发展历程,并分析其关键创新和性能表现。Mo</div>
                    </li>
                    <li><a href="/article/1901378369526755328.htm"
                           title="MindSpore:华为全场景AI框架的技术全景与生态实践" target="_blank">MindSpore:华为全场景AI框架的技术全景与生态实践</a>
                        <span class="text-muted">彩旗工作室</span>
<a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a>
                        <div>一、框架概述MindSpore(昇思)是华为自主研发的全场景AI计算框架,于2020年3月开源,旨在实现易开发、高效执行、灵活部署三大核心目标。作为华为昇腾AI生态的基石,MindSpore支持端、边、云全场景覆盖,并深度融合昇腾处理器的算力特性,提供从模型开发、训练到推理部署的端到端能力。截至2025年,其月度开发者访问量已突破12万,成为国内开源社区最活跃的AI框架之一。二、架构设计MindS</div>
                    </li>
                    <li><a href="/article/1901373580160069632.htm"
                           title="当通用智能遇到深度推理:如何正确驾驭DeepSeek-V3与R1?" target="_blank">当通用智能遇到深度推理:如何正确驾驭DeepSeek-V3与R1?</a>
                        <span class="text-muted">涛涛讲AI</span>
<a class="tag" taget="_blank" href="/search/%E5%A4%A7%E6%A8%A1%E5%9E%8B/1.htm">大模型</a><a class="tag" taget="_blank" href="/search/%E5%A4%A7%E6%A8%A1%E5%9E%8B/1.htm">大模型</a><a class="tag" taget="_blank" href="/search/%E6%99%BA%E8%83%BD%E4%BD%93/1.htm">智能体</a><a class="tag" taget="_blank" href="/search/%E6%89%A3%E5%AD%90/1.htm">扣子</a><a class="tag" taget="_blank" href="/search/deepseek/1.htm">deepseek</a>
                        <div>欢迎来到涛涛聊AI。2025年,中国AI公司DeepSeek凭借两款大模型——通用型V3与推理型R1,在技术圈掀起巨浪。这两款模型看似师出同门,却在能力边界与应用场景上存在显著差异。本文将从技术本质、适用场景与实操技巧三个维度,剖析它们的差异与使用策略。一、定位差异:全能选手vs解题专家DeepSeek-V3:高性价比的“多面手”V3的核心目标是平衡性能与成本。它采用混合专家架构(MoE),参数规</div>
                    </li>
                    <li><a href="/article/1901371437478899712.htm"
                           title="mongodb基本使用(四)" target="_blank">mongodb基本使用(四)</a>
                        <span class="text-muted">dibisha7239</span>
<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/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84%E4%B8%8E%E7%AE%97%E6%B3%95/1.htm">数据结构与算法</a><a class="tag" taget="_blank" href="/search/ViewUI/1.htm">ViewUI</a>
                        <div>MongoDB条件操作符描述条件操作符用于比较两个表达式并从mongoDB集合中获取数据。MongoDB中条件操作符有:(>)大于-$gt(=)大于等于-$gte(db.col.insert({title:'PHP教程',description:'PHP是一种创建动态交互性站点的强有力的服务器端脚本语言。',by:'菜鸟教程',url:'http://www.runoob.com',tags:['</div>
                    </li>
                    <li><a href="/article/1901364369334267904.htm"
                           title="SOVD-Service Oriented Vehicle Diagnostic" target="_blank">SOVD-Service Oriented Vehicle Diagnostic</a>
                        <span class="text-muted">诊断协议那些事儿</span>
<a class="tag" taget="_blank" href="/search/%E8%AF%8A%E6%96%AD%E5%8D%8F%E8%AE%AE%E9%82%A3%E4%BA%9B%E4%BA%8B%E5%84%BF/1.htm">诊断协议那些事儿</a><a class="tag" taget="_blank" href="/search/%E7%BB%8F%E9%AA%8C%E5%88%86%E4%BA%AB/1.htm">经验分享</a><a class="tag" taget="_blank" href="/search/%E8%BD%A6%E8%BD%BD%E7%B3%BB%E7%BB%9F/1.htm">车载系统</a>
                        <div>文章目录前言一、SOVD是什么二、SOVD的设计目的三、应用场景四、SOVD架构前言随着自动驾驶技术的发展,车辆配置变得越来越复杂,车载软件也在迅速增长:基于HPC(高性能计算机)、异构操作系统、大量并行进程及其依赖关系的新架构也给诊断工作带来了重大挑战。诊断的重点从识别硬件错误逐渐扩展到分析软件问题,因此带来了巨大的挑战。因为车辆的内容是动态变化的,同时当诊断通信被用于控制车辆复杂的更新过程时,</div>
                    </li>
                    <li><a href="/article/1901362857929404416.htm"
                           title="RISC-V指令集架构的形式语义——基于Haskell的实现" target="_blank">RISC-V指令集架构的形式语义——基于Haskell的实现</a>
                        <span class="text-muted">富珂祯</span>

                        <div>RISC-V指令集架构的形式语义——基于Haskell的实现riscv-semanticsAformalsemanticsoftheRISC-VISAinHaskell项目地址:https://gitcode.com/gh_mirrors/ri/riscv-semantics项目介绍本项目RISC-VSemantics在GitHub上托管,提供了一个使用Haskell编写的RISC-V指令集架构(</div>
                    </li>
                    <li><a href="/article/1901360083250507776.htm"
                           title="方舟字节码原理剖析:架构、特性与实践应用" target="_blank">方舟字节码原理剖析:架构、特性与实践应用</a>
                        <span class="text-muted">轻口味</span>
<a class="tag" taget="_blank" href="/search/HarmonyOS/1.htm">HarmonyOS</a><a class="tag" taget="_blank" href="/search/Next/1.htm">Next</a><a class="tag" taget="_blank" href="/search/harmonyos/1.htm">harmonyos</a><a class="tag" taget="_blank" href="/search/%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0/1.htm">深度学习</a><a class="tag" taget="_blank" href="/search/pytorch/1.htm">pytorch</a><a class="tag" taget="_blank" href="/search/harmonyosnext/1.htm">harmonyosnext</a><a class="tag" taget="_blank" href="/search/arkts/1.htm">arkts</a>
                        <div>方舟字节码原理剖析:架构、特性与实践应用一、引言在当今软件行业高速发展的大背景下,应用程序的性能、开发效率以及跨平台兼容性成为了开发者们关注的核心要素。编译器作为软件开发流程中的关键工具,其性能和特性直接影响着软件的质量和开发周期。华为推出的方舟编译器正是为了满足这些需求而诞生的创新成果。方舟字节码(ArkBytecode)作为方舟编译器的核心产物,在整个编译和运行过程中扮演着至关重要的角色。它不</div>
                    </li>
                    <li><a href="/article/1901359579409739776.htm"
                           title="引领高效开发:基于Haskell与Polysemy的纯净架构实现" target="_blank">引领高效开发:基于Haskell与Polysemy的纯净架构实现</a>
                        <span class="text-muted">幸俭卉</span>

                        <div>引领高效开发:基于Haskell与Polysemy的纯净架构实现PolysemyCleanArchitectureShowcasinghowthePolysemylibrarycanbeusedtoimplementaRESTapplicationconformingtotheguidelinesoftheCleanArchitecturemodel.项目地址:https://gitcode.co</div>
                    </li>
                                <li><a href="/article/9.htm"
                                       title="apache ftpserver-CentOS config" target="_blank">apache ftpserver-CentOS config</a>
                                    <span class="text-muted">gengzg</span>
<a class="tag" taget="_blank" href="/search/apache/1.htm">apache</a>
                                    <div><server xmlns="http://mina.apache.org/ftpserver/spring/v1"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="
       http://mina.apache.o</div>
                                </li>
                                <li><a href="/article/136.htm"
                                       title="优化MySQL数据库性能的八种方法" target="_blank">优化MySQL数据库性能的八种方法</a>
                                    <span class="text-muted">AILIKES</span>
<a class="tag" taget="_blank" href="/search/sql/1.htm">sql</a><a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a>
                                    <div>1、选取最适用的字段属性   MySQL可以很好的支持大数据量的存取,但是一般说来,数据库中的表越小,在它上面执行的查询也就会越快。因此,在创建表的时候,为了获得更好的 性能,我们可以将表中字段的宽度设得尽可能小。例如,在定义邮政编码这个字段时,如果将其设置为CHAR(255),显然给数据库增加了不必要的空间,甚至使用VARCHAR这种类型也是多余的,因为CHAR(6)就可以很</div>
                                </li>
                                <li><a href="/article/263.htm"
                                       title="JeeSite 企业信息化快速开发平台" target="_blank">JeeSite 企业信息化快速开发平台</a>
                                    <span class="text-muted">Kai_Ge</span>
<a class="tag" taget="_blank" href="/search/JeeSite/1.htm">JeeSite</a>
                                    <div>JeeSite 企业信息化快速开发平台  
平台简介 
JeeSite是基于多个优秀的开源项目,高度整合封装而成的高效,高性能,强安全性的开源Java EE快速开发平台。 
JeeSite本身是以Spring Framework为核心容器,Spring MVC为模型视图控制器,MyBatis为数据访问层, Apache Shiro为权限授权层,Ehcahe对常用数据进行缓存,Activit为工作流</div>
                                </li>
                                <li><a href="/article/390.htm"
                                       title="通过Spring Mail Api发送邮件" target="_blank">通过Spring Mail Api发送邮件</a>
                                    <span class="text-muted">120153216</span>
<a class="tag" taget="_blank" href="/search/%E9%82%AE%E4%BB%B6/1.htm">邮件</a><a class="tag" taget="_blank" href="/search/main/1.htm">main</a>
                                    <div>原文地址:http://www.open-open.com/lib/view/open1346857871615.html 
使用Java Mail API来发送邮件也很容易实现,但是最近公司一个同事封装的邮件API实在让我无法接受,于是便打算改用Spring Mail API来发送邮件,顺便记录下这篇文章。 【Spring Mail API】 
Spring Mail API都在org.spri</div>
                                </li>
                                <li><a href="/article/517.htm"
                                       title="Pysvn 程序员使用指南" target="_blank">Pysvn 程序员使用指南</a>
                                    <span class="text-muted">2002wmj</span>
<a class="tag" taget="_blank" href="/search/SVN/1.htm">SVN</a>
                                    <div>源文件:http://ju.outofmemory.cn/entry/35762 
这是一篇关于pysvn模块的指南. 
完整和详细的API请参考 http://pysvn.tigris.org/docs/pysvn_prog_ref.html. 
pysvn是操作Subversion版本控制的Python接口模块. 这个API接口可以管理一个工作副本, 查询档案库, 和同步两个. 
该</div>
                                </li>
                                <li><a href="/article/644.htm"
                                       title="在SQLSERVER中查找被阻塞和正在被阻塞的SQL" target="_blank">在SQLSERVER中查找被阻塞和正在被阻塞的SQL</a>
                                    <span class="text-muted">357029540</span>
<a class="tag" taget="_blank" href="/search/SQL+Server/1.htm">SQL Server</a>
                                    <div>SELECT  R.session_id AS BlockedSessionID ,  
        S.session_id AS BlockingSessionID ,  
        Q1.text AS Block</div>
                                </li>
                                <li><a href="/article/771.htm"
                                       title="Intent 常用的用法备忘" target="_blank">Intent 常用的用法备忘</a>
                                    <span class="text-muted">7454103</span>
<a class="tag" taget="_blank" href="/search/.net/1.htm">.net</a><a class="tag" taget="_blank" href="/search/android/1.htm">android</a><a class="tag" taget="_blank" href="/search/Google/1.htm">Google</a><a class="tag" taget="_blank" href="/search/Blog/1.htm">Blog</a><a class="tag" taget="_blank" href="/search/F%23/1.htm">F#</a>
                                    <div>Intent 
    应该算是Android中特有的东西。你可以在Intent中指定程序 要执行的动作(比如:view,edit,dial),以及程序执行到该动作时所需要的资料 。都指定好后,只要调用startActivity(),Android系统 会自动寻找最符合你指定要求的应用 程序,并执行该程序。 
 
下面列出几种Intent 的用法 
显示网页: 
 
</div>
                                </li>
                                <li><a href="/article/898.htm"
                                       title="Spring定时器时间配置" target="_blank">Spring定时器时间配置</a>
                                    <span class="text-muted">adminjun</span>
<a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/%E6%97%B6%E9%97%B4%E9%85%8D%E7%BD%AE/1.htm">时间配置</a><a class="tag" taget="_blank" href="/search/%E5%AE%9A%E6%97%B6%E5%99%A8/1.htm">定时器</a>
                                    <div>红圈中的值由6个数字组成,中间用空格分隔。第一个数字表示定时任务执行时间的秒,第二个数字表示分钟,第三个数字表示小时,后面三个数字表示日,月,年,< xmlnamespace prefix ="o" ns ="urn:schemas-microsoft-com:office:office" />  
测试的时候,由于是每天定时执行,所以后面三个数</div>
                                </li>
                                <li><a href="/article/1025.htm"
                                       title="POJ 2421 Constructing Roads 最小生成树" target="_blank">POJ 2421 Constructing Roads 最小生成树</a>
                                    <span class="text-muted">aijuans</span>
<a class="tag" taget="_blank" href="/search/%E6%9C%80%E5%B0%8F%E7%94%9F%E6%88%90%E6%A0%91/1.htm">最小生成树</a>
                                    <div>来源:http://poj.org/problem?id=2421 
题意:还是给你n个点,然后求最小生成树。特殊之处在于有一些点之间已经连上了边。 
思路:对于已经有边的点,特殊标记一下,加边的时候把这些边的权值赋值为0即可。这样就可以既保证这些边一定存在,又保证了所求的结果正确。 
代码: 
 
#include <iostream>
#include <cstdio></div>
                                </li>
                                <li><a href="/article/1152.htm"
                                       title="重构笔记——提取方法(Extract Method)" target="_blank">重构笔记——提取方法(Extract Method)</a>
                                    <span class="text-muted">ayaoxinchao</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E9%87%8D%E6%9E%84/1.htm">重构</a><a class="tag" taget="_blank" href="/search/%E6%8F%90%E7%82%BC%E5%87%BD%E6%95%B0/1.htm">提炼函数</a><a class="tag" taget="_blank" href="/search/%E5%B1%80%E9%83%A8%E5%8F%98%E9%87%8F/1.htm">局部变量</a><a class="tag" taget="_blank" href="/search/%E6%8F%90%E5%8F%96%E6%96%B9%E6%B3%95/1.htm">提取方法</a>
                                    <div>提取方法(Extract Method)是最常用的重构手法之一。当看到一个方法过长或者方法很难让人理解其意图的时候,这时候就可以用提取方法这种重构手法。 
  
下面是我学习这个重构手法的笔记: 
  
提取方法看起来好像仅仅是将被提取方法中的一段代码,放到目标方法中。其实,当方法足够复杂的时候,提取方法也会变得复杂。当然,如果提取方法这种重构手法无法进行时,就可能需要选择其他</div>
                                </li>
                                <li><a href="/article/1279.htm"
                                       title="为UILabel添加点击事件" target="_blank">为UILabel添加点击事件</a>
                                    <span class="text-muted">bewithme</span>
<a class="tag" taget="_blank" href="/search/UILabel/1.htm">UILabel</a>
                                    <div>    默认情况下UILabel是不支持点击事件的,网上查了查居然没有一个是完整的答案,现在我提供一个完整的代码。 
  
  UILabel *l = [[UILabel alloc] initWithFrame:CGRectMake(60, 0, listV.frame.size.width - 60, listV.frame.size.height)]</div>
                                </li>
                                <li><a href="/article/1406.htm"
                                       title="NoSQL数据库之Redis数据库管理(PHP-REDIS实例)" target="_blank">NoSQL数据库之Redis数据库管理(PHP-REDIS实例)</a>
                                    <span class="text-muted">bijian1013</span>
<a class="tag" taget="_blank" href="/search/redis/1.htm">redis</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/NoSQL/1.htm">NoSQL</a>
                                    <div>一.redis.php 
<?php
      //实例化
      $redis = new Redis();
      //连接服务器
      $redis->connect("localhost");
      //授权
      $redis->auth("lamplijie");
      //相关操</div>
                                </li>
                                <li><a href="/article/1533.htm"
                                       title="SecureCRT使用备注" target="_blank">SecureCRT使用备注</a>
                                    <span class="text-muted">bingyingao</span>
<a class="tag" taget="_blank" href="/search/secureCRT/1.htm">secureCRT</a><a class="tag" taget="_blank" href="/search/%E6%AF%8F%E9%A1%B5/1.htm">每页</a><a class="tag" taget="_blank" href="/search/%E8%A1%8C%E6%95%B0/1.htm">行数</a>
                                    <div>SecureCRT日志和卷屏行数设置 
 
一、使用securecrt时,设置自动日志记录功能。 
 
1、在C:\Program Files\SecureCRT\下新建一个文件夹(也就是你的CRT可执行文件的路径),命名为Logs; 
 
2、点击Options -> Global Options -> Default Session -> Edite Default Sett</div>
                                </li>
                                <li><a href="/article/1660.htm"
                                       title="【Scala九】Scala核心三:泛型" target="_blank">【Scala九】Scala核心三:泛型</a>
                                    <span class="text-muted">bit1129</span>
<a class="tag" taget="_blank" href="/search/scala/1.htm">scala</a>
                                    <div>泛型类 
package spark.examples.scala.generics

class GenericClass[K, V](val k: K, val v: V) {
  def print() {
    println(k + "," + v)
  }
}

object GenericClass {
  def main(args: Arr</div>
                                </li>
                                <li><a href="/article/1787.htm"
                                       title="素数与音乐" target="_blank">素数与音乐</a>
                                    <span class="text-muted">bookjovi</span>
<a class="tag" taget="_blank" href="/search/%E7%B4%A0%E6%95%B0/1.htm">素数</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E5%AD%A6/1.htm">数学</a><a class="tag" taget="_blank" href="/search/haskell/1.htm">haskell</a>
                                    <div>    由于一直在看haskell,不可避免的接触到了很多数学知识,其中数论最多,如素数,斐波那契数列等,很多在学生时代无法理解的数学现在似乎也能领悟到那么一点。 
    闲暇之余,从图书馆找了<<The music of primes>>和<<世界数学通史>>读了几遍。其中素数的音乐这本书与软件界熟知的&l</div>
                                </li>
                                <li><a href="/article/1914.htm"
                                       title="Java-Collections Framework学习与总结-IdentityHashMap" target="_blank">Java-Collections Framework学习与总结-IdentityHashMap</a>
                                    <span class="text-muted">BrokenDreams</span>
<a class="tag" taget="_blank" href="/search/Collections/1.htm">Collections</a>
                                    <div>        这篇总结一下java.util.IdentityHashMap。从类名上可以猜到,这个类本质应该还是一个散列表,只是前面有Identity修饰,是一种特殊的HashMap。 
        简单的说,IdentityHashMap和HashM</div>
                                </li>
                                <li><a href="/article/2041.htm"
                                       title="读《研磨设计模式》-代码笔记-享元模式-Flyweight" target="_blank">读《研磨设计模式》-代码笔记-享元模式-Flyweight</a>
                                    <span class="text-muted">bylijinnan</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/1.htm">设计模式</a>
                                    <div>声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/ 
 
 
 



import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java</div>
                                </li>
                                <li><a href="/article/2168.htm"
                                       title="PS人像润饰&调色教程集锦" target="_blank">PS人像润饰&调色教程集锦</a>
                                    <span class="text-muted">cherishLC</span>
<a class="tag" taget="_blank" href="/search/PS/1.htm">PS</a>
                                    <div>  1、仿制图章沿轮廓润饰——柔化图像,凸显轮廓 
 
http://www.howzhi.com/course/retouching/ 
  新建一个透明图层,使用仿制图章不断Alt+鼠标左键选点,设置透明度为21%,大小为修饰区域的1/3左右(比如胳膊宽度的1/3),再沿纹理方向(比如胳膊方向)进行修饰。 
  所有修饰完成后,对该润饰图层添加噪声,噪声大小应该和</div>
                                </li>
                                <li><a href="/article/2295.htm"
                                       title="更新多个字段的UPDATE语句" target="_blank">更新多个字段的UPDATE语句</a>
                                    <span class="text-muted">crabdave</span>
<a class="tag" taget="_blank" href="/search/update/1.htm">update</a>
                                    <div>更新多个字段的UPDATE语句 
  
                 
                update tableA a
                   set (a.v1, a.v2, a.v3, a.v4) =   --使用括号确定更新的字段范围
          </div>
                                </li>
                                <li><a href="/article/2422.htm"
                                       title="hive实例讲解实现in和not in子句" target="_blank">hive实例讲解实现in和not in子句</a>
                                    <span class="text-muted">daizj</span>
<a class="tag" taget="_blank" href="/search/hive/1.htm">hive</a><a class="tag" taget="_blank" href="/search/not+in/1.htm">not in</a><a class="tag" taget="_blank" href="/search/in/1.htm">in</a>
                                    <div>本文转自:http://www.cnblogs.com/ggjucheng/archive/2013/01/03/2842855.html 
 
 
当前hive不支持 in或not in 中包含查询子句的语法,所以只能通过left join实现。 
 
假设有一个登陆表login(当天登陆记录,只有一个uid),和一个用户注册表regusers(当天注册用户,字段只有一个uid),这两个表都包含</div>
                                </li>
                                <li><a href="/article/2549.htm"
                                       title="一道24点的10+种非人类解法(2,3,10,10)" target="_blank">一道24点的10+种非人类解法(2,3,10,10)</a>
                                    <span class="text-muted">dsjt</span>
<a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a>
                                    <div>这是人类算24点的方法?!!! 
 
事件缘由:今天晚上突然看到一条24点状态,当时惊为天人,这NM叫人啊?以下是那条状态 
 
朱明西 : 24点,算2 3 10 10,我LX炮狗等面对四张牌痛不欲生,结果跑跑同学扫了一眼说,算出来了,2的10次方减10的3次方。。我草这是人类的算24点啊。。 
 
然后么。。。我就在深夜很得瑟的问室友求室友算 
 
刚出完题,文哥的暴走之旅开始了 
 
5秒后</div>
                                </li>
                                <li><a href="/article/2676.htm"
                                       title="关于YII的菜单插件 CMenu和面包末breadcrumbs路径管理插件的一些使用问题" target="_blank">关于YII的菜单插件 CMenu和面包末breadcrumbs路径管理插件的一些使用问题</a>
                                    <span class="text-muted">dcj3sjt126com</span>
<a class="tag" taget="_blank" href="/search/yii/1.htm">yii</a><a class="tag" taget="_blank" href="/search/framework/1.htm">framework</a>
                                    <div>在使用 YIi的路径管理工具时,发现了一个问题。                    <?php         </div>
                                </li>
                                <li><a href="/article/2803.htm"
                                       title="对象与关系之间的矛盾:“阻抗失配”效应[转]" target="_blank">对象与关系之间的矛盾:“阻抗失配”效应[转]</a>
                                    <span class="text-muted">come_for_dream</span>
<a class="tag" taget="_blank" href="/search/%E5%AF%B9%E8%B1%A1/1.htm">对象</a>
                                    <div>概述 
  
“阻抗失配”这一词组通常用来描述面向对象应用向传统的关系数据库(RDBMS)存放数据时所遇到的数据表述不一致问题。C++程序员已经被这个问题困扰了好多年,而现在的Java程序员和其它面向对象开发人员也对这个问题深感头痛。 
  
“阻抗失配”产生的原因是因为对象模型与关系模型之间缺乏固有的亲合力。“阻抗失配”所带来的问题包括:类的层次关系必须绑定为关系模式(将对象</div>
                                </li>
                                <li><a href="/article/2930.htm"
                                       title="学习编程那点事" target="_blank">学习编程那点事</a>
                                    <span class="text-muted">gcq511120594</span>
<a class="tag" taget="_blank" href="/search/%E7%BC%96%E7%A8%8B/1.htm">编程</a><a class="tag" taget="_blank" href="/search/%E4%BA%92%E8%81%94%E7%BD%91/1.htm">互联网</a>
                                    <div>一年前的夏天,我还在纠结要不要改行,要不要去学php?能学到真本事吗?改行能成功吗?太多的问题,我终于不顾一切,下定决心,辞去了工作,来到传说中的帝都。老师给的乘车方式还算有效,很顺利的就到了学校,赶巧了,正好学校搬到了新校区。先安顿了下来,过了个轻松的周末,第一次到帝都,逛逛吧! 
接下来的周一,是我噩梦的开始,学习内容对我这个零基础的人来说,除了勉强完成老师布置的作业外,我已经没有时间和精力去</div>
                                </li>
                                <li><a href="/article/3057.htm"
                                       title="Reverse Linked List II" target="_blank">Reverse Linked List II</a>
                                    <span class="text-muted">hcx2013</span>
<a class="tag" taget="_blank" href="/search/list/1.htm">list</a>
                                    <div>Reverse a linked list from position m to n. Do it in-place and in one-pass. 
For example:Given 1->2->3->4->5->NULL, m = 2 and n = 4, 
return </div>
                                </li>
                                <li><a href="/article/3184.htm"
                                       title="Spring4.1新特性——页面自动化测试框架Spring MVC Test HtmlUnit简介" target="_blank">Spring4.1新特性——页面自动化测试框架Spring MVC Test HtmlUnit简介</a>
                                    <span class="text-muted">jinnianshilongnian</span>
<a class="tag" taget="_blank" href="/search/spring+4.1/1.htm">spring 4.1</a>
                                    <div>目录 
Spring4.1新特性——综述 
Spring4.1新特性——Spring核心部分及其他 
Spring4.1新特性——Spring缓存框架增强 
Spring4.1新特性——异步调用和事件机制的异常处理 
Spring4.1新特性——数据库集成测试脚本初始化 
Spring4.1新特性——Spring MVC增强 
Spring4.1新特性——页面自动化测试框架Spring MVC T</div>
                                </li>
                                <li><a href="/article/3311.htm"
                                       title="Hadoop集群工具distcp" target="_blank">Hadoop集群工具distcp</a>
                                    <span class="text-muted">liyonghui160com</span>

                                    <div>  
  
1. 环境描述 
两个集群:rock 和 stone 
rock无kerberos权限认证,stone有要求认证。 
1. 从rock复制到stone,采用hdfs 
Hadoop distcp -i hdfs://rock-nn:8020/user/cxz/input hdfs://stone-nn:8020/user/cxz/运行在rock端,即源端问题:报版本</div>
                                </li>
                                <li><a href="/article/3438.htm"
                                       title="一个备份MySQL数据库的简单Shell脚本" target="_blank">一个备份MySQL数据库的简单Shell脚本</a>
                                    <span class="text-muted">pda158</span>
<a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a><a class="tag" taget="_blank" href="/search/%E8%84%9A%E6%9C%AC/1.htm">脚本</a>
                                    <div>  主脚本(用于备份mysql数据库):     该Shell脚本可以自动备份 
数据库。只要复制粘贴本脚本到文本编辑器中,输入数据库用户名、密码以及数据库名即可。我备份数据库使用的是mysqlump 命令。后面会对每行脚本命令进行说明。      
1. 分别建立目录“backup”和“oldbackup”     #mkdir /backup     #mkdir /oldbackup    </div>
                                </li>
                                <li><a href="/article/3565.htm"
                                       title="300个涵盖IT各方面的免费资源(中)——设计与编码篇" target="_blank">300个涵盖IT各方面的免费资源(中)——设计与编码篇</a>
                                    <span class="text-muted">shoothao</span>
<a class="tag" taget="_blank" href="/search/IT%E8%B5%84%E6%BA%90/1.htm">IT资源</a><a class="tag" taget="_blank" href="/search/%E5%9B%BE%E6%A0%87%E5%BA%93/1.htm">图标库</a><a class="tag" taget="_blank" href="/search/%E5%9B%BE%E7%89%87%E5%BA%93/1.htm">图片库</a><a class="tag" taget="_blank" href="/search/%E8%89%B2%E5%BD%A9%E6%9D%BF/1.htm">色彩板</a><a class="tag" taget="_blank" href="/search/%E5%AD%97%E4%BD%93/1.htm">字体</a>
                                    <div> 
 A. 免费的设计资源 
 
 
  Freebbble:来自于Dribbble的免费的高质量作品。 
  Dribbble:Dribbble上“免费”的搜索结果——这是巨大的宝藏。 
  Graphic Burger:每个像素点都做得很细的绝佳的设计资源。 
  Pixel Buddha:免费和优质资源的专业社区。 
  Premium Pixels:为那些有创意的人提供免费的素材。 
  </div>
                                </li>
                                <li><a href="/article/3692.htm"
                                       title="thrift总结 - 跨语言服务开发" target="_blank">thrift总结 - 跨语言服务开发</a>
                                    <span class="text-muted">uule</span>
<a class="tag" taget="_blank" href="/search/thrift/1.htm">thrift</a>
                                    <div>官网 
官网JAVA例子 
thrift入门介绍 
IBM-Apache Thrift - 可伸缩的跨语言服务开发框架 
Thrift入门及Java实例演示 
thrift的使用介绍 
  
RPC  
  
POM: 
<dependency>
  <groupId>org.apache.thrift</groupId>
  </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>