apache上传文件配置
A. 怎么用Apache搭建一个服务器供查看文件或者上传文件
Apache 相当于windows 中的IIS , 我个人认为你要想实现你的功能还想用Apache实现必须通过编程手段来完成。如果不用Apache,你可以选ftp服务器来完成或者相关的FTP软件。
B. 如何把文件或网站上传到apache服务器
把网站安装程序用cutftp上传到服务器,上传的时候需要你输入远端服务器ftp帐号密码,连接成功后,直接将左边本地的文件拖到右边的窗口中就是上传了,上传完后,如果你的php程序有安装功能,就直接根据mysql远端服务器数据库帐号密码进行安装,安装完进后台导入本地的mysql数据库备份,全部完成.
C. apache配置的问
确保 php5ts.dll 可用。
将此文件放到 Windows 路径中。最好的位置是Windows 的 system2 目录。即将 php5ts.dll 文件拷贝到c:\windows\system32目录下。
2、配置php.ini。
压缩包中包括两个 ini 文件,php.ini-dist 和 php.ini-recommended。建议使用php.ini-recommended。将选择的 ini 文件拷贝到 c:\windows 目录下并重命名为 php.ini。
//等后面修改了配置再复制
三、配置Apache2.2.3
打开Apache2.2.3的 配置文件: D:/PHP/Apache/conf/httpd.conf
查找:
DocumentRoot “D:/PHP/Apache/htdocs”
将路径修改成你想要的主页地址,如本文:
DocumentRoot “D:/PHP/WWW”
查找:
Directory “D:/PHP/Apache/htdocs”
修改为:
Directory “D:/PHP/WWW”
查找:
DirectoryIndex index.html
添加你想要的默认脚本名称,用空格分隔,注意前后有优先顺序,比如:
DirectoryIndex index.PHP index.html index.htm
在文档的最后加入以下字段:
AddType application/x-httpd-PHP .PHP
AddType application/x-httpd-PHP-source .phps
PHPIniDir "D:\PHP\PHP\"
# 调用 PHP 5 模块
LoadMole php5_mole "D:\PHP\PHP\php5apache2_2.dll"
也可以换成下面字段:
AddType application/x-httpd-PHP .PHP
AddType application/x-httpd-PHP-source .phps
PHPIniDir "G:\PHP\"
# 调用 PHP 5 模块
LoadFile G:/php/php5ts.dll
LoadFile G:/php/libmysql.dll
LoadMole php5_mole "G:\PHP\php5apache2_2.dll"
到此,Apache2.2.3 已经可以支持 PHP5.2.0 了.
重新启动Apache2.2.3,如果不出错的话(Apache正常重启的话),双击Apache状态栏的图标
四、安装 MySQL5.1.12bate/MySQL5.0.27
------------------------------
解压缩mysql-noinstall-5.1.12-beta-win32.zip(MySQL5.1.12bate版本)
或 mysql-noinstall-5.0.27-win32.zip(MySQL5.0.27版本 ) 到D:\PHP\MySQL 中
下来安装 MySQL 服务
开始->运行->cmd->回车
然后进入 D:\PHP\MySQL\bin 目录:
>cd D:\PHP\MySQL\bin 回车
然后运行 MySQL 服务安装脚本:
>mysqld-nt -install
显示 MySQL service installed successfully,表示安装成功……
然后配置 MySQL
打开D:\PHP\MySQL文件夹,里面有很多个配置不同的ini 文件,我们选择my-small.ini这个文件,复制一份重命名为 my.ini用文本编辑器打开它:
查找:
[mysqld]
在下方加入以下字符行:
#MySQL 安装目录
basedir=D:/PHP/MySQL
#MySQL 默认数据目录
datadir=D:/PHP/MySQL/data
# 默认字符集设置为 UTF8
default-character-set=utf8
# 默认储存引擎
default-storage-engine=MyISAM
再在文档最下方加入:
[WinMySQLAdmin]
Server=D:/PHP/MySQL/bin/mysqld-nt.exe
MySQL 配置完成
下面可以启动试试,打开 cmd.exe
输入:net start MySQL
若显示‘MySQL服务已经启动成功’ 则表示MySQL服务已经启动成功’否则就是出错啦!
服务器启动了…… 我们就可以登录试试了……
>cd D:\PHP\MySQL\bin 回车
接着登陆
>MySQL -u root -p
由于 root 初始状态无密码,提示 Enter Password 时直接回车即可
然后命令行进入 MySQL Shell 状态即表示“登录”成功……
你可以 exit 退出!
到此MySQL 的安装工作完毕!
但这时的MySQL是独立的,还没有与PHP关联!
五、MySQL与PHP的关联
打开D:\PHP\PHP文件夹, 将PHP.ini-recommend 拷贝一份并更名为 PHP.ini 然后用文本编辑器打开
修改错误报告级别,运行一些书写不规范的程序,你会发现满屏的‘错误’
查找:
error_reporting = E_ALL
修改为:
error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT由于是本地调试,我当然希望错误被输出供我调试……
查找:
display_errors = Off
修改为:
display_errors = On
对于本地开发者,记录错误似乎没有必要……
查找:
log_errors = On
修改为:
log_errors = Off
设置扩展库的路径是很必要的……
查找:
extension_dir = “./”
修改为:
extension_dir = “D:/PHP/PHP/ext”
PHP 5 默认是不开启对 MySQL 的支持的……
查找:
;extension=PHP_MySQL.dll
去掉前面的分号:
extension=PHP_MySQL.dll
查找:
extension=PHP_MySQL.dll
在下方加入:
extension=PHP_mysqli.dll
查找:
;extension=PHP_gd2.dll
去掉前面的分号:
extension=PHP_gd2.dll
我们还希望对一些较常用的库进行调用,比如 PHP_mbstring.dll 、 PHP_curl.dll 、 PHP_sockets.dll 、 PHP_xmlrpc.dll 等等, 开启方法同上.
(这里仅启用了常用扩展,其它的扩展请自行根据需要定夺)
查找:
;session.save_path = “/tmp”
修改为一个存在的路径里或者到发布目录下建立一个 tmp 目录
这里我们选用前一种方法, 先建立这样一个目录 D:\php\Session 然后修改为:
session.save_path = “D:/php/Session”
到这里基本就设置完毕了! PHP 也能正常支持 MySQL 了!
///////////////
特别注意:将修改好的php.ini文件给系统的windows目录拷贝一份!不然会出错!
///////////////
另外,从php5.10开始,php中加入了时区的设置,在php中显示的时间都是格林威治标准时间,这就造成了我们中国的用户会差八个小时的问题!
相关设置是修改php.ini中的 date.timezone 参数:
[Date]
; Defines the default timezone used by the date functions
;date.timezone =
默认是关闭的,只需把注释去掉,改为即可
[Date]
; Defines the default timezone used by the date functions
date.timezone = PRC
其中PRC是“中华人民共和国”!
如果修改的D:\PHP\PHP\php.ini 还需要将修改好的php.ini拷贝一份到系统的Windows目录! 切记!
六、安装phpMyAdmin2.9.1.1
解压缩下载到的phpMyAdmin-2.9.1.1-all-languages.zip到D:\PHP\WWW\phpmyadmin文件夹中
打开D:\PHP\WWW\phpMyAdmin\libraries文件夹,然后用文本编辑器打开config.default.php这个文件,
查找 $cfg['PmaAbsoluteUri']
修改为你将上传到空间的phpMyAdmin的网址
如:$cfg['PmaAbsoluteUri'] = '';
phpMyAdmin2.9.1.1安装完毕!这样就可以啦!
这时打开浏览器,在地址栏中键入“”
如果出现错误的话,请将D:\PHP\php下的libmysql.dll文件复制到系统windows下的system32文件夹中!重启Apache2.2.3服务器!
七、其他细节
进入phpMyAdmin后会有警告:
!您配置文件中的设定与 MySQL 默认权限账户对应(没有密码的 root)。您的 MySQL 服务器使用默认值运行当然没有问题,不过这样的话,被入侵的可能性会很大,您真的应该先补上这个安全漏洞。
解决方法:
进入phpMyAdmin后点击"权限"
删除“任意”用户,选上删除与用户名称相同的数据库。
修改root用户的密码
打开G:\www\phpMyAdmin\libraries\config.default.php
查找:
解决方法:
打开php.ini文件,
查找:
;extension=php_mbstring.dll
去掉前面的分号:
extension=php_mbstring.dll
保存后复制一份到C:\windows下,重启apache
D. apache 如何http上传文件
java代码
StringtargetUrl="http://localhost:8080/Test";
PostMethodfilePost=newPostMethod(targetUrl){//这个用来中文乱码
publicStringgetRequestCharSet(){
return"UTF-8";//
}
};
try{
HttpClientclient=newHttpClient();
Filefile=newFile("c:/新闻.xml");
Part[]parts=newPart[]{newCustomFilePart(file.getName(),file)};
filePost.setRequestEntity(newMultipartRequestEntity(parts,filePost.getParams()));
intstatuscode=client.executeMethod(filePost);
if(statuscode==HttpStatus.SC_OK){
System.out.println("添加文件成功");
}else{
System.out.println("添加文件失败");
}
}catch(Exceptionex){
ex.printStackTrace();
}
importjava.io.File;
importjava.io.FileNotFoundException;
importjava.io.IOException;
importjava.io.OutputStream;
importorg.apache.commons.httpclient.methods.multipart.FilePart;
importorg.apache.commons.httpclient.util.EncodingUtil;
/**
*解决中文文件名乱码
*/
{
publicCustomFilePart(Stringfilename,Filefile)
throwsFileNotFoundException{
super(filename,file);
}
(OutputStreamout)throwsIOException{
super.sendDispositionHeader(out);
Stringfilename=getSource().getFileName();
if(filename!=null){
out.write(EncodingUtil.getAsciiBytes(FILE_NAME));
out.write(QUOTE_BYTES);
out.write(EncodingUtil.getBytes(filename,"utf-8"));
out.write(QUOTE_BYTES);
}
}
}
而服务端使用apache的commonfileupload:
Filetempfile=newFile(System.getProperty("java.io.tmpdir"));//采用系统临时文件目录
=newDiskFileItemFactory();
diskFileItemFactory.setSizeThreshold(4096);//设置缓冲区大小,这里是4kb
diskFileItemFactory.setRepository(tempfile);//设置缓冲区目录
ServletFileUploadfu=newServletFileUpload(diskFileItemFactory);
fu.setSizeMax(4194304);//限制文件大小最大为4M
ListfileItems=fu.parseRequest(request);
Iteratori=fileItems.iterator();
while(i.hasNext()){
FileItemfi=(FileItem)i.next();
StringfileName=fi.getName();
if(fileName!=null){
FilefullFile=newFile(fi.getName());
FilesavedFile=newFile(uploadPath,fullFile.getName());
fi.write(savedFile);
}
}
System.out.println("uploadsucceed");
E. apache代理转发SFTP请求的httpd.conf 配置
Apache如何配置URL转发
发布时间:2014-04-04 来源:服务器之家
1、httpd-2.2.15-win32-x86-no_ssl.msi
配置
打开apache安装目录的conf文件夹下的httpd.conf
1、将以下两行前的注释字符 # 去掉:
#LoadMole proxy_mole moles/mod_proxy.so
#LoadMole proxy_http_mole moles/mod_proxy_http.so
2、在httpd.conf 文件的最后加上转发规则
例如:
ProxyPass /cas http://192.168.0.206:9090/ca
ProxyPassReverse /cas http://192.168.0.206:9090/ca
将/cas开头的请求转发到206服务器9090端口的cas上
依次类推,其他的转发也是通过这种方式设置,如:
ProxyPass /cas http://192.168.0.206:9090/ca
ProxyPassReverse /cas http://192.168.0.206:9090/ca
ProxyPass /aip http://192.168.0.206:9090/ai
ProxyPassReverse /aip http://192.168.0.206:9090/ai
ProxyPass /eagle http://192.168.0.206:8080/eagle
ProxyPassReverse /eagle http://192.168.0.206:8080/eagle
ProxyPass /idap http://192.168.0.155:6060/ida
ProxyPassReverse /idap http://192.168.0.155:6060/ida
#bbs不转发,采用apache处理
ProxyPass /bbs !
ProxyPassReverse /bbs !
备注:在于AIP结合中子系统配置的路径不能写全路径比如:http://192.168.0.206:9090/eagle,要填成/eagle;写全路径浏览器会直接去访问设置的地址,不会在通过apache的转发。其他的相关配置项也需做相应调整。
F. 怎么用Apache搭建一个可以文件上传下载的web网站
很简单如果你有域名就绑定没有直接使用IP进行访问安装php环境就可以了帮助直接访问文件名字就可以下载的
G. 如何设置apache+php的上传文件大小上限
完整修改步骤:
1.修改Apache设置
在httpd.conf 加一句(随便加哪都行) LimitRequestBody 10240000(这个数字多大都可以,我设的上限是10M)
2.修改PHP设置
相关的设置有如下几个,但是我只改了其中的post_max_size
(下面的内容是直接粘第一篇文章里的)
打开php.ini, Ctrl+F 找到下面的项并修改之。下面以上传100M为例。
file_uploads = on ;是否允许通过HTTP上传文件的开关。默认为ON即是开
upload_tmp_dir ;文件上传至服务器上存储临时文件的地方,如果没指定就会用系统默认的临时文件夹
upload_max_filesize = 100m ;望文生意,即允许上传文件大小的最大值。默认为2M
post_max_size = 100M ;指通过表单POST给PHP的所能接收的最大值,包括表单里的所有值。默认为8M
一般地,设置好上述四个参数后,上传<=8M的文件是不成问题,在网络正常的情况下。
但如果要上传>8M的大体积文件,只设置上述四项还一定能行的通。除非你的网络真有100M/S的上传高速,否则你还得关心关心下面的参数:
max_execution_time = 600 ;每个PHP页面运行的最大时间值(秒),默认30秒
max_input_time = 600 ;每个PHP页面接收数据所需的最大时间,默认60秒
memory_limit = 128M ;每个PHP页面所吃掉的最大内存,默认8M
希望可以采纳,谢谢。
H. apache httpd 支持文件上传么
1、第一步安装php相关环境,包括php cli,workerman运行在php cli下,如果已经安装好php环境则不用安装;php-process(一般centos系统下需要安装)为进程控制相关扩展,包括posix和pcntl;git是一款免费、开源的分布式版本控制系统,用于下载或者更新workerman源代码(如果手动下载zip文件则可以不用安装git,并跳过安装步骤中的第4步);gcc、php-devel、php-pear、libevent-devel用于安装php的libevent扩展,如果不想安装libevent则可以省略并跳过安装步骤中的第2和第3步;
2、第二步和第三步通过pecl安装libevent扩展,并配置扩展的ini文件(安装libevent扩展不是必须的,libevent扩展可以让php使用更高级的事件库,在并发量很高时发挥作用,如果并发量比较低,例如5000并发,可以不用安装)
3、第四步是通过git下载workerman的应用程序,这里默认下载的是workerman的Demo程序,如果下载workerman的其他应用程序可以修改地址,例如下载workerman-chat则命令为git clone https://github.com/walkor/workerman-chat。如果手动下载过了想要的workerman应用程序,则此步骤可以省略。
I. 在Linux环境下,APACHE和PHP配置文件怎么设置(RPM包)
LAMP配置与应用 LAMP(Linux+Apache+Mysql+Php)配置:
Fedora 5已默认安装了php,可以使用rmp -q php查看其版本号
安装mysql客户端mysql(与perl-DBI包有依赖关系,要先安装)
安装mysql服务端mysql-server(与perl-DBD包有依赖关系,要先安装)
安装php支持mysql的模块php-mysql(与php-pdo包有依赖关系,要先安装)
Mysql的web管理工具phpMyAdmin
安装
下载并解压phpMyAdmin的包到某个web目录(或为phpMyadmin建立虚拟主机,将该包解压到虚拟主机目录)
#tar -xzvf phpMyAdmin-2.10.0.2-all-languages.tar.gz
执行下列命令:
#cd phpMyAdmin
#mkdir config #建立一个用来保存配置的目录
#chmod o+rw config #更改该目录的权限为属主可读写
#cp config.sample.inc.php config/ #将当前目录下的config.sample.inc.php复制到config
#chmod o+w config/config.inc.php # 使该文件的属主具有写权限
运行安装向导页面
在浏览器中打开scripts/setup.php,按照向导页面添入相关信息,最后单击“保存”,则所做的配置保存在config/config.inc.php中。(注:如果config子目录没有建立,或没有对该文件的写权限的话,则会出现"Cannot load or save configuration."的提示,这种情况下应选择“DownLoad”下载到本地,再上传到phpMyAdmin的主目录下 ),主要有以下样目需要添写:
User for config auth__________________
Password for config auth__________________
phpMyAdmin control user____________________
phpMyAdmin control user password______________________
phpMyAdmin database for advanced features__________________
配置成功保存的话,执行下面命令
#mv config/config.inc.php . #将配置文件移动到phpMyAdmin的主目录
#chmod o-r config.inc.php #为安全起见,移去该文件的读写权限
在浏览器中打开phpMyAdmin对应的站点
phpbb应用
注:以下头3步有关mysql的操作也可以在webmin中完成.
mysql的账号管理
1) 要设置root用户的密码为123456,则在系统提示符下执行下面的命令:
#mysqladmin -u root -p password "123456"
2) 要在mysql命令行客户端,设置root用户的密码为123456,则需执行以下命令:
mysql> use mysql;
mysql> update user set Password=password('123456') where User='root';
mysql> flush privileges;
3) 如果要新增用户u1,给他授予对数据库bb中所有表(*)的所有权限(all),密码设为888888,则在mysql提示符下:
mysql> grant all on bb.* to 'u1'@'localhost' identified by '888888';
如果root用户有密码,则进入mysql客户端需用下面的命令:#mysql -u root -p
新建phpbb论坛所要用到的数据库:mysql>create database XXX;
为phpbb所在目录新建虚拟主机
在浏览器中访问该虚拟主机,以安装phpbb
注意:在安装结尾,选择下载配置文件,自行上传.然后删除install,contrib两个目录
php配置实例
1.使用Apache配置基本的web站点,使客户端浏览简体中文网页能正常显示、新增支持的主页文件index.htm index.php default.htm default.html。最后要能在其它计算机上通过域名访问,比如www.yyy.net03.org。
2.在web站点下实现虚拟目录,即web站点的子目录,该子目录与主目录不一定是上下目录关系.同时,允许该目录有目录列表功能(即在没有找到主文件件的时候,显示当前目录下的列表).
3.实现Linux用户个人站点.
4.配置多个基于名称的虚拟主机,比如www1.yyy.net03.org,www2.yyy.net03.org。最后要能在其它计算机上通过域名访问。
5.配置多个基于IP的虚拟主机,比如lit.yyy.net03.org,mil.yyy.net03.org。最后要能在其它计算机上通过域名访问。
6.配置LAMP环境
7.配置phpbb论坛,并使该论坛可以通过形如bbs.yyy.net03.org的形式访问。
(*)8. 删除系统原有Apache、php、Mysql项目,使用源文件安装最新版本的Apache、php、Mysql
利用源代码安装LAMP
首先要在相关网站获取Apache、Mysql、Php的源码包,一般扩展名为xxx.tar.gz.
删除系统原有Apache、php、Mysql项目,可能要用到下面的命令
# rpm -e xxx
# rpm -e xxx nodeps #不考虑依赖关系而删除xxx包
# rpm -e xxx yyy zzz #删除xxx,yyy,zzz包
如果无法删除一个RPM包,可以使用以下两步:
#rpm -f /var/lib/rpm
#rpm --rebuilddb
或:
#rpm -ivh --justdb xxx
#rpm -e xxx
1. 安装Apache(httpd-2.2.8)
# ./configure --enable-so
# make
# make install
# /usr/local/apache2/bin/apachectl start
2. 安装Mysql(Mysql-5.0.22)
1) 建立用户及组,如果在/etc/passwd中已有该用户,则下列操作可以省略
shell> groupadd mysql
shell> useradd -g mysql mysql
2) 解压、配置编译安装
shell> gunzip < mysql-VERSION.tar.gz | tar -xvf -
shell> cd mysql-VERSION
shell> ./configure --prefix=/usr/local/mysql #配置(指定mysql安装路径)
shell> make #编译
shell> make install #安装
3) 配置mysql
shell> cp support-files/my-medium.cnf /etc/my.cnf #建立mysql配置文件
shell> cp support-files/mysql.server /etc/init.d/ #建立mysql控制脚本
shell> cd /usr/local/mysql
shell> bin/mysql_install_db --user=mysql #建立mysql系统数据库
shell> chown -R root . #更改当前目录及子目录所有者
shell> chown -R mysql var #更改var目录及子目录所有者
shell> chgrp -R mysql . #更改当前目录及子目录所属组
4) 启动mysql
shell> bin/mysqld_safe --user=mysql & #以后台模式运行mysqld服务
shell> chkconfig --list | less #查看服务列表
shell> chkconfig --add mysql.server #将mysql.server添加到服务列表
shell> chkconfig --list | less #查看服务列表
shell> service mysql.server restart
shell> /usr/local/mysql/bin/mysqladmin -u root -p password '888888' #更改mysql管理用户root的密码
3. 安装php(php5 on Apache 2 Shared Mole Version)
1) tar -zxvf php-NN.tar
2) cd php-NN
3) ./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql=/usr/local/mysql
4) make
5) make install
6) 建立php配置文件php.ini
# cp php.ini-dist /usr/local/lib/php.ini
7) 编辑http配置文件 httpd.conf 使之加载PHP模块
对于 PHP 4,添加下句:
LoadMole php4_mole moles/libphp4.so
对于 PHP 5,添加下句:
LoadMole php5_mole moles/libphp5.so
8) 编辑http配置文件 httpd.conf,使之能解析扩展名为php的文件
AddType application/x-httpd-php .php .phtml
9) 编辑http配置文件 httpd.conf,修改主页文件
DirectoryIndex index.php index.htm index.html
10) 重启httpd服务
# /usr/local/apache2/bin/apachectl start
或
# /usr/local/apache/bin/apachectl -k start
11) 编辑index.php文件,并在浏览器中访问该站点,如果出现关于php的当前配置信息(其中有mysql的配置项),表示LAMP安装成功。
$vi index.php
<?php
phpinfo()
?>
J. 如何用apache ab进行文件上传压力测试
Apache附带的ab工具(本机使用的PHP环境是WAMP集成环境,ab工具位于D:wampinapacheApache2.2.21in)非常容易使用,ab可以直接在Web服务器本地发起测试请求,这至关重要,因为有些时候我们需要测试的仅仅是服务器的处理性能,并不想掺杂着网络传输时间的影响。ab进行一切测试的本质都是基于HTTP的,所以可以说ab对于Web服务器软件的黑盒性能测试,获得的一切数据和计算结果,都是可以通过HTTP来解释的。
测试本机是否正确安装ab工具,在power shell想将当前目录定位到bin,输入 .ab –V 命令,如果安装正确,则会将其版本信息打印出来。
PSD:wampinapacheApache2.2.21in>.ab-V
ThisisApacheBench,Version2.3<$Revision:655654$>
Copyright1996AdamTwiss,ZeusTechnologyLtd,http://www.zeustech
,<ahref="http://www.apache.org/">http://www.apache.org/</a>
好了,一切就绪,下面提供一个压力测试的实例:
输入命令 PS
D:wampinapacheApache2.2.21in>.ab-n1000-c10http://localhost/index.php
ThisisApacheBench,Version2.3<$Revision:655654$>
Copyright1996AdamTwiss,ZeusTechnologyLtd,http://www.zeustech.net/
,http://www.apache.org/
Benchmarkinglocalhost(bepatient)
Completed100requests
Completed200requests
Completed300requests
Completed400requests
Completed500requests
Completed600requests
Completed700requests
Completed800requests
Completed900requests
Completed1000requests
Finished1000requests
ServerSoftware:Apache/2.2.21
ServerHostname:localhost
ServerPort:80
DocumentPath:/index.php
DocumentLength:211bytes
ConcurrencyLevel:10
Timetakenfortests:0.496seconds
Completerequests:1000
Failedrequests:0
Writeerrors:0
Non-2xxresponses:1000
Totaltransferred:400000bytes
HTMLtransferred:211000bytes
Requestspersecond:2015.93[#/sec](mean)
Timeperrequest:4.960[ms](mean)
Timeperrequest:0.496[ms](mean,acrossallconcurrentrequests)
Transferrate:787.47[Kbytes/sec]received
ConnectionTimes(ms)
minmean[+/-sd]medianmax
Connect:000.401
Processing:251.1412
Waiting:241.1412
Total:251.1512
(ms)
50%5
66%5
75%5
80%6
90%6
95%7
98%8
99%9
100%12(longestrequest)
下面开始解析这条命令语句:启动ab,并出入三个参数(PS D:wampinapacheApache2.2.21in> .ab -n1000 -c10 http://localhost/index.php )
-n1000 表示请求总数为1000
-c10 表示并发用户数为10
http://localhost/index.php 表示这写请求的目标URL
测试结果也一目了然,测试出的吞吐率为:Requests per second: 2015.93 [#/sec] (mean) 初次之外还有其他一些信息。
Server Software 表示被测试的Web服务器软件名称
Server Hostname 表示请求的URL主机名
Server Port 表示被测试的Web服务器软件的监听端口
Document Path 表示请求的URL中的根绝对路径,通过该文件的后缀名,我们一般可以了解该请求的类型
Document Length 表示HTTP响应数据的正文长度
Concurrency Level 表示并发用户数,这是我们设置的参数之一
Time taken for tests 表示所有这些请求被处理完成所花费的总时间
Complete requests 表示总请求数量,这是我们设置的参数之一
Failed requests 表示失败的请求数量,这里的失败是指请求在连接服务器、发送数据等环节发生异常,以及无响应后超时的情况。如果接收到的HTTP响应数据的头信息中含有2XX以外的状态码,则会在测试结果中显示另一个名为 “Non-2xx responses”的统计项,用于统计这部分请求数,这些请求并不算在失败的请求中。
Total transferred 表示所有请求的响应数据长度总和,包括每个HTTP响应数据的头信息和正文数据的长度。注意这里不包括HTTP请求数据的长度,仅仅为web服务器流向用户PC的应用层数据总长度。
HTML transferred 表示所有请求的响应数据中正文数据的总和,也就是减去了Total transferred中HTTP响应数据中的头信息的长度。
Requests per second 吞吐率,计算公式:Complete requests / Time taken for tests
Time per request 用户平均请求等待时间,计算公式:Time token for tests/(Complete requests/Concurrency Level)
Time per requet(across all concurrent request) 服务器平均请求等待时间,计算公式:Time taken for tests/Complete requests,正好是吞吐率的倒数。也可以这么统计:Time per request/Concurrency Level
Transfer rate 表示这些请求在单位时间内从服务器获取的数据长度,计算公式:Total trnasferred/ Time taken for tests,这个统计很好的说明服务器的处理能力达到极限时,其出口宽带的需求量。
Percentage of requests served within a certain time(ms) 这部分数据用于描述每个请求处理时间的分布情况,比如以上测试,80%的请求处理时间都不超过6ms,这个处理时间是指前面的Time per request,即对于单个用户而言,平均每个请求的处理时间。
未完待续。。。