一.下载稳定版2.2.31php
http://httpd.apache.org/html
二.2.2.*和2.4.*区别?linux
httpd-2.2.x(prefork)
httpd-2.4.x(event) 编译时可使用--with-mpm=prefork手动指定其使用prefork
PHP官方推荐httpd使用prefork(php能更稳定地运行),而不是线程化的worker和event,httpd-2.4.x默认使用线程化的event做为mpm.
Linux上不少PECL库都是非线程安全的,libphp5.so在线程化的httpd(event/worker)中运行可能会出现一些问题,为了保持兼容性和稳定性,PHP通常仍是使用httpd-2.2.x(prefork)这个分支.nginx
apache自己不提供已编译的安装包,只提供源码,若是你本身没法编译,能够选择下面这些官方推荐的第三方提供编译的网站。
其中后两个是有名的wamp以及xampp集成环境,若是只想下载apache能够选择前三个网站,这里咱们第一个ApacheHaus为例。c++
选择版本进行下载(Apache 2.2 VC9)apache
三.安装json
修改监听端口windows
默认80端口,若端口被其余应用程序占用,切记监听的端口必定不能被使用:(查看80端口是否被占用,命令行下输入:netstat -aon|findstr "80")安全
打开apache目录下的conf/httpd.conf 搜索 "Listen 80";
修改成Listen 7777;
保存以后再从新启动apache。服务器
开始-->运行-->services.msc-->肯定,找到服务后,右键操做
在linux下安装:
压力测试经过肯定一个系统的瓶颈或者不能接收的性能点,来得到系统能提供的最大的服务级别的测试。通俗地讲,压力测试是为了发如今什么条件下您的应用程序的性能会变得不可接受。再简单点,就是你网站的性能的一个评定,性能由自己程序和网站服务器共同决定。 而进行压力测试,就是为了让你更好得掌握网站的各个信息。
Apache Benchmark简称为ab,是apache自带的用于HTTP Server测试的工具。它能够接受单一的URL,而后重复地按照指定的多个独立线程的方式加载,并使用不一样的命令行参数控制访问的次数、最大的并发访问数等。
# ab -n1000 -c10 http://192.168.116.193/index.html #表示每次并发10个请求,总共请求1000次
注意:请求URL要使用双引号括起来,不然ab没法识别&符号
参数文档:参数文档内容使用“key=value&key=value&key=value...”方式进行拼接,还有json的方式,但我实验没有成功,接收不到参数,具体缘由未知
输入:ab -n 10 -c 10 -p d:\test\querypay.txt -T application/x-www-form-urlencoded http://paycenter.gotrip8.com/querypay.aspx
注意:-p是参数文档路径,-T是大写英文字母,post表单格式为:application/x-www-form-urlencoded
This is ApacheBench, Version 2.3<$Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus TechnologyLtd, http://www.zeustech.net/
Licensed to The Apache Software Foundation,http://www.apache.org/
Benchmarking 192.168.116.193 (be patient)
Completed 100
requestsCompleted 200
requestsCompleted 300
requestsCompleted 400
requestsCompleted 500
requestsCompleted 600
requestsCompleted 700
requestsCompleted 800
requestsCompleted 900
requestsCompleted 1000
requestsFinished 1000 requests
Server Software: nginx/1.0.15 #平台apache 版本
Server Hostname: 192.168.116.193 #服务器主机名
Server Port: 80 #服务器端口
Document Path: /index.html #测试的页面
Document Length: 3698 bytes #测试页面大小
Concurrency Level: 10 #并发数
Time taken for tests: 0.577 seconds #整个测试耗时
Complete requests: 1000 #总共完成的请求数量
Failed requests: 0 #表示失败的总请求数,这里的失败指请求在链接服务器、发送数据、接收数据等环节发生异常,以及无响应超时等状况
Write errors: 0 #网络链接写入错误数
Total transferred: 3917820 bytes #测试过程当中产生的网络传输总量
HTML transferred: 3705396 bytes #测试过程当中产生的HTML传输量
Requests per second: 1733.55 [#/sec] (mean) #表示服务器吞吐量,每秒事务数,括号中的 mean 表示这是一个平均值,
计算规则:Request per second = Complete requests / Timetaken for tests(主要关注)
Time per request: 5.768 [ms] (mean) #表示用户请求的平均响应时间,后面括号中的mean表示这是一个平均值
计算规则:Time per request = Time taken for tests /( Complete requests / Concurrency Level)(主要关注)
Time per request: 0.577 [ms] (mean, across all concurrentrequests) #表示服务器请求平均处理时间,即实际运行时间的平均值(主要关注)
Transfer rate: 6632.57 [Kbytes/sec] received #表示这些请求在单位时间内从服务器获取的数据长度,能够帮助排除是否存在网络流量过大致使响应时间延长的问题
Connection Times (ms)min mean[+/-sd] median maxConnect: 0 2 5.5 2 85
Processing: 1 3 6.3 2 84
Waiting: 0 2 5.1 2 82
Total: 2 5 8.8 4 100 #网络上消耗的时间的分解,表示这些请求在单位时间内从服务器获取的数据长度
Percentage of the requests served within acertain time (ms) #整个场景中全部请求的响应状况,在场景中每一个请求都有一个响应时间
50% 4 #其中50%的用户响应时间小于4毫秒
66% 5 #60%的用户响应时间小于5毫秒
75% 5 #
80% 5 #
90% 6 #
95% 9 #
98% 19 #
99% 80 #
100% 100 (longest request) #最大的响应时间小于100 毫秒
注意:
注意:请求URL要使用双引号括起来,不然ab没法识别&符号
参数文档:参数文档内容使用“key=value&key=value&key=value...”方式进行拼接,还有json的方式,但我实验没有成功,接收不到参数,具体缘由未知
输入:ab -n 10 -c 10 -p d:\test\querypay.txt -T application/x-www-form-urlencoded http://paycenter.gotrip8.com/querypay.aspx
注意:-p是参数文档路径,-T是大写英文字母,post表单格式为:application/x-www-form-urlencoded
六.Ab命令参数注释:
-n #指定在测试会话中所执行的请求总个数。默认时,仅执行一个请求。
-c #指定一次产生的请求个数。默认是一次一个。也就是每次的并发请求数,可是这个数值不能大于-n后面的数值,否者会报错:ab: Cannot use concurrency level greater than total number of requests
-t #测试所进行的最大秒数。其内部隐含值是-n 50000。它可使对服务器的测试限制在一个固定的总时间之内。默认时,没有时间限制。
-p #包含了须要POST的数据的文件.
-T #POST数据所使用的Content-type头信息。
-v #设置显示信息的详细程度 - 4或更大值会显示头信息, 3或更大值能够显示响应代码(404, 200等), 2或更大值能够显示警告和其余信息。 -V 显示版本号并退出。
-w #以HTML表的格式输出结果。默认时,它是白色背景的两列宽度的一张表。
-I #执行HEAD请求,而不是GET。
七.安装时常见问题解决: