一、概述:  

上篇博客《Linux网络服务-LAMP之Php基于Apache的模块实现》介绍了一个由基于Centos6.5_x86-64+Httpd+Php(module)+Mysql构建的一个简单的LAMP环境,其中中我使用Php基于httpd服务的一部分、然后再结合mysql一同工作;也归纳了httpd与Php结合的常见三种方式,以及和mysql它们三者之间是如何通信的,最后实现了一个博客系统的部署。
   现在假设就上篇博文中的拓扑图来讲,我的httpd服务器不足以满足需求,需要多增加一台,以达到平均分摊工作量的目的,于是我就加了一台和之前一样的httpd服务器,可是现在又遇到一个问题他们之间的网页数据存放该如何解决,又如何能达到两台httpd服务器存的数据能一模一样,于是引入了NFS这个概念,首先需要了解,什么是NFS,它是如何工作的?
   NFS,是Network File System的简写,即网络文件系统。NFS会经常用到,用于在网络上共享存储。这样讲,你对NFS可能不太了解,我不妨举一个例子来说明一下NFS是用来做什么的。假如有三台机器A、B、C,它们需要访问同一个目录,目录中都是图片,传统的做法是把这些图片分别放到A、B、C。但是使用NFS只需要放到A上,然后A共享给B和C即可。访问的时候,B和C是通过网络的方式去访问A上的那个目录的。它的配置我将在下面的实验中展开。先看一下图吧:

1.我通过DNS一个域名对应两台服务器做轮询,将两台Web Server发布出去,客户端发起请求后,其中的一台Web服务器对其响应,此时客户端无法察觉是哪台,它也不用去关心哪台;
2.两台Web Server通过在Fastcgi上面的NFS服务将其共享出来的文件系统挂载至本地存放网页数据文件;
3.如果客户端请求的是Php脚本文件,httpd将基于Fastcgi协议与后端的Fastcgi Server进行通信,并将Php脚本文件在Fastcgi内部执行后返回到其中的一台Web Server,最后在通过http/https协议将结果响应给客户端;

4.若客户提交的请求包括了Php脚本文件并且还需要用到数据库,此时Fastcgi则会基于mysql协议与Mysql Server进行通信,工作;

二、实践操作

1.实验准备:

关于httpd以及mysql的编译安装在此处不再演示,如果需要请看上章博文;下面是我的实验环境:

操作系统Centos6.5_x86-64

IP、主机名等规划已在上图表明

2.实验步骤:

==================================安装DNS服务==================================

1.解决依赖关系:

请配置好yum源后执行如下命令:

[root@ns ~]# yum intall -y bind

2.修改主配置文件

首先要到达DNS轮询的方式我们需要在主配置文件中填以下代码:
options {rrset-order {  class IN type A name "www.maoqiu.com" order cyclic;  };
};
rrset-order 支持三个参数:fixed, random, cyclic.
fixed  会将多个A记录按配置文件的顺序固定给出
random 会随机给出
cyclic 会循环给出
#注销以下信息
[root@ns ~]# vim /etc/named.conf
options {
//      listen-on port 53 { 127.0.0.1; };
//      listen-on-v6 port 53 { ::1; };directory       "/var/named";memstatistics-file "/var/named/data/named_mem_stats.txt";allow-query     { any; };recursion yes;
//      dnssec-enable yes;
//      dnssec-validation yes;
//      dnssec-lookaside auto;/* Path to ISC DLV key */bindkeys-file "/etc/named.iscdlv.key";
rrset-order {  class IN type A name "www.maoqiu.com" order cyclic; };  #→新添加的内容managed-keys-directory "/var/named/dynamic";
};
logging {channel default_debug {file "data/named.run";severity dynamic;};
};
zone "." IN {type hint;file "named.ca";
};
include "/etc/named.rfc1912.zones";
//include "/etc/named.root.key";
#继续编辑/etc/named.rfc1912.zons配置文件为其创建区域信息
[root@ns ~]# vim /etc/named.rfc1912.zones
#在文件最后添加以下信息
zone "maoqiu.com" IN {type master;file "maoqiu.com.zone"
};
zone "41.16.172.in-addr.arpa" IN {type master;file "172.16.41.zone"
};
#检查主配置文件语法
[root@ns ~]# named-checkconf#→如果执行结果没有任何输出则表示语法上面对了,但是不能保证我们填写的信息是对的,等下看看,有问题再修改
[root@ns ~]#

3.创建区域文件

[root@ns ~]# cd /var/named/
[root@ns named]# vim maoqiu.com.zone #→创建正向区域配置文件
$TTL 6400
@       IN SOA  ns.maoqiu.com. admin.maoqiu.com (2014032701      ; serial1D      ; refresh1H      ; retry1W      ; expire3H )    ; minimumIN      NS      ns
ns      IN      A       172.16.41.3
www     IN      A       172.16.41.1
www     IN      A       172.16.41.2
[root@ns named]# vim 172.16.41.zone #→创建反向区域配置文件
$TTL 6400
@       IN SOA  ns.maoqiu.com. admin.maoqiu.com (2014032701      ; serial1D      ; refresh1H      ; retry1W      ; expire3H )    ; minimumIN      NS      ns.maoqiu.com.
3       IN      PTR     ns.maoqiu.com.
1       IN      PTR     www.maoqiu.com.
2       IN      PTR    www.maoqiu.com.
[root@ns named]# named-checkzone maoqiu.com /var/named/maoqiu.com.zone  #→检查正向区域配置文件语法
zone maoqiu.com/IN: loaded serial 2014032701
OK
[root@ns named]# named-checkzone 41.16.172.in-addr.arpa  /var/named/172.16.41.zone #→检查反向区域配置文件语法
zone 41.16.172.in-addr.arpa/IN: loaded serial 2014032701
OK
[root@ns named]#

4.修改区域文件属性

[root@ns named]# chmod 640 maoqiu.com.zone 172.16.41.zone
[root@ns named]# chown root:named maoqiu.com.zone 172.16.41.zone

5.修改系统配置文件:/etc/resolv.conf

[root@ns named]# vim /etc/resolv.conf
# Generated by NetworkManager
search maoqiu.com
nameserver 172.16.41.3

5.启动服务并测试:

[root@ns named]# service named start
Starting named:                 [  OK  ]
[root@ns named]# ss -tunl | grep :53
udp    UNCONN     0      0            172.16.41.3:53                    *:*
udp    UNCONN     0      0              127.0.0.1:53                    *:*
tcp    LISTEN     0      3            172.16.41.3:53                    *:*
tcp    LISTEN     0      3              127.0.0.1:53                    *:*
[root@ns named]#

ok.下面我分别在两台Server上面放两个网页再通过客户端访问测试一下,看能否解析

启动服务(注意,虽然主机名一样,但是他们是不同的两台服务器)

[root@www ~]# echo "<h1>web1</h1>" >/usr/local/apache2/htdocs/index.html
[root@www ~]# service httpd2 start
Starting httpd:
[root@www ~]#
[root@www ~]# echo "<h1>web2</h1>" >/usr/local/apache2/htdocs/index.html
[root@www ~]# service httpd2 start
Starting httpd:
[root@www ~]#


ok.看来DNS正常能够做到轮询了

==================================安装NFS服务==================================

1.创建一个20G的分区作为NFS共享出去给web服务器使用的网页数据存放目录

[root@fast ~]# mke2fs -t ext4 /dev/sda3
#创建共享目录,并挂载此分区
[root@fast ~]# mkdir /usr/local/apache2/htdocs
[root@fast ~]# mount /dev/sda3 /webshared/
[root@fast ~]# vim /etc/fstab#→实现开机自动挂载
/dev/sda3               /usr/local/apache2/htdocs           ext4    defaults,acl    0 0

2.编辑NFS服务配置文件:

#查看是否安装了服务器端程序
[root@fast ~]# rpm -qa | grep nfs
nfs-utils-lib-1.1.5-6.el6.x86_64
nfs-utils-1.2.3-39.el6.x86_64  #→服务安装程序
nfs4-acl-tools-0.3.3-6.el6.x86_64
[root@fast ~]# vim /etc/exports
/usr/local/apache2/htdocs      172.16.41.1(rw,async,no_root_squash) 172.16.41.2(rw,async,no_root_squash)

3.重启服务验证

[root@fast ~]# service nfs start
Starting NFS services:                                     [  OK  ]
Starting NFS quotas:                                       [  OK  ]
Starting NFS mountd:                                       [  OK  ]
Starting NFS daemon:                                       [  OK  ]
Starting RPC idmapd:                                       [  OK  ]
[root@fast ~]# showmount -e localhost  #→本地测试没有问题
Export list for localhost:
/webshared 172.16.41.2,172.16.41.1
[root@www ~]# showmount -e 172.16.41.4 #→在nfs客户端(web1)执行,探查fastcgi主机所导出的nfs文件系统
Export list for 172.16.41.4:
/webshared 172.16.41.2,172.16.41.1
[root@www ~]#
[root@www ~]# showmount -e 172.16.41.4 #→在nfs客户端(web2)执行,探查fastcgi主机所导出的nfs文件系统
Export list for 172.16.41.4:
/webshared 172.16.41.2,172.16.41.1
[root@www ~]#

4.客户端(web服务器)尝试将此网络共享挂载至自己的网站根目录

[root@www ~]# mount -t nfs 172.16.41.4:/usr/local/apache2/htdocs /usr/local/apache2/htdocs  #→在web1上挂载
[root@www ~]# mount -t nfs 172.16.41.4:/usr/local/apache2/htdocs /usr/local/apache2/htdocs  #→在web2上挂载

5.编辑/etc/fstab文件,实现开机自动挂载

[root@www ~]# vim /etc/fstab
172.16.41.4:/usr/local/apache2/htdocs /usr/local/apache2/htdocs nfs    defaults        0 0
[root@www ~]# vim /etc/fstab
172.16.41.4:/usr/local/apache2/htdocs /usr/local/apache2/htdocs nfs    defaults        0 0
#注意我是在两台web服务器上做的操作哦,不要认为我做了两遍.

==================================编译安装Php==================================

上篇博文中已经提到了fastcgi的工作模式,在此将Php以一个服务独立安装在一台Server上面(和NFS服务在一台上面)

1.解决依赖关系:

请配置好yum源后执行如下命令:

[root@fast ~]# yum -y groupinstall "Desktop Platform Development"
[root@fast ~]# yum -yinstall bzip2-devel libmcrypt-devel

2、编译安装php-5.4.26

[root@fast ~]# tar xf php-5.4.26.tar.bz2
[root@fast ~]# cd php-5.4.26
[root@fast ~]## ./configure --prefix=/usr/local/php  --with-openssl  --enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml  --enable-sockets --enable-fpm --with-mcrypt  --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-bz2 --with-mysql=mysqlnd --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd
[root@fast ~]# make
[root@fast ~]# make test
[root@fast ~]# make install

说明:如果使用PHP5.3以上版本,为了链接MySQL数据库,可以指定mysqlnd,这样在本机就不需要先安装MySQL或MySQL开发包了。mysqlnd从php 5.3开始可用,可以编译时绑定到它(而不用和具体的MySQL客户端库绑定形成依赖),但从PHP 5.4开始它就是默认设置了。故此处要与数据库链接就需要加上这些选项: --with-mysql=mysqlnd --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd

3.为php提供配置文件:

[root@fast ~]# cp php.ini-production /etc/php.ini

4.配置php-fpm

#为php-fpm提供Sysv init脚本,并将其添加至服务列表:
[root@fast ~]# cp sapi/fpm/init.d.php-fpm  /etc/rc.d/init.d/php-fpm
[root@fast ~]# chmod +x /etc/rc.d/init.d/php-fpm
[root@fast ~]# chkconfig --add php-fpm
[root@fast ~]# chkconfig php-fpm on

5.为php-fpm提供配置文件:

[root@fast ~]# cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf

6.编辑php-fpm的配置文件:

[root@fast ~]# vim /usr/local/php/etc/php-fpm.conf
#配置fpm的相关选项为你所需要的值,并启用pid文件(如下最后一行):
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 2
pm.max_spare_servers = 8
pid = run/php-fpm.pid #→将此行取消注释

7.接下来就可以启动php-fpm了:

[root@fast ~]# service php-fpm start
Starting php-fpm  done
[root@fast ~]#
#使用如下命令来验正(如果此命令输出有中几个php-fpm进程就说明启动成功了):
[root@fast ~]# ps -aux | grep php
#默认情况下,fpm监听在127.0.0.1的9000端口,也可以使用如下命令验正其是否已经监听在相应的套接字。
# netstat -tnlp | grep php-fpm
tcp        0      0 127.0.0.1:9000              0.0.0.0:*                   LISTEN      689/php-fpm
#php-fpm是为外面的httpd服务的,故我们需要将它的监听端口改为172.16.41.4
[root@fast ~]# vim /usr/local/php/etc/php-fpm.conf
listen= 172.16.41.4:9000

=============================配置httpd-2.4.9=============================

(由于两台web服务器提供的服务一样,它的配置也一样,所以在此我就只把一台的配置贴出来,另外一台配置一样)

1、启用httpd的相关模块

在Apache httpd 2.4以后已经专门有一个模块针对FastCGI的实现,此模块为mod_proxy_fcgi.so,它其实是作为mod_proxy.so模块的扩充,因此,这两个模块都要加载

[root@www ~]# vim /etc/httpd2/httpd.conf
LoadModule proxy_module modules/mod_proxy.so   #→启用
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so  #→启用

2、关闭中心主机、配置虚拟主机支持使用fcgi

[root@www ~]# vim /etc/httpd2/httpd.conf
#DocumentRoot "/usr/local/apache2/htdocs"  将此行注释掉
[root@www ~]# vim /etc/httpd2/extra/httpd-vhosts.conf
<VirtualHost *:80>DocumentRoot "/usr/local/apache2/htdocs"ServerName www.maoqiu.comErrorLog "logs/discuz-error_log"CustomLog "logs/discuz-access_log" common</Directory "/usr/local/apache/htdocs">Options Indexes FollowSymLinksAllowOverride NoneRequire all granted</Directory>ProxyRequests OffProxyPassMatch ^/(.*\.php)$ fcgi://172.16.41.4:9000/usr/local/apache2/htdocs/$1
<IfModule dir_module>DirectoryIndex  index.php index.html
</IfModule>
</VirtualHost>

说明:

ProxyRequests Off:关闭正向代理

ProxyPassMatch:把以.php结尾的文件请求发送到php-fpm进程,php-fpm至少需要知道运行的目录和URI,所以这里直接在fcgi://172.16.41.4:9000后指明了这两个参数,其它的参数的传递已经被mod_proxy_fcgi.so进行了封装,不需要手动指定。

3、编辑apache配置文件httpd.conf,让apache能识别php格式的页面,并支持php格式的主页

[root@www ~]# vim /etc/httpd2/httpd.conf
#添加如下二行AddType application/x-httpd-php  .phpAddType application/x-httpd-php-source  .phps
#定位至DirectoryIndex index.html修改为:DirectoryIndex  index.php  index.html

==========================测试NFS、php、httpd==========================

1.在fastcgi服务器(NFS服务器)上添加php测试页面文件

[root@fast ~]# vim /usr/local/apache2/htdocs/index.php
<?phpphpinfo();
?>

2.客户端测试

OK!可以看出NFS服务已经生效了,下面我在测试一下数据库是否能连上,还是将下面的内容写到测试文件里

[root@fast ~]# vim /usr/local/apache2/htdocs/index.php
<?php
$link = mysql_connect('172.16.41.5','guomaoqiu','guo.150019');if ($link)echo "Connect to Mysql server success!";elseecho "Connect to Mysql server failure!";mysql_close();phpinfo();
?>

注意,此时在数据库要创建远程用户,例如:"guomaoqiu"

[root@mysql ~]# mysql -uroot -pguo.150019
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.5.33-log MySQL Community Server (GPL)
Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> GRANT ALL PRIVILEGES ON *.* TO 'guomaoqiu'@'%' IDENTIFIED BY 'guo.150019';
Query OK, 0 rows affected (0.03 sec)
mysql> select host,user,password from user;
+------------------+-----------+-------------------------------------------+
| host             | user      | password                                  |
+------------------+-----------+-------------------------------------------+
| localhost        | root      | *736C3B5499F163A84CCB2C0F176F3ABC93410FB5 |
| mysql.maoqiu.com | root      | *736C3B5499F163A84CCB2C0F176F3ABC93410FB5 |
| 127.0.0.1        | root      | *736C3B5499F163A84CCB2C0F176F3ABC93410FB5 |
| %                | guomaoqiu | *736C3B5499F163A84CCB2C0F176F3ABC93410FB5 |
| %                | worduser  | *736C3B5499F163A84CCB2C0F176F3ABC93410FB5 |
+------------------+-----------+-------------------------------------------+
5 rows in set (0.00 sec)
mysql> FLUSH PRIVILEGES ;
Query OK, 0 rows affected (0.07 sec)
mysql> quit

在客户端输入http://www.maoqiu.com

ok,链接数据库成功,最后一步就是搭建一个论坛看一下是否能同步数据:

==================================安装phpwind==================================

1.解压下载到的phpwind_v9.0_utf8.zip论坛软件包

[root@fast ~]# unzip phpwind_v9.0_utf8.zip
[root@fast ~]# cd phpwind_v9.0_utf8
[root@fast phpwind_v9.0_utf8]# cd upload/
#将这个包里面的文件全部移动到nfs服务器的/usr/local/apache2/htdocs目录中
[root@fast upload]# mv * /usr/local/apache2/htdocs/
mv: overwrite `/usr/local/apache2/htdocs/index.php'? y
#因为这个软件包里面有index.php这个文件,所以我们直接覆盖之前的那个测试文件
[root@fast upload]#

2.在任意一台web服务器上面进行安装(我这里使用http://172.16.41.1去装)

点击"接受"

告诉我刚刚解压的那些文件权限需要修改一下

[root@fast htdocs]# chmod -R a+rw p_w_upload conf data html src themes windid

#客户端再次测试

权限已经改过来了,现在继续...

现在需要需要在服务器端创建一个论坛的数据库,其中还需要创建这个论坛数据库的管理员

[root@mysql ~]# mysql -uroot -pguo.150019
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.5.33-log MySQL Community Server (GPL)
Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> CREATE DATABASE winddb;
Query OK, 1 row affected (0.05 sec)
mysql> GRANT ALL  PRIVILEGES  ON winddb.* TO 'winduser'@'%'  IDENTIFIED  by 'guo.150019';
Query OK, 0 rows affected (0.03 sec)
mysql> FLUSH PRIVILEGES ;
Query OK, 0 rows affected (0.07 sec)
mysql>

回到安装界面,将这些信息填入后完成安装

======================测试两台服务器是否能同步数据======================

1.在172.16.41.1这台web服务器上发帖

2.在172.16.41.2这台web服务器上登录

ok,看来我的两台服务器现在已经在用NFS网络共享文件系统了,那我再用域名登录一下呢

ok,看来我的两台服务器现在已经在用NFS网络共享文件系统了,那我再用域名登录一下呢

好的,域名也没有问题!

至此,该试验结束...

转载于:https://blog.51cto.com/maoqiu/1386643

Linux网络服务-LAMP之基于NFS+Fastcgi的LAMP搭建相关推荐

  1. Linux网络服务基础

    Linux网络服务基础<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /& ...

  2. Linux网络服务-Web Service之【apache的功能、安装、配置文件介绍以及实验实例】(三)...

    上两张博文: < Linux网络服务-Web Service之[HTTP协议简介](一) > <Linux网络服务-Web Service之[Apache-Prefork.Worke ...

  3. Linux网络服务中,bond网络模式

    Linux网络服务中,bond网络模式 bond网络模式原理 多块网卡虚拟成一块网卡,实现冗余,多张网卡对外显示一张,具有同一个IP,网络配置都会使用Bonding技术做网口硬件层的冗余,防止单个网口 ...

  4. Linux网络服务-Web Service之【HTTP协议简介】(一)

    一.什么是HTTP? 超文本传输协议(英文:HyperText Transfer Protocol,缩写:HTTP)是互联网上应用最为广泛的一种网络协议.设计HTTP最初的目的是为了提供一种发布和接收 ...

  5. Linux网络服务_邮件服务器-Redhat Enterprise 5.9

    Linux网络服务_邮件服务器-Redhat Enterprise 5.9 案例环境: 邮件服务器:mail.tarena.com192.168.1.100 邮件域:@tarena.com 邮件账号: ...

  6. Linux网络服务之DNS(1)

    Linux网络服务之主从DNS 实验要求: 1.搭建主DNS服务器,www.zhy.com解析成192.168.1.11,zhy.com解析等同于www.zhy.com,bbs.zhy.com解析成1 ...

  7. Linux网络服务之DNS(2)

    Linux网络服务之DNS(2) 实验要求: 1.搭建父DNS(zhy.com)服务器,www.zhy.com  -->   192.168.1.253 2.搭建子DNS(bj.zhy.com) ...

  8. 1、linux网络服务实验 用PuTTY连接Linux

    这个是大三下学期的Linux网络服务配置详解时,感觉老师上得简单,就整理下,岭南师范学院师弟妹有福,如果是蔡老师交的话,可以拿来预习,复习. 一.用PuTTY连接Linux ①.装有redhat系统的 ...

  9. Linux网络服务——DHCP

    网络配置 [前言] 一.DHCP服务 1.1 什么是DHCP服务呢? 1.2 使用DHCP的优点 1.3 DHCP的分配方式 二.DHCP工作过程/原理 三.使用 DHCP动态配置主机地址 3.1DH ...

  10. Linux网络服务之DNS域名解析服务

    Linux网络服务之DNS域名解析服务 DNS简介 DNS名词介绍 DNS系统的作用 DNS分布式数据结构 DNS系统类型 DNS的查询方式(递归查询和迭代查询) 本地主机映射文件hosts 域名的解 ...

最新文章

  1. 精度首超ResNet,港科大和CMU提出史上最强二值化网络ReActNet
  2. python的就业方向和前景-2020年Python就业方向、就业前景分析
  3. 计算机毕业设计制作模仿网站的期末作业通过神器——各种扒站方法(网站,软件)
  4. 你真的了解分层架构吗?——写给被PetShop毒害的朋友们 (转)
  5. java代码 计算器_java代码---------计算器实现
  6. java正则表达 w,超强变态的正则(\w)((?=\1\1\1)(\1))+讲解
  7. SQL Server 大数据群集 部署(二)工具篇
  8. error C2065等:******未声明的标识符错误
  9. 解决centos7 ssh连接慢的问题
  10. 虚拟机python pip安装不了_给在Linux虚拟机里运行的FreeBSD 12安装pip Python包管理器...
  11. CSS实现字体镂空效果、阴影效果、字体阴影效果
  12. C语言生成负指数分布,泊松分布与负指数分布的关系
  13. python梯形公式面积_算法(一)梯形近似法求曲线面积
  14. 什么是FOUC?如何避免FOUC?
  15. 5-TAMRA标记LYS赖氨酸,5-TAMRA-Lysine结构式及光谱图分享
  16. 54、 按之字形顺序打印二叉树
  17. android基础--canvas绘图
  18. 计算机基础及Java语法
  19. java基础练习实例_java基础练习题(se)
  20. 【PTA】解密英文藏头诗

热门文章

  1. java 文件编码_Java获取文件编码
  2. layui离线文档2.2.5
  3. eps图片怎样用html显示,eps图片用什么软件打开
  4. npm ERR! y@1.0.0 dev: `webpack-dev-server --inline --progress --config build/webpack.dev.conf.js`
  5. 【VS】Installer Projects生成英文安装包
  6. 库论计量计算电池容量
  7. 广告JS代码效果大全
  8. 全志R311芯片规格书-datasheet资料分享
  9. OpenGL编程指南 示例笔记(2)--独立地移动光源
  10. 【软件自动化测试】基于自设网站的软件测试与分析