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,即對於單個用戶而言,平均每個請求的處理時間。
未完待續。。。