php apache配置测试端口,详解安装配置Windows版apache服务器及压力测试

下载Apache

1、下载地址:

http://httpd.apache.org/download.cgi

2、点击链接Files for Microsoft Windows:

f7ebaab7e90f52cfbd255b1347628d63.png

8d45e1ae58e506c2d8590c02d9a1d8cc.png

6b79d04e1b8e0303820a5200f3729a8f.png

a9a8d17c2501141b922b188d26a45e3b.png

安装步骤

1、先安装apache补丁

1)下载地址:

https://www.microsoft.com/zh-cn/download/confirmation.aspx?id=48145

2)如果没有安装,启动apache时,会报如下错误:

httpd 系统错误 无法启动此程序,因为计算机中丢失VCRUNTIME140.dll

2、将Apache压缩文件解压到D:/apache/目录下,比如,解压后目录为D:/apache/Apache24

3、修改conf/目录下的httpd.conf文件:

1)修改ServerRoot Apache的根路径:

改为:ServerRoot "D:/apache/Apache24"

2)修改ServerName主机名称:

改为:ServerName www.example.com:80

3)修改DocumentRoot Apache访问的主文件夹目录,就是php、html代码文件的位置。

Apache默认的路径是在htdocs(D:/Apache24/htdocs)下面,里面会有个简单的入口文件index.html。

这个路径可以自己进行修改,这里将其配置在我自己新建的文件夹www(D:/apache/www)下。

DocumentRoot "c:/Apache24/htdocs"

改为=>

DocumentRoot "D:/apache/www"

4)修改入口文件配置:DirectoryIndex一般情况下我们都是以index.php、index.html、index.htm作为web项目的入口。

Apache默认的入口只有index.html需要添加其他两个的支持,当然这个入口文件的设置可以根据自己的需要增减,

如果要求比较严格的话可以只写一个index.php,这样在项目里面的入口就只能是index.php

DirectoryIndex index.html

改为=>

DirectoryIndex index.html index.php index.htm

5)设定serverscript的目录:

ScriptAlias /cgi-bin/ "c:/Apache24/cgi-bin/"改为=> ScriptAlias /cgi-bin/ "D:/apache/Apache24/cgi-bin"

6)修改Directory标签:

AllowOverride None

Options None

Require all granted

改为

AllowOverride None

Options None

Require all granted

7)修改端口:

如果80端口被占用了,可以将80改成81,如果没有被占用,可以不用更改。

4、修改D:\apache\Apache24\conf\extra目录下的httpd-ahssl.conf文件:

将所有的${SRVROOT}替换成D:/apache/Apache24

5、修改D:\apache\Apache24\conf\extra目录下的httpd-ssl.conf文件:

将所有的443端口改成442。

6、启动Apache:

开始---运行,输入cmd,打开命令提示符。接着进入D:/apache/Apache24/bin目录下运行httpd

然后打开浏览器:输入127.0.0.1:80,如果出现内容,没有报错,说明安装成功。

7、把apache安装成windows后台服务:

进入D:/apache/Apache24/bin目录下:

执行:httpd -k install

8、 完成

压力测试

1、在Windows系统下,打开cmd命令行窗口

2、压力测试命令:

2.1)ab -n 800 -c 800 http://192.168.0.10/(-n发出800个请求,-c模拟800并发,相当800人同时访问,后面是测试url)

2.2)ab -t 60 -c 100 http://192.168.0.10/在60秒内发请求,一次100个请求。

2.3)如果需要在url中带参数,这样做 ab -t 60 -c 100 -T "text/plain" -p p.txt http://192.168.0.10/helloworld.html p.txt 是和ab.exe在一个目录 p.txt 中可以写参数,如 p=wdp&fq=78

3、键入命令进行测试:ab -n 1000 -c 800 http://192.168.0.10/

4510fce898b618ae03a61f3b23829672.png

4、结果参数分析:

Completed 100 requests

Completed 200 requests

Completed 300 requests

Completed 400 requests

Completed 500 requests

Completed 600 requests

Completed 700 requests

Completed 800 requests

Finished 800 requests

Server Software: Microsoft-HTTPAPI/2.0

Server Hostname: 192.168.0.10

Server Port: 80

Document Path: /

//1HTTP响应数据的正文长度

Document Length: 315 bytes

Concurrency Level: 800

//2所有这些请求处理完成所花费的时间

Time taken for tests: 0.914 seconds

//3完成请求数

Complete requests: 800

//4失败请求数

Failed requests: 0

Write errors: 0

Non-2xx responses: 800

//5网络总传输量

Total transferred: 393600 bytes

//6内容传输量

HTML transferred: 252000 bytes HTML

//7吞吐量-每秒请求数

Requests per second: 875.22 [#/sec] (mean)

//8服务器收到请求,响应页面要花费的时间

Time per request: 914.052 [ms] (mean)

//9并发的每个请求平均消耗时间

Time per request: 1.143 [ms] (mean, across all concurrent requests)

//10平均每秒网络上的流量,可以帮助排除是否存在网络流量过大导致响应时间延长的问题

Transfer rate: 420.52 [Kbytes/sec] received

网络上消耗的时间的分解:

Connection Times (ms)

min mean[+/-sd] median max

Connect: 0 1 0.5 1 3

Processing: 245 534 125.2 570 682

Waiting: 11 386 189.1 409 669

Total: 246 535 125.0 571 684

整个场景中所有请求的响应情况。在场景中每个请求都有一个响应时间

其中 50% 的用户响应时间小于 571 毫秒

80 % 的用户响应时间小于 652 毫秒

最大的响应时间小于 684 毫秒

Percentage of the requests served within a certain time (ms)

50% 571

66% 627

75% 646

80% 652

90% 666

95% 677

98% 681

99% 682

100% 684 (longest request)

这部分数据用于描述每个请求处理时间的分布情况,比如以上测试,80%的请求处理时间都不超过6ms,这个处理时间是指前面的Time per request,即对于单个用户而言,平均每个请求的处理时间。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/432880.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux下boost库的安装

最近由于编译一个程序用到了C的boost库,所以便安装了这个库。但是,其中遇到了一些小问题。所以记录下来,以供别人参考。首先说一下我的环境:Ubuntu 12.04 32bit, gcc 4.6.3其实在ubuntu下,可以用一下命令直接安装sudo…

No projects are found to import

当导入项目报 No projects are found to import 时, 说明缺失一个.project[.classpath]文件,到别的项目中拷贝一份 然后再次导入会报 Some projects cannot be imported because they already exist in the workspace 那是因为你没有改文件中的name值,打开文件 修改name属性为你…

php 时间错误,PHP xdebug调试trace记录时间错误

调试生成的trace文件如下,(trace里的文件记录的时间是UTC)TRACE START [2018-01-12 02:39:46]0.0024 363464 0 -> calc_money(double, double) D:\wamp64\www\shakedown\index.php:100.0026 363464 >> 53.50.0027 363464 0 -> xdebug_stop_trace() D:\w…

ASCII,Unicode和UTF-8

1. ASCII码 我们知道,在计算机内部,所有的信息最终都表示为一个二进制的字符串。每一个二进制位(bit)有0和1两种状态,因此八个二进制位就可以组合出256种状态,这被称为一个字节(byte&#xff09…

Android 使用SeekBar调节系统音量

以下是一个使用SeekBar来调节系统音量的实例&#xff1a; 1、XML&#xff1a; <SeekBar android:id"id/sound" android:layout_width"150px" android:layout_height"10px" android:max"100" //设置拖动条最大值 android:p…

matlab可达矩阵 结果,matlab求可达矩阵

matlab中可达矩阵的计算 2页 1下载券 邻接矩阵的可达矩阵及层... 2页 2下载券 邻接矩阵的一种计算方法 7页 免费 ISM算法(邻接矩阵求可达... 暂无......JAVA矩阵算法代码 4页 2下载券 可达矩阵新算法 2页 2下载券 基于ISM模型用matlab软件... 10页 2下载券 图邻接矩阵相关算法实…

muduo for v210

目标&#xff1a;将muduo移植到v210上面 内核版本&#xff1a;2.6.35.7 1. 修改最上层的CMakeLists.txt 1) 在CXX_FLAGS里&#xff0c;加上-DVALGRIND&#xff0c;这样SocketsOps.cc就不会报错了。 2) 在CXX_FLAGS里&#xff0c;修改-marchnative为-marcharmv4 3) set(CMAKE_…

Com组件介绍

COM组件简介面向对象的思想难以适应这种分布式软件模型&#xff0c;于是组件化程序设计思想得到了迅速的发展。 按照组件化的程序设计的思想&#xff0c;复杂的应用程序被设计成一些小的&#xff0c;功能单一的组件模块&#xff0c;这些组件模块可以运行在同一台机器上&#xf…

matlab中solve和resolve,resolve和solve的区别

solve和resolve的区别在于&#xff1a;首先solve一般用于解决难题。如solve a problem, solve a riddle, solve an algebra problem。而resolve 是用在解决矛盾&#xff0c;或者是解决大难题&#xff0c;较显示问题的严重性。如resolve a conflict。其他有关slove的词dissolve&…

v210 启动脚本分析

1. 一般嵌入式linux系统的init进程会首先读取/etc/inittab文件&#xff0c;这里记录了系统在不阶段需要运行的程序与脚本文件。 其中v210的此文件里有这么一句 ::sysinit:/etc/init.d/rcS 也就是说在系统启动阶段要运行rcS文件。 2. 现在看rcS文件 for i in /etc/init.d/S??*…

hdu 2940

简单的大数乘法&#xff0c;直接改16进制~~ #include <cstdio> #include <cstdlib> #include <cmath> #include <cstring> #include <algorithm> #define maxn 3010 #define INF 0x7fffffff #define ull unsigned long long using namespace std…

shell变量详解

1 shell变量基础 shell变量是一种很“弱”的变量&#xff0c;默认情况下&#xff0c;一个变量保存一个串&#xff0c;shell不关心这个串是什么含义。所以若要进行数学运算&#xff0c;必须使用一些命令例如let、declare、expr、双括号等。shell变量可分为两类&#xff1a;局部变…

PB datawindow中的文本调整打印长度

long row_count if right(label_text,1) ‘、’ then//label_text是在外面定义的全局变量&#xff08;Instance&#xff09; label_text left (label_text,len(label_text) -1) end if row_count ceiling(len(label_text) / 33) dw_print_nxs.modify("expand2_1.heigh…

redis php怎么使用教程,PHP 使用redis

connect($host, $port);if ($ret false) {die($redis->getLastError());}$ret $redis->auth($user . "-" . $pwd . "-" . $dbname);if ($ret false) {die($redis->getLastError());}/*接下来就可以对该库进行操作了&#xff0c;具体操作方法请…

Ubuntu apache 禁止目录浏览

$ sudo vim /etc/apache2/sites-enabled/000-default 将Options后面Indexes前面加上"-"表示禁止目录浏览&#xff1a; <Directory /var/www/> Options -Indexes ...... </Directory> 然后重启apache $sudo service apache2 restart 转载于:https://www.…

CMake命令之list

用途&#xff1a;提供一些列表操作 list(LENGTH <list><output variable>) list(GET <list> <elementindex> [<element index> ...] <output variable>) list(APPEND <list><element> [<element> ...]) li…

python内函数名加括号和不加括号的区别,python中 函数名加括号与不加括号

Maven之自定义archetype生成项目骨架&lpar;一&rpar;Maven之自定义archetype生成项目骨架(一) 标签: mavennexus插件 2015-07-15 16:40 2443人阅读 评论(0) 收藏 举报 分类: Maven技术(9) ...Effective Objective-C 2&period;0 — 第9条&#xff1a;以&OpenCu…

POST

NSURL *url [NSURL URLWithString:"https://www.baidu.com"];NSMutableURLRequest *request [NSMutableURLRequest requestWithURL:url];request.HTTPMethod "POST";// 请求参数NSString *bodyStr [NSString stringWithFormat:"username%&pas…

CMake 手册详解(二十二)

原文地址 http://www.cnblogs.com/coderfenghc/archive/2012/10/20/2712806.html CMD#65: separate_arguments 将空格分隔的参数解析为一个分号分隔的list。 separate_arguments(<var> <UNIX|WINDOWS>_COMMAND "<args>") 解析一个unix或者windows…

websocket多人聊天php,php-notes/基于websocket实现多人聊天室.md at master · dd-code-site/php-notes · GitHub...

WebSocket连接断开格式&#xff1a;ws://IP或域名:端口发送消息var websocket;var wsUrl;function connect(){try {wsUrl $(#wsUrl).val();websocket new WebSocket(wsUrl);websocket.onopen function(event){console.log(客户端与服务端连接成功);connectChangeButton();al…