热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

CentOS5.6系统下编译安装LNMP服务器环境

系统环境:centos5.6(x64)+Nginx1.0.4+Mysql5.5.12+PHP5.3.6软件包存放位置/usr/local/src/websoft###########本文另附配置文档,配置文档在附件里#################Nginx(发音同enginex)是一款轻量级的Web服务器/反向代理
系统环境:centos 5.6(x64)+Nginx 1.0.4+Mysql 5.5.12 + PHP 5.3.6
软件包存放位置 /usr/local/src/websoft

###########本文另附配置文档,配置文档在附件里#################

Nginx(发音同 engine x)是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。由俄罗斯的程序设计师Igor Sysoev所开发,最初供俄国大型的入口网站及搜寻引擎Rambler(俄文:Рамблер)使用。  其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页伺服器中表现较好.目前中国大陆使用nginx网站用户有:新浪、网易、 腾讯,另外知名的微网志Plurk也使用nginx。
总体来说nginx的有以下八大优点:
1.高并发连接:官方测试能支撑5万并发连接,在实际生产环境中跑到2,~3W并发连接。
2.内存消耗少:在3W并发连接下,开启的10个NGINX进程才消耗150M内存(15M*10=150M)
3.配置文件非常简单:风格跟程序一样通俗易懂。
4.成本低廉:Nginx作为开源软件,可以免费使用,而购买F5 BIG-IP、NetScaler
等硬件负载均衡交换机则需要十多万至几十万人民币。
5.支持rewrite重写规则:能够根据域名、URL的不同,将HTTP请求分发到不同的后端服务器群组。
6.内置的健康检查功能:如果Nginx Proxy后端的后台web服务器宕机了,不会音响前端访问。
7.节省带宽:支持GZIP压缩,可以添加浏览器本地缓存的Header头。
8.稳定性高:用于反向代理,宕机的概率微乎其微。
当客户端在访问动态页面时,因为apache和nginx只能提供静态解析,这是他们通过内置的cgi接口去寻找php等脚本语言,当需要用到数据部分时PHP会去调用后台MYSQL数据库中的数据,之后通过解析生成静态页面在返回apache/nginx服务器,再由此交付给客户端。那么nginx如何调用php提供动态php格式的网页,那么就通过FastCGI来实现,后面安装php的时候会讲解
1、首先安装编译所需要的库文件和编译环境,这里我用的光盘的yum源
yum -y install gcc openssl-devel zlib-devel pcre-devel libjpeg-devel libpng-devel libtool-ltdl-devel 
yum groupinstall "Development Tools" "Development Libraries" -y
2、下载源码包
#cd  /usr/local/src/websoft
#vim download.txt    //拷贝下面的内容到文件里
wget http://www.nginx.org/download/nginx-1.0.4.tar.gz
wget http://www.cmake.org/files/v2.8/cmake-2.8.4.tar.gz
wget http://dev.mysql.com/get/Downloads/MySQL-5.5/mysql-5.5.12.tar.gz/from/http://ftp.iij.ad.jp/pub/db/mysql
wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.13.1.tar.gz
wget http://downloads.sourceforge.net/mcrypt/libmcrypt-2.5.8.tar.gz?modtime=1171868460&big_mirror=0
wget ttp://downloads.sourceforge.net/mcrypt/mcrypt-2.6.8.tar.gz?modtime=1194463373&big_mirror=0
wget http://downloads.sourceforge.net/mhash/mhash-0.9.9.9.tar.gz?modtime=1175740843&big_mirror=0
wget wget http://cn.php.net/get/php-5.3.6.tar.gz/from/this/mirror
wget http://bart.eaccelerator.net/source/0.9.6.1/eaccelerator-0.9.6.1.tar.bz2
wget http://home.tiscali.cz/~cz210552/distfiles/webbench-1.5.tar.gz
#wget -i download.txt  //下载这些软件包
3、Nginx 安装
useradd -s /sbin/nologin -M nginx
cd /usr/local/src/websoft
tar zxvf nginx-1.0.4.tar.gz
cd nginx-1.0.4/
./configure --user=nginx --group=nginx \
--prefix=/usr/local/webserver/nginx  \
--sbin-path=/usr/sbin/nginx \
--conf-path=/etc/nginx/nginx.conf \
--with-http_stub_status_module  \
--with-http_ssl_module \
--without-http_rewrite_module \
 --lock-path=/var/lock/nginx.lock \
--pid-path=/var/run/nginx/nginx.pid  \
--with-pcre  //这个一定要加,不加启动nginxd会报错
make && make install
vim /etc/init.d/nginxd/   //添加下面内容,让nginx 支持service 启动关闭
#!/bin/sh
#
# nginx - this script starts and stops the nginx daemon
#
# chkconfig:   - 85 15 
# description:  Nginx is an HTTP(S) server, HTTP(S) reverse \
#               proxy and IMAP/POP3 proxy server
# processname: nginx
# config:      /etc/nginx/nginx.conf
# config:      /etc/sysconfig/nginx
# pidfile:     /var/run/nginx.pid
# Source function library.
. /etc/rc.d/init.d/functions
# Source networking configuration.
. /etc/sysconfig/network
# Check that networking is up.
[ "$NETWORKING" = "no" ] && exit 0
nginx="/usr/sbin/nginx"
prog=$(basename $nginx)
NGINX_CONF_FILE="/etc/nginx/nginx.conf"
[ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx
lockfile=/var/lock/subsys/nginx
make_dirs() {
   # make required directories
   user=`nginx -V 2>&1 | grep "configure arguments:" | sed 's/[^*]*--user=\([^ ]*\).*/\1/g' -`
   optiOns=`$nginx -V 2>&1 | grep 'configure arguments:'`
   for opt in $options; do
       if [ `echo $opt | grep '.*-temp-path'` ]; then
           value=`echo $opt | cut -d "=" -f 2`
           if [ ! -d "$value" ]; then
               # echo "creating" $value
               mkdir -p $value && chown -R $user $value
           fi
       fi
   done
}
start() {
    [ -x $nginx ] || exit 5
    [ -f $NGINX_CONF_FILE ] || exit 6
    make_dirs
    echo -n $"Starting $prog: "
    daemon $nginx -c $NGINX_CONF_FILE
    retval=$?
    echo
    [ $retval -eq 0 ] && touch $lockfile
    return $retval
}
stop() {
    echo -n $"Stopping $prog: "
    killproc $prog -QUIT
    retval=$?
    echo
    [ $retval -eq 0 ] && rm -f $lockfile
    return $retval
}
restart() {
    configtest || return $?
    stop
    sleep 1
    start
}
reload() {
    configtest || return $?
    echo -n $"Reloading $prog: "
    killproc $nginx -HUP
    RETVAL=$?
    echo
}
force_reload() {
    restart
}
configtest() {
  $nginx -t -c $NGINX_CONF_FILE
}
rh_status() {
    status $prog
}
rh_status_q() {
    rh_status >/dev/null 2>&1
}
case "$1" in
    start)
        rh_status_q && exit 0
        $1
        ;;
    stop)
        rh_status_q || exit 0
        $1
        ;;
    restart|configtest)
        $1
        ;;
    reload)
        rh_status_q || exit 7
        $1
        ;;
    force-reload)
        force_reload
        ;;
    status)
        rh_status
        ;;
    condrestart|try-restart)
        rh_status_q || exit 0
            ;;
    *)
        echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"
        exit 2
esac
chmod +x /etc/init.d/nginxd
service nginxd start
chkconfig --add nginxd
chkconfig nginxd on
chkconfig --list nginxd
通过浏览器访问服务器,出现welcome to nginx!表示成功
4、编译安装mysql
 编译环境前提(mysql 5.5.x 不再用 configure,而用cmake)
 # yum -y install   gcc gcc-c++ make ncurses-devel        //安装所需的软件包
 #cd /usr/local/src/websoft
 #tar xvf  cmake-2.8.4.tar.gz
 # cd cmake-2.8.4
 # ./configure && make && make install
cd /usr/local/src/websoft
 # tar zxvf mysql-5.5.12.tar.gz
 # cd mysql-5.5.12
 # cmake -DCMAKE_INSTALL_PREFIX=/usr/local/webserver/mysql \
         -DMYSQL_DATADIR=/data/mysql/data \
         -DWITH_MYISAM_STORAGE_ENGINE=1 \
         -DWITH_INNOBASE_STORAGE_ENGINE=1 \
         -DWITH_ARCHIVE_STORAGE_ENGINE=1 \
         -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
         -DENABLED_LOCAL_INFILE=1 \
         -DDEFAULT_CHARSET=utf8 \
         -DDEFAULT_COLLATION=utf8_general_ci \
         -DEXTRA_CHARSETS=all \
         -DMYSQL_TCP_PORT=3306 
 
# make 
# make install
参数说明:
 -DCMAKE_INSTALL_PREFIX=/usr/local/webserver/mysql   //安装目录
 -DMYSQL_DATADIR=/data/mysql/data          //数据库存放目录
 -DWITH_MYISAM_STORAGE_ENGINE=1     //安装myisam存储引擎
 -DWITH_INNOBASE_STORAGE_ENGINE=1   //安装innodb存储引擎
 -DWITH_ARCHIVE_STORAGE_ENGINE=1     //安装archive存储引擎
 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 //安装blackhole存储引擎
 -DENABLED_LOCAL_INFILE=1             //允许从本地导入数据
 -DDEFAULT_CHARSET=utf8             //使用utf8字符
 -DDEFAULT_COLLATION=utf8_general_ci  //校验字符
 -DEXTRA_CHARSETS=all               //安装所有扩展字符集
 -DMYSQL_TCP_PORT=3306              //MySQL监听端口
mysql 配置
 # groupadd -g 3306 mysql
 # useradd -u 3306 -g mysql -M -s /sbin/nologin mysql
 # mkdir /data/mysql/data
 # mkdir /data/mysql/log
 # chown -R mysql:mysql /data/mysql
 # chmod -R 755 /data/mysql
 # cp support-files/my-medium.cnf /etc/my.cnf
 #/usr/local/webserver/mysql/scripts/mysql_install_db  --user=mysql --basedir=/usr/local/webserver/mysql --datadir=/data/mysql/data &   //初始化数据库
  # cp support-files/mysql.server /etc/init.d/mysqld
 # chmod +x /etc/init.d/mysqld
 # chkconfig --add mysqld
 # chkconfig  mysqld on
 # service mysqld restart
 # netstat -tnlp |grep 3306
 # cd /usr/local/bin //进入用户的默认搜索路径下建立mysql命令的软连接,可以直接执行mysql命令
 # ln -s /usr/local/webserver/mysql/bin/mysql mysql
 # ln -s /usr/local/webserver/mysql/bin/mysqlduamp mysqldump
 # ln -s /usr/local/webserver/mysql/bin/mysqladmin mysqladmin
 # mysqladmin -u root -p password '123456'
 # mysql -u root -p
 # flush privileges;
vim /etc/my.cnf  //Mysql 优化,在[mysqld]配置参数下面添加下面几行(大概37行下面)
innodb_file_per_table
log-bin-trust-function-creators=1
skip-name-resolv
innodb_flush_log_at_trx_commit=1
sync-binlog=1
lower_case_table_names=1
max_connections = 1500 (默认100)
修改配置文件里下面的参数,去掉前面的#
innodb_buffer_pool_size = 2048M (默认16M,可以为系统内存50%~70%)
innodb_additional_mem_pool_size = 256M (默认2M)
innodb_log_file_size = 512M    (默认5M,innodb_buffer_pool_size的四分之一)
max_allowed_packet = 500M
下面安装几个所需要的源码包
########libiconv 加强系统对支持字符编码转换的功能########
cd /usr/local/src/websoft
tar xvf libiconv-1.13.1.tar.gz
cd libiconv
./configure --prefix=/usr/local/webserver
make
make install
####mcrypt是加密算法库,PHP扩展mcrypt功能对此库有依耐关系,要使用mcrypt必须先安装此库######
tar zxvf libmcrypt-2.5.8.tar.gz
cd libmcrypt-2.5.8
 ./configure
make
make install
/sbin/ldconfig
######加密算法库#########
tar zxvf mcrypt-2.6.8.tar.gz
cd mcrypt-2.6.8/
/sbin/ldconfig
 ./configure
make
make install
###mhash是哈希函数,用来计算消息的校验码之类的###
tar zxvf mhash-0.9.9.9.tar.gz
cd mhash-0.9.9.9
 ./configure
make
make install
ln -s /usr/local/mysql/lib/libmysqlclient.so.18 /usr/lib //创建一个mysqlclient库的软连接,不创建在make 的时候会提示找不到这个文件
5、安装PHP
php在编译安装时,nginx要想能够调用php提供动态php格式的网页,必须用FastCGI来实现,但FastCGI只是一个框架,实现FastCGI框架的有PHP-FPM,但对于5.2.x版本的php来说 默认是不支持PHP-FPM的,需要打上php-fpm的补丁,对于5.3.2之前版本的也是需要打补丁的,而且打补丁的过程比较麻烦。好在5.3.3版本的PHP-FPM被直接做进了源代码包中,在编译安装时只需启用PHP-FPM功能即可
加上 --enable-fpm 启动fpm
cd /usr/local/src/websoft
tar xvf php-5.3.6.tar.gz
cd php-5.3.6
./configure --prefix=/usr/local/webserver/php \
--with-config-file-path=/usr/local/webserver/php/etc \
--with-mysql=/usr/local/webserver/mysql  \
--with-mysqli=/usr/local/webserver/mysql/bin/mysql_config \
--with-iconv-dir=/usr/local/webserver --with-freetype-dir \
--with-jpeg-dir --with-png-dir --with-zlib \
--with-libxml-dir=/usr --enable-xml --disable-rpath \
--enable-safe-mode --enable-bcmath \
--enable-shmop --enable-sysvsem \
--enable-inline-optimization --with-curl \
--with-curlwrappers \
--enable-mbregex  --enable-fpm \
--enable-mbstring --with-mcrypt --with-gd \
--enable-gd-native-ttf --with-openssl --with-mhash \
--enable-pcntl --enable-sockets --with-ldap --with-ldap-sasl \
--with-xmlrpc --enable-zip --enable-soap \
--without-pear  --enable-fpm
make ZEND_EXTRA_LIBS='-liconv'  #因为-liconv的目录不是在/usr/local下所以安装时需要手动指定
make install  
cp /usr/local/websoft/php-5.3.6/php.ini-production 
/usr/local/webserver/php/etc/php.ini  //拷贝php配置文件
6、eaccelerator加速器(这个不是必须的,可以不安装)
eaccelerator是一个自由开放源码PHP加速器,优化和动态内容缓存,提高了性能php脚本的缓存性能,使得PHP脚本在编译的状态下,对服务器的开销几乎完全消除。 它还有对脚本起优化作用,以加快其执行效率。使您的PHP程序代码执效率能提高1-10倍;
tar jxvf eaccelerator-0.9.6.1.tar.bz2
cd eaccelerator-0.9.6.1/
/usr/local/webserver/php/bin/phpize
 ./configure 
--enable-eaccelerator=shared --with-php-cOnfig=/usr/local/webserver/php/bin/php-config
make
make install
修改php.ini 配置文件
vim /usrl/local/webserver/php/etc/php.ini //修改extension_dir
extension_dir= /usr/local/webserver/php/lib/php/extensions/no-debug-non-zts-20090626/"
配置eAccelerator加速PHP:
创建缓存存放目录
mkdir -p /usr/local/webserver/eaccelerator_cache
chmod 777 /usr/local/eaccelerator_cache
建立存放日志的目录
mkdir -p /usr/local/webserver/php/logs
vi /usr/local/webserver/php/etc/php.ini
按shift+g键跳到配置文件的最末尾,加上以下配置信息:
[eaccelerator]
  zend_extension="/usr/local/webserver/php/lib/php/extensions/no-debug-non-zts-20090626/eaccelerator.so"
 eaccelerator.shm_size="64"
 eaccelerator.cache_dir="/usr/local/webserver/eaccelerator_cache"
 eaccelerator.enable="1"
 eaccelerator.optimizer="1"
 eaccelerator.check_mtime="1"
 eaccelerator.debug="0"
 eaccelerator.filter=""
 eaccelerator.shm_max="0"
 eaccelerator.shm_ttl="3600"
 eaccelerator.shm_prune_period="3600"
 eaccelerator.shm_Only="0"
 eaccelerator.compress="1"
 eaccelerator.compress_level="9"
查看安b是否成功:php -v
PHP 5.3.6 (cli) (built: Jun  8 2011 23:10:20) 
Copyright (c) 1997-2011 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2011 Zend Technologies
with eAccelerator v0.9.6.1, Copyright (c) 2004-2010 eAccelerator, by eAccelerator
全部安装工作准备已经完成,剩下进行一些配置.
vim /usr/local/php/etc/php-fpm.conf   ##首先修改下面来配置修改
该配置文件只用修改以下四点,只需要把红色部分前面的注释去掉
; Note: Used when pm is set to either 'static' or 'dynamic' 
 ; Note: This value is mandatory.
pm.max_children = 50
; The number of child processes created on startup.
 ; Note: Used only when pm is set to 'dynamic'
 ; Default Value: min_spare_servers + (max_spare_servers - min_spare_servers) / 2
pm.start_servers = 10
; The desired minimum number of idle server processes. 
 ; Note: Used only when pm is set to 'dynamic'
 ; Note: Mandatory when pm is set to 'dynamic'
pm.min_spare_servers = 5
; The desired maximum number of idle server processes.
 ; Note: Used only when pm is set to 'dynamic'
 ; Note: Mandatory when pm is set to 'dynamic'
pm.max_spare_servers = 35
修改完成,试着启动
#/usr/local/webserver/php/sbin/php-fpm &   
启动后用netstat -tnlp   //查看如果有如图所示端口 如果有表示正常启动

如需要开机自动启动 则可以添加到/etc/rc.d/rc.local中
vim /etc/rc.d/rc.local
在空白行添加   /usr/local/webserver/php/sbin/php-fpm &  
 
vim /etc/nginx/nginx.conf  //下面就是最后修改nginx.conf配置文件
user nginx                   //修改ngin守护进程的用户
worker_processes  4;         //工作进程数,一般与 CPU 核数等同,但实际的可以多一些
error_log logs/error.log;       //错误日志位置
events {
    worker_connections  2048;#每个工作进程允许最大的同时连接数,可以稍微大一些,1024的倍数
}
gzip  on;
server {
        listen       80;
        server_name  192.168.175.208;   //服务器地址
找到
        location ~ \.php$ {
             root           html;
             fastcgi_pass   127.0.0.1:9000;
             fastcgi_index  index.php;
             fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
             include        fastcgi_params;
         }
把前面注释全部去掉, root后面的路径是你网页文件所放置的路径, 该目录如果不存在的话还需要手动创建。
找到
  location / {
             root   /html;
             index  index.php index.html index.htm;
         }
修改为如上所示 主要是添加index  后面的index.php
修改完成后保存退出,重新启动nginx服务
service nginxd restart 
vim /usr/local/webserver/nginx/html/index.php  //编辑测试文件在其中添加
 phpinfo();
 ?>
保存退出
之后用web浏览器访问 如果出现php信息页面 表示服务成功,
下面是测试mysql 的连接 
把刚才/usr/local/webserver/nginx/html/index.php中的内容修改成
 $link=mysql_connect("localhost","root","123456");
 if(!$link) echo "FAILD!";
 else echo "OK!";
 ?>
然后刷新web页面,如果出现OK!字样 测表示正常连接
优化Linux内核参数
#vi /etc/sysctl.conf 在/etc/sysctl.conf末尾增加以下内容(可根据服务器实际情况进行调整),在文件最后添加下面的内容
 net.ipv4.tcp_max_syn_backlog = 65536       

 net.core.netdev_max_backlog =  32768
 net.core.somaxconn = 32768
 net.core.wmem_default = 8388608
 net.core.rmem_default = 8388608
 net.core.rmem_max = 16777216
 net.core.wmem_max = 16777216
 net.ipv4.tcp_timestamps = 0
 net.ipv4.tcp_synack_retries = 2
 net.ipv4.tcp_syn_retries = 2
 net.ipv4.tcp_tw_recycle = 1
 net.ipv4.tcp_tw_reuse = 1
 net.ipv4.tcp_mem = 94500000 915000000 927000000
 net.ipv4.tcp_max_orphans = 3276800
 net.ipv4.ip_local_port_range = 1024  65535
#net.ipv4.ip_conntrack_max = 10000
保存退出
/sbin/sysctl -p
##############Linux内核优化参数说明##########################
 net.ipv4.tcp_max_syn_backlog = 65536    
#记录的那些尚未收到客户端确认信息的连接请求的最大值
 net.core.netdev_max_backlog =  32768
#每个网络接口接收数据包的速率比内核处理这些包的速率快时,允许送到队列的数据包的最大数目。
 net.core.somaxconn = 32768
#listen()的默认参数,挂起请求的最大数量.默认是128.对繁忙的服务器,增加该值有助于网络性能.
 net.core.wmem_default = 8388608
#该参数指定了发送套接字缓冲区大小的缺省值(以字节为单位)
 net.core.rmem_default = 8388608
该参数指定了接收套接字缓冲区大小的缺省值(以字节为单位) 
 net.core.rmem_max = 16777216
#该参数指定了接收套接字缓冲区大小的最大值(以字节为单位) 

 net.core.wmem_max = 16777216
#该参数指定了发送套接字缓冲区大小的最大值(以字节为单位) 
 net.ipv4.tcp_timestamps = 0
#时间戳可以避免序列号的卷绕。一个1Gbps的链路肯定会遇到以前用过的序列号。时间戳能够让内核接受这种“异常”的数据包。这里需要将其关掉。
 net.ipv4.tcp_synack_retries = 2
#为了打开对端的连接,内核需要发送一个SYN并附带一个回应前面一个SYN的ACK。也就是所谓三次握手中的第二次握手。这个设置决定了内核放弃连接之前发送SYN+ACK包的数量。
 net.ipv4.tcp_syn_retries = 2
#在内核放弃建立连接之前发送SYN包的数量。
 net.ipv4.tcp_tw_recycle = 1
#启用timewait快速回收。
 net.ipv4.tcp_tw_reuse = 1
#开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接。
 net.ipv4.tcp_mem = 94500000 915000000 927000000
# 同样有3个值,意思是: 
net.ipv4.tcp_mem[0]:低于此值,TCP没有内存压力. 
net.ipv4.tcp_mem[1]:在此值下,进入内存压力阶段. 
net.ipv4.tcp_mem[2]:高于此值,TCP拒绝分配socket. 
上述内存单位是页,而不是字节
net.ipv4.tcp_max_orphans = 3276800   #系统所能处理不属于任何进程的TCP sockets最大数量。假如超过这个数量o那么不属于任何进程的连接会被立即reset,并同时显示警告信息。之所以要设定这个限制o纯粹为了抵御那些简单的DoS攻击o千万不要依赖这个或是人为的降低这个限制 
 net.ipv4.ip_local_port_range = 1024  65535
#允许系统打开的端口范围。
    #net.ipv4.ip_conntrack_max = 10000
#设置系统对最大跟踪的TCP连接数的限制(CentOS 5.6无此参数) 
#####################################################################
编写每天定时切割Nginx日志的脚本,使用系统的logrotate 工具来回滚日志:
logrotate 程序是一个日志文件管理工具。用来把旧的日志文件删除,并创建新的日志文件,我们把它叫做“转储”。我们可以根据日志文件的大小,也可以根据其天数来转储,这个过程一般通过 cron 程序来执行。
logrotate 程序还可以用于压缩日志文件,以及发送日志到指定的E-mai
#vim /etc/logrotate/nginx    //在/etc/logrotate.d/下建立一脚本文件nginx,内容为:
/usr/local/webserver/nginx/logs/*log {
 missingok
  rotate 10
  daily
 notifempty
 sharedscripts
 postrotate
     /bin/kill -HUP `cat /var/run/nginx/nginx.pid 2>/dev/null` 2> /dev/null || true
 endscript
}
保存退出
生成日志的格式为:access_log.1 access_log.2 error_log.3 ......
                            error_log.1 error_log.2 error_log.3 ........
用Webbench进行简单的压力测试
   Webbench是有名的网站压力测试工具。Webbench支持多平台,FreeBSD、Linux、Windows都可以使用。Webbench最多可以模拟3万个并发连接去测试网站的负载能力。
cd /usr/local/src/websoft
tar xvf webbench-1.5.tar.gz
cd webbench-1.5
make && make install
Linux压力测试工具webbench使用: 
引用 webbench -c 500 -t 30 http://127.0.0.1/index.php
webbench -c 500 -t 30参数说明:-c表示并发数,-t表示时间(秒)

推荐阅读
  • 本文将详细介绍如何在ThinkPHP6框架中实现多数据库的部署,包括读写分离的策略,以及如何通过负载均衡和MySQL同步技术优化数据库性能。 ... [详细]
  • 解决JAX-WS动态客户端工厂弃用问题并迁移到XFire
    在处理Java项目中的JAR包冲突时,我们遇到了JaxWsDynamicClientFactory被弃用的问题,并成功将其迁移到org.codehaus.xfire.client。本文详细介绍了这一过程及解决方案。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • 本文介绍了一款用于自动化部署 Linux 服务的 Bash 脚本。该脚本不仅涵盖了基本的文件复制和目录创建,还处理了系统服务的配置和启动,确保在多种 Linux 发行版上都能顺利运行。 ... [详细]
  • 在Linux系统中配置并启动ActiveMQ
    本文详细介绍了如何在Linux环境中安装和配置ActiveMQ,包括端口开放及防火墙设置。通过本文,您可以掌握完整的ActiveMQ部署流程,确保其在网络环境中正常运行。 ... [详细]
  • PHP 5.5.0rc1 发布:深入解析 Zend OPcache
    2013年5月9日,PHP官方发布了PHP 5.5.0rc1和PHP 5.4.15正式版,这两个版本均支持64位环境。本文将详细介绍Zend OPcache的功能及其在Windows环境下的配置与测试。 ... [详细]
  • 本文详细介绍了如何准备和安装 Eclipse 开发环境及其相关插件,包括 JDK、Tomcat、Struts 等组件的安装步骤及配置方法。 ... [详细]
  • 本文详细介绍如何利用已搭建的LAMP(Linux、Apache、MySQL、PHP)环境,快速创建一个基于WordPress的内容管理系统(CMS)。WordPress是一款流行的开源博客平台,适用于个人或小型团队使用。 ... [详细]
  • 本文介绍了如何使用jQuery根据元素的类型(如复选框)和标签名(如段落)来获取DOM对象。这有助于更高效地操作网页中的特定元素。 ... [详细]
  • 本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ... [详细]
  • 在哈佛大学商学院举行的Cyberposium大会上,专家们深入探讨了开源软件的崛起及其对企业市场的影响。会议指出,开源软件不仅为企业提供了新的增长机会,还促进了软件质量的提升和创新。 ... [详细]
  • 本文详细分析了Hive在启动过程中遇到的权限拒绝错误,并提供了多种解决方案,包括调整文件权限、用户组设置以及环境变量配置等。 ... [详细]
  • 探讨了小型企业在构建安全网络和软件时所面临的挑战和机遇。本文介绍了如何通过合理的方法和工具,确保小型企业能够有效提升其软件的安全性,从而保护客户数据并增强市场竞争力。 ... [详细]
  • PHP 过滤器详解
    本文深入探讨了 PHP 中的过滤器机制,包括常见的 $_SERVER 变量、filter_has_var() 函数、filter_id() 函数、filter_input() 函数及其数组形式、filter_list() 函数以及 filter_var() 和其数组形式。同时,详细介绍了各种过滤器的用途和用法。 ... [详细]
author-avatar
幸福---wang
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有