php 测试apache_安装apache 和php后测试phpinfo显示源码 - CSDN
精华内容
参与话题
  • Apache自带的ab压力测试工具用法详解

    万次阅读 2017-12-27 16:26:49
    Apache自带的ab压力测试工具用法详解Miss的PHP开发 2017-12-22 23:13:01 ab的原理 ...它的测试目标是基于URL的,因此,它既可以用来测试apache的负载压力,也可以测试nginx、lighthttp、tomcat、IIS
    Apache自带的ab压力测试工具用法详解Miss的PHP开发 2017-12-22 23:13:01
    

    Apache自带的ab压力测试工具用法详解

    ab的原理

    ab是apachebench命令的缩写。

    ab的原理:ab命令会创建多个并发访问线程,模拟多个访问者同时对某一URL地址进行访问。它的测试目标是基于URL的,因此,它既可以用来测试apache的负载压力,也可以测试nginx、lighthttp、tomcat、IIS等其它Web服务器的压力。

    ab命令对发出负载的计算机要求很低,它既不会占用很高CPU,也不会占用很多内存。但却会给目标服务器造成巨大的负载,其原理类似CC攻击。自己测试使用也需要注意,否则一次上太多的负载。可能造成目标服务器资源耗完,严重时甚至导致死机。

    先打开Apache服务器的安装路径,在bin目录中有一个ab.exe的可执行程序,就是我们要介绍的压力测试工具。

    Apache自带的ab压力测试工具用法详解

    在Windows系统的命令行下,进入ab.exe程序所在目录,执行ab.exe程序。注意直接双击无法正确运行。

    Apache自带的ab压力测试工具用法详解

    执行ab命令成功后,可以看到如图提示。该帮助很清楚详细的介绍了ab的用法以及各个参数的含义。

    ab 的用法是:ab [options] [http://]hostname[:port]/path

    例如:ab -n 5000 -c 200 http://localhost/index.php

    上例表示总共访问http://localhost/index.php这个脚本5000次,200并发同时执行。

    ab常用参数的介绍:

    -n :总共的请求执行数,缺省是1;

    -c: 并发数,缺省是1;

    -t:测试所进行的总时间,秒为单位,缺省50000s

    -p:POST时的数据文件

    -w: 以HTML表的格式输出结果

    执行测试用例:ab -n 1000 -c 100 -w http://localhost/index.php >>d:miss.html

    上面的测试用例表示100并发的情况下,共测试访问index.php脚本1000次,并将测试结果保存到d:miss.html文件中。

    Apache自带的ab压力测试工具用法详解

    Apache自带的ab压力测试工具用法详解

    Apache自带的ab压力测试工具用法详解

    结果

    注意:

    如果不想安装apache但是又想使用ab命令的话,我们可以直接安装apache的工具包httpd-tools。如下:

    yum -y install httpd-tools

    查看ab是否安装成功,可以切换到上述目录下,使用ab –V命令进行检测。如下:

    ab -V

    ab性能指标

    在进行性能测试过程中有几个指标比较重要:

    1、吞吐率(Requests per second)

    服务器并发处理能力的量化描述,单位是reqs/s,指的是在某个并发用户数下单位时间内处理的请求数。某个并发用户数下单位时间内能处理的最大请求数,称之为最大吞吐率。

    记住:吞吐率是基于并发用户数的。这句话代表了两个含义:

    a、吞吐率和并发用户数相关

    b、不同的并发用户数下,吞吐率一般是不同的

    计算公式:总请求数/处理完成这些请求数所花费的时间,即

    Request per second=Complete requests/Time taken for tests

    必须要说明的是,这个数值表示当前机器的整体性能,值越大越好。

    2、并发连接数(The number of concurrent connections)

    并发连接数指的是某个时刻服务器所接受的请求数目,简单的讲,就是一个会话。

    3、并发用户数(Concurrency Level)

    要注意区分这个概念和并发连接数之间的区别,一个用户可能同时会产生多个会话,也即连接数。在HTTP/1.1下,IE7支持两个并发连接,IE8支持6个并发连接,FireFox3支持4个并发连接,所以相应的,我们的并发用户数就得除以这个基数。

    4、用户平均请求等待时间(Time per request)

    计算公式:处理完成所有请求数所花费的时间/(总请求数/并发用户数),即:

    Time per request=Time taken for tests/(Complete requests/Concurrency Level)

    5、服务器平均请求等待时间(Time per request:across all concurrent requests)

    计算公式:处理完成所有请求数所花费的时间/总请求数,即:

    Time taken for/testsComplete requests

    可以看到,它是吞吐率的倒数。

    同时,它也等于用户平均请求等待时间/并发用户数,即

    Time per request/Concurrency Level

    ab还可以测试apache和NGINX的性能,自己试试看吧。

    展开全文
  • apache/php 性能大幅提升关键参数

    千次阅读 多人点赞 2013-12-07 23:09:56
    最近要对公司的网站做测试,我主要使用LoadRunner和ApacheBench高低搭配进行测试,而文章主要以ApacheBench来测试Apache/php性能。测试过程发现一个问题,使用ApacheBench测试一段时间后,经常报这个错误“apr_poll:...

    最近要对公司的网站做测试,我主要使用LoadRunner和ApacheBench高低搭配进行测试。LoadRunner主要用来压力测试,可以模拟用户行为,实时监测,有均值,曲线图,结果比较直观。ApacheBench也不差,比较简单,可以用来测试性能。本文侧重测试Apache/php性能,所以以ApacheBench说明。

    测试过程发现一个问题,百思不得其解。

    使用ApacheBench测试一段时间后,经常报这个错误“apr_poll: The timeout specified has expired (70007)”,引起了我的强烈关注

    apache/php 问题测试过程

    测试机器

    硬件 CPU G620 2.60GHz(双核)RAM 4.00GB(2.99GB可用)
    软件 win7 32位 旗舰版 Apache/2.2.19 PHP/5.3.26
    测试命令
    ab -n 10000 -c 100 http://localhost/
    测试结果
    静态页面(index.html)的测试性能 1200 - 1300 rps
    PHP空白页(只有echo 1;)测试效果不稳定,波动很大,100 - 600 rps,越测试性能越低。测试经常都是到了95%~99%的时候ApacheBench就停住,然后报错,或者很久才响应,测试结果只有100多

    PHP页面测试过程可能引发的ApacheBench错误:
    apr_poll: The timeout specified has expired (70007)
    Total of 9987 requests completed

    这个错误出现的原因通过各种排查,最终做了定位。当php使用session.auto_start,测试一段时间后几乎都会遇到这个问题,相反,取消php的session.auto_start,问题没有发生。

    apache/php 提升性能关键参数

    参数1:Apache KeepAlive
    Apache KeepAlive需要和线程绑定,服务器繁忙时会耗光所有线程
    KeepAlive Off

    参数2:Apache MPM

    Apache MPM可以通过优化apache内部进程的调度来提高apache的处理能力,这里为windows参数(其他系统没测试,不提供参考,具体看官方文档

    <IfModule mpm_winnt.c>
    #Win32DisableAcceptEx
    ThreadsPerChild 1000
    MaxRequestsPerChild 10000
    </IfModule>

    参数Win32DisableAcceptEx会降低性能,但如果服务器网络不稳定,Apache经常报这个错误“[warn] (OS 64)指定的网络名不再可用。 winnt_accept: Asynchronous AcceptEx failed.”,就得考虑使用

    参数Win32DisableAcceptEx的使用也是有风险的,可能带来另外一个问题。ApacheBench测试时,容易出现以下错误:

    apr_socket_recv: 远程主机强迫关闭了一个现有的连接。   (730054)
    Total of 195 requests completed

    参数3:PHP Session
    session.auto_start = 0

    代价很小,每次使用session都要显式的session_start(),这也是个好习惯

    apache/php 性能提升效果

    修改了上面3个参数,再来看下测试结果:

    静态页面的测试性能 1500 - 1700 rps

    php空白页的测试性能 1100 - 1200 rps

    或者上面的结果还不够振奋人心,文章测试数据是以我普通电脑来测试的,换成服务器结果会怎样?

    戴尔PowerEdge R610(Xeon E5606*2/16GB)服务器搭载windows server 2008系统,测试php空白页rps达到2.2k以上。2.2k这个处理能力已经很可观了,再上去就是Apache没有真正使用iocp的问题了

    php/session 进一步讨论

    聪明的你肯定会有疑问,如果页面显式的调用session_start(),比起php的session.auto_start,性能又有什么区别?

    我也做了测试,答案是一样的,也就是说session的使用消耗很大的性能

    那么为什么会这样,session的使用消耗很大的性能?

    和session.save_handler保存session方式有关吗?难道是操作系统io瓶颈?

    下面又做一些测试来研究这个问题。

    session.save_handler有几种保存方式:files,memcache,mysql等

    mysql保存方式无异于files,或者说效率也不会高于files,因为高并发时,update太频繁,问题太多

    memcache是保存到内存中,读写相对系统文件io来说都是比较高效的,缺点是数据不能持久化

    所以这里测试memcache保存session效率,对比一下默认的files方式?

    修改php配置文件

    session.save_handler = memcache
    session.save_path = "tcp://127.0.0.1:11211"
    session.auto_start = 1

    php空白页测试性能稳定在 500 - 750 rps,ApacheBench没有出现错误

    再回到files方式,难道和session存放路径有关?

    修改php配置文件
    session.save_handler = files
    session.save_path = "d:/sess_tmp/"
    session.auto_start = 1
    测试结果和最开始的结果差不多,同样会引发Apachebench错误

    结束语

    这一次测试发现的主要问题是系统文件io瓶颈问题。相对于内存io来说,文件io是低速的,而且容易出错。这里有以下几个结论:

    1、能够不用到文件读写尽量不用,考虑使用memcache等内存数据库。

    2、尽量避免在一个大访问量页面做一些文件操作,如MySQL Select/Update等等。

    3、对于访问较大的页面可以考虑写成静态html文件,以js方式动态更新。因为javascript脚本是等到页面加载完成后才开始执行的,也就是说,这种方式从某种程度上提高了服务端抵御ddos攻击的能力。


    继续阅读

    windows服务器应对高并发和DDOS攻击

    简单实现web服务器负载均衡

    网站安全:apache/php安全配置

    apache模块 提高网页加载速度

    windows下编译php扩展 memcache

    展开全文
  • 网站搭建之配置Apache加载PHP模块

    千次阅读 2020-04-26 22:17:58
    1、apache加载php模块,在apache的主配置文件中加载对应的php提供的模块 LoadModule php5——module PHP 所提供的模块链接所在路径 修改apache中httpd.conf的配置文件 修改配置文件之后测试是否正常 2、apache...
    1、apache加载php模块,在apache的主配置文件中加载对应的php提供的模块

    在这里插入图片描述

    修改apache中httpd.conf的配置文件

    LoadModule php5_module PHP所提供的模块链接所在路径
    在这里插入图片描述

    修改配置文件之后测试是否正常

    在这里插入图片描述

    2、Apache分配工作给PHP模块,如果是PHP代码就交给PHP处理,文件后缀判断.php结尾肯定是PHP代码

    AddType application/x-httpd-php .php
    在这里插入图片描述

    修改配置文件之后测试是否正常

    在这里插入图片描述

    修改配置文件之后重启apache
    测试是否可以正常访问

    在这里插入图片描述

    3、将PHP的配置文件加载到Apache配置文件中,共同生效
    ①在apache中指定php配置文件所在路径

    PHPIniDir php.ini 所在路径

    在这里插入图片描述

    ②php.ini文件默认是不存在的,是以development和production格式存在,需要格式化

    在这里插入图片描述
    在这里插入图片描述

    说明:PHP的配置文件已经加入到Apache的配置项中,意味着php.int的修改需要Apache重启才会生效
    展开全文
  • 在Centos 7下搭建Apache + PHP运行环境

    万次阅读 2016-12-29 11:48:15
    之前都是在windows server2008下搭建PHP运行环境,用IIS+PHP或者phpstudy,或wamp。今天试了试,在linux下搭建apache+php运行环境。感觉还不错。 在Centos 7下搭建Apache + PHP运行环境,,在这里我采用最简单的yum...

    之前都是在windows server2008下搭建PHP运行环境,用IIS+PHP或者phpstudy,或wamp。今天试了试,在linux下搭建apache+php运行环境。感觉还不错。


    在Centos 7下搭建Apache + PHP运行环境,,在这里我采用最简单的yum install安装法,我个人不喜欢编译安装,因为麻烦,而且耗时,能够用yum安装搞定的事情我都会优先选择。


    1、安装Apache

    在Centos中,Apache的名称叫httpd,因为我们要安装的是httpd

    yum install httpd

    安装完成后,我们的Apache配置文件路径是:/etc/httpd/conf/httpd.conf


    2、安装PHP

    yum install php

    安装完成后,我们的php配置文件路径是:/etc/php.ini


    3、测试Apache

    安装完成Apache后,我们可以使用http://你的服务器ip/测试访问Apache,如果能显示如下图,则说明Apache已经安装成功。



    如果我们测试无法打开这个页面,那么首先要考虑几个情况:


    1、是不是开启了iptables防火墙,如果是的话,可以用systemctl stop iptables关闭后再试


    2、是不是开启了firewalld防火墙,如果是的话,可以用systemctl stop firewalld关闭后再试


    3、是不是开启了SELinux功能,如果是的话,可以用setenforce 0临时关闭SELinux后再试

    4、重启Apache 服务

    systemctl restart httpd


    如果上面三个问题都无关,那么请自行寻找原因。

    4、修改Apache默认网站路径


    Apache安装好后,默认的网站路径是/var/www/html,也就是说以后我们想部署网站的话,必须把文件放到这个目录下,例如我们下面测试一下。

    echo "Hello,Welcome to China~" > /var/www/html/index.html


    上面这个命令是在/var/www/html下面创建一个index.html文件,内容是Hello,Welcome to China~,此时我们刷新浏览器,访问我们的Apache网站应该可以看到页面。

    Apache安装好后配置文件在哪里吗?没错,就是/etc/httpd/conf/httpd.conf,下面我们用vi或者vim(vim命令编辑文件可以带彩色,容易区分一点)命令来编辑它。


    vim /etc/httpd/conf/httpd.conf


    打开文件后,我们输入/docu,然后按下回车,这样就可以快速搜索到我们要找到内容。如下图,可以看到有两个/var/www/html的地方,分别是DocumentRoot "/var/www/html"和<Directory "/var/www/html">。我们要修改的就是这两个地方,把/var/www/html修改成我们想要的路径,比如/home/www,那么修改后就是这样的。

    重启Apache服务了

    systemctl restart httpd


    5、测试PHP环境


    下面我们来测试一下php环境,刚刚我们已经安装了php了,那么正常情况下我们可以不用修改php的配置。下面我们试试创建一个php页面。


    echo "<?php phpinfo(); ?>" > /home/www/index.php


    在浏览器中访问http://你的ip/index.php后可以看到如下效果则说明php安装成功。




    Apache + PHP的运行环境我们就已经搭建起来了,那么问题来了。有些朋友可能会问Apache跟PHP是怎么关联起来的呢?

    实际上我们安装php的时候,系统已经自动添加了php的模块文件到Apache的安装目录下,即/etc/httpd/conf.d,在这个目录下我们可以看到有一个php.conf的文件,这个就是Apache关联php模块的配置。


    在Apache的配置文件最底下一行我们也可以看到IncludeOptional conf.d/*.conf,这句配置就是加载/conf.d下面的所有.conf文件,换句话说,以后我们如果不想直接修改Apache的配置文件httpd.conf的话,我们就可以单独写一个.conf文件放到这个目录下。


    PHP的安装目录在/etc/php.d,配置文件是/etc/php.ini









    展开全文
  • 使用Apache的ab进行压力测试

    千次阅读 2016-12-02 21:22:18
    概述ab是apache自带的压力测试工具,当安装完apache的时候,就可以在bin下面找到ab然后进行apache 负载压力测试。后台测试开发中,常用的压力测试服务,php一般选择xampp,下载地址:点击打开链接,java后台,如果你...
  • Apache 502 Bad Gateway

    万次阅读 2011-04-29 22:16:00
    测试网站发现,不停点击保存大信息数据,一段时间之后,页面出现 502 Bad Gateway The proxy server received an invalid response from an upstream server. 查了下,按照...
  • AB(ApacheBench) 是 Apache 自带的超文本传输协议 (HTTP) 性能测试工具。 其设计意图是描绘当前所安装的 Apache 的执行性能, 主要是显示 Apache 每秒可以处理多少个请求。 打开Apache服务器的安装路径(以xampp为...
  • 使用Apache的ab工具进行压力测试

    万次阅读 2015-08-12 12:45:25
    Apache的ab命令模拟多线程并发请求,测试服务器负载压力,也可以测试nginx、lighthttp、IIS等其它Web服务器的压力。 Apache附带的ab工具(使用的PHP环境是WAMP集成环境,ab工具位于D:\wamp\bin\apache\Apache2.2.21...
  • ubuntu系统下安装php环境

    万次阅读 2019-05-27 12:44:05
    1.安装Apache sudo apt-get install apache2 测试:浏览器访问 http://localhost //会出现网页。 查看状态: service apache2 status/start/stop/restart Web目录: /var/www 安装目录: /etc/apache2/ 全局...
  • 搭建apache2.4+php5.6环境

    万次阅读 2016-09-08 14:19:02
    工具下载地址apache2.4 下载地址:http://httpd.apache.org/php5.6 下载地址:http://windows.php.net/download#php-5.6一、安装apache2.4第一步 解压apache2.4第二步 安装apache服务这里默认安装在G盘phpWeb目录下...
  • 【Frank注:之前已经搭建好phpapache了,这篇的主要目的是链接Apache和mysql】 一: 安装Apache【Frank注:我是下载的压缩包解压部署的,而不是这种点下一步的安装包】 1 下载安装包:http://mir
  • windows安装PHP5.4+Apache2.4+Mysql5.5

    万次阅读 热门讨论 2012-11-12 13:30:18
    windows安装PHP5.4+Apache2.4+Mysql5.5 作者:星之宇 ┊ 时间:2012-10-18 14:27 ┊ 分类: 网站技术 ┊ 阅读:1232 ┊ 评论:16 最近听说PHP5.4速度很快,所以想建立一个本地环境测试下。我打算用本地...
  • Apache的windows安装与大多数windows安装程序类似。 这里
  • Windows下基于Apache服务器的PHP环境搭建 第一步:下载安装程序(1) Apache2.2.4版下载,地址:http://httpd.apache.org/download,选择apache_2.2.4-win32-x86-no_ssl.msi,大约4M多。(2)PHP5.2.3版下载, ...
  • apache不能启动 加入下面... LoadModule php5_module modules/php5apache2.dll<br />AddType application/x-httpd-php .php<br /> 测试N久,终于发现问题,就是由于apache版本的不同,LoadModule?...
  • nginx与apache详细性能对比

    万次阅读 多人点赞 2012-06-28 15:22:11
    之前一直研究nginx的源代码,最近有时间也做了下nginx与apache的性能对比,希望能够够对大家有所帮助!   转载请注明:http://blog.csdn.net/lengzijian/article/details/7699444   nginx动态文件处理能力差?...
  • linux下apache+php搭建配置记录

    万次阅读 2013-04-10 13:20:54
    第1章 环境说明 1.1 系统说明 Centos 6.2 (最小化安装) 1.2 软件说明 httpd-2.4.2.tar.gz apr-util-1.4.1.tar.gz ...php-5.4.3.tar.bz2 libmcrypt-2.5.8.tar.gz mhash-0.9.9.9.tar.gz 第2章
  •  http://httpd.apache.org/ 2.2.*和2.4.*区别?  httpd-2.2.x(prefork)  httpd-2.4.x(event) 编译时可以使用--with-mpm=prefork手动指定其使用prefork  PHP官方推荐httpd使用prefork(php能更稳定地运行),而
  • 前言:注意每改一小步注意重启apache,这样便于知道怎么出错的 1.apache 配置apache,在apache的D:\apache\Apache24\conf目录下找httpd.conf并用notepad打开 1.1 在LoadModule下方添加下面句子 #加载php...
  • 使用Apache Bench对网站性能进行测试

    千次阅读 2015-10-26 14:59:47
    Apache Bench简称ab,是Apache附带的一个工具,可以用来测试网站性能。通过ab指定命令发送请求后,可以得到每秒传送字节数、每秒处理请求数、每请求处理时间等统计数据。
1 2 3 4 5 ... 20
收藏数 118,835
精华内容 47,534
关键字:

php 测试apache