源码编译lnmp架构 | 编译php-fpm | Discuz!论坛 | memcache缓存机制 openstry缓存

mysql

编译mysql

cmake-2.8.12.2-4.el6.x86_64.rpm  mysql-boost-5.7.17.tar.gz

[root@server5 ~]# tar zxf mysql-boost-5.7.17.tar.gz

[root@server5 ~]# cd mysql-5.7.17/    这个必须用cmake,不能用./configure

[root@server5 mysql-5.7.17]# yum list cmake

Loaded plugins: product-id, subscription-manager

This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.

rhel-source                                                 | 3.9 kB     00:00    

rhel-source/primary_db                                      | 3.1 MB     00:00    

Available Packages

cmake.x86_64                        2.6.4-5.el6    

rhel6自带的版本太低,至少2.8以上,rhel7自带的可以

 

1,安装cmake

[root@server5 ~]# rpm -ivh cmake-2.8.12.2-4.el6.x86_64.rpm

warning: cmake-2.8.12.2-4.el6.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY

error: Failed dependencies:

       libarchive.so.2()(64bit) is needed by cmake-2.8.12.2-4.el6.x86_64

有依赖性直接用yum安装cmake-2.8.12.2-4.el6.x86_64.rpm

2,开始cmake

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \    这个指定的目录不用自己建立

#安装目录

-DMYSQL_DATADIR=/usr/local/mysql/data \

#数据库存放目录

-DMYSQL_UNIX_ADDR=/usr/local/mysql/data/mysql.sock \ #Unix socket 文件路径

-DWITH_MYISAM_STORAGE_ENGINE=1 \

#安装 myisam 存储引擎

-DWITH_INNOBASE_STORAGE_ENGINE=1 \   引擎根据需要加,没必要都添加

#安装 innodb 存储引擎

-DWITH_ARCHIVE_STORAGE_ENGINE=1 \

#安装 archive 存储引擎

-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \

#安装 blackhole 存储引擎

-DWITH_PARTITION_STORAGE_ENGINE=1 \

#安装数据库分区

-DENABLED_LOCAL_INFILE=1 \

#允许从本地导入数据

-DWITH_READLINE=1 \

#快捷键功能

-DWITH_SSL=yes \

#支持 SSL

-DDEFAULT_CHARSET=utf8 \

#使用 utf8 字符

-DDEFAULT_COLLATION=utf8_general_ci \

#校验字符

-DEXTRA_CHARSETS=all \

#安装所有扩展字符集

-DMYSQL_TCP_PORT=3306 \

#MySQL 监听端口

!!!这些附加信息不是全加,根据需要修改

重新cmake时需要清除缓存信息

rm -f CmakeCache.txt  #cmake时会先读取缓存信息,可能会和我们重新编译附加的信息冲突

(在安装了vim的系统中如果用vi打开还是打开的vim,需要加\vi  \表示转义,在vi中编辑然后贴过来不会有特殊字符的存在干扰编译,如果在编译过程中,出现某一个附加条件报错,但是语法逻辑有问题,那就删除该附加条件,然后再手动敲上去,不要复制粘贴)

 

yum install -y gcc gcc-c++

[root@server5 mysql-5.7.17]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/lnmp/mysql -DMYSQL_DATADIR=/usr/local/lnmp/mysql/data -DMYSQL_UNIX_ADDR=/usr/local/lnmp/mysql/data/mysql.sock -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DEXTRA_CHARSETS=all -DWITH_BOOST=boost/boost_1_59_0/  tab补出

-- Could NOT find Curses (missing:  CURSES_LIBRARY CURSES_INCLUDE_PATH)

CMake Error at cmake/readline.cmake:64 (MESSAGE):

  Curses library not found.  Please install appropriate package,

      remove CMakeCache.txt and rerun cmake.On Debian/Ubuntu, package name is libncurses5-dev, on Redhat and derivates it is ncurses-devel.

 

[root@server5 mysql-5.7.17]# rm -rf CMakeCache.txt

[root@server5 mysql-5.7.17]# yum install -y ncurses-devel

[root@server5 mysql-5.7.17]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/lnmp/mysql -DMYSQL_DATADIR=/usr/local/lnmp/mysql/data -DMYSQL_UNIX_ADDR=/usr/local/lnmp/mysql/data/mysql.sock -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DEXTRA_CHARSETS=all -DWITH_BOOST=boost/boost_1_59_0/

 

-- Googletest was not found. gtest-based unit tests will be disabled. You can run cmake . -DENABLE_DOWNLOADS=1 to automatically download and build required components from source.    这个不用管

-- If you are inside a firewall, you may need to use an https proxy: export https_proxy=http://example.com:80

-- Performing Test HAVE_UNUSED_TYPEDEFS

-- Performing Test HAVE_UNUSED_TYPEDEFS - Failed

-- Performing Test HAVE_MISLEADING_INDENTATION

-- Performing Test HAVE_MISLEADING_INDENTATION - Failed

CMake Warning at cmake/bison.cmake:20 (MESSAGE):

  Bison executable not found in PATH

Call Stack (most recent call first):

  sql/CMakeLists.txt:549 (INCLUDE)

 

CMake Warning at cmake/bison.cmake:20 (MESSAGE):

  Bison executable not found in PATH

Call Stack (most recent call first):

  libmysqld/CMakeLists.txt:187 (INCLUDE)

waring可以跳过,也可以安装bison

 

[root@server5 mysql-5.7.17]# yum install -y bison

[root@server5 mysql-5.7.17]# rm -rf CMakeCache.txt

[root@server5 mysql-5.7.17]# cmake

-- Configuring done

-- Generating done

-- Build files have been written to: /root/mysql-5.7.17

 

cmake成功!!!!!!

 

3,make

4,make install

编译安装成功

 

rpm -qa | grep mysql可以删除mysql,mysql-server,但是mysql-libs不能删除

配置/etc/my.cnf

[root@server5 ~]# cd /usr/local/lnmp/mysql/

[root@server5 mysql]# ls

bin  COPYING  docs  include  lib  man  mysql-test  README  share  support-files

[root@server5 mysql]# ll /etc/my.cnf

-rw-r--r--. 1 root root 251 Aug  9  2013 /etc/my.cnf

[root@server5 support-files]# ls

magic  my-default.cnf  mysqld_multi.server  mysql-log-rotate  mysql.server

[root@server5 support-files]# cp my-default.cnf /etc/my.cnf  覆盖掉

cp: overwrite `/etc/my.cnf'? y

[root@server5 support-files]# vim /etc/my.cnf

 

# *** default location during install, and will be replaced if you

# *** upgrade to a newer version of MySQL.

[mysqld]

# Remove leading # and set to the amount of RAM for the most important data

# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.

# innodb_buffer_pool_size = 128M

 

# Remove leading # to turn on a very important data integrity option: logging

# changes to the binary log between backups.

# log_bin

 

# These are commonly set, remove the # and set as required.

basedir = /usr/local/lnmp/mysql      主要是去掉这4个注释

datadir = /usr/local/lnmp/mysql/data

port = 3306

# server_id = .....

socket = /usr/local/lnmp/mysql/data/mysql.sock   cmake编译时附加信息之一

 

# Remove leading # to set options mainly useful for reporting servers.

# The server defaults are faster for transactions and fast SELECTs.

# Adjust sizes as needed, experiment to find the optimal values.

# join_buffer_size = 128M

# sort_buffer_size = 2M

# read_rnd_buffer_size = 2M

 

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

 

建立mysql的启动脚本

[root@server5 support-files]# file mysql.server   这是启动脚本

mysql.server: POSIX shell script text executable

[root@server5 support-files]# cp mysql.server /etc/init.d/mysqld

[root@server5 support-files]# ll /etc/init.d/mysqld  

-rwxr-xr-x 1 root root 10916 Aug  5 10:50 /etc/init.d/mysqld

 

创建用户

[root@server5 mysql]# ll

total 56

drwxr-xr-x  2 root root  4096 Aug  5 10:19 bin

-rw-r--r--  1 root root 17987 Nov 28  2016 COPYING

drwxr-xr-x  2 root root  4096 Aug  5 10:19 docs

drwxr-xr-x  3 root root  4096 Aug  5 10:19 include

drwxr-xr-x  4 root root  4096 Aug  5 10:19 lib

drwxr-xr-x  4 root root  4096 Aug  5 10:19 man

drwxr-xr-x 10 root root  4096 Aug  5 10:20 mysql-test

-rw-r--r--  1 root root  2478 Nov 28  2016 README

drwxr-xr-x 28 root root  4096 Aug  5 10:20 share

drwxr-xr-x  2 root root  4096 Aug  5 10:20 support-files

[root@server5 mysql]# id mysql

id: mysql: No such user

[root@server5 mysql]# groupadd -g 27 mysql      真机mysql的用户id27

[root@server5 mysql]# useradd -u 27 -g 27 -M -d /usr/local/lnmp/mysql/data -s /sbin/nologin mysql  不创建家目录,指定用户家目录禁止登录

修改mysql目录用户权限

[root@server5 mysql]# chown -R mysql.mysql .

[root@server5 mysql]# ll

total 56

drwxr-xr-x  2 mysql mysql  4096 Aug  5 10:19 bin

-rw-r--r--  1 mysql mysql 17987 Nov 28  2016 COPYING

drwxr-xr-x  2 mysql mysql  4096 Aug  5 10:19 docs

drwxr-xr-x  3 mysql mysql  4096 Aug  5 10:19 include

drwxr-xr-x  4 mysql mysql  4096 Aug  5 10:19 lib

drwxr-xr-x  4 mysql mysql  4096 Aug  5 10:19 man

drwxr-xr-x 10 mysql mysql  4096 Aug  5 10:20 mysql-test

-rw-r--r--  1 mysql mysql  2478 Nov 28  2016 README

drwxr-xr-x 28 mysql mysql  4096 Aug  5 10:20 share

drwxr-xr-x  2 mysql mysql  4096 Aug  5 10:20 support-files

[root@server5 mysql]# cd bin/    命令目录,含初始化命令等

[root@server5 bin]# pwd

/usr/local/lnmp/mysql/bin

[root@server5 ~]# ls -a

.              .bashrc                          mysql-5.7.17

..             cmake-2.8.12.2-4.el6.x86_64.rpm  mysql-boost-5.7.17.tar.gz

.bash_logout   .cshrc                           .tcshrc

.bash_profile  .lftp                            .viminfo

[root@server5 ~]# vim .bash_profile

 

# .bash_profile

 

# Get the aliases and functions

if [ -f ~/.bashrc ]; then

        . ~/.bashrc

fi

 

# User specific environment and startup programs

 

PATH=$PATH:$HOME/bin:/usr/local/lnmp/mysql/bin

 

添加这个的主要目的是不管在哪个路径都可以执行/usr/local/lnmp/mysql/bin这里面的可执行文件

export PATH

[root@server5 ~]# source  .bash_profile

 

初始化用户

[root@server5 ~]# mysql_install_db

2018-08-05 10:55:10 [WARNING] mysql_install_db is deprecated. Please consider switching to mysqld --initialize 

2018-08-05 10:55:10 [ERROR]   The data directory needs to be specified.

[root@server5 mysql]# mysqld --initialize --user=mysql

2018-08-05T03:08:05.095648Z 1 [Note] A temporary password is generated for root@localhost: hu#_+&7qk,gZ

[root@server5 mysql]# chkconfig --list mysqld   检查开机是否自动启动

service mysqld supports chkconfig, but is not referenced in any runlevel (run 'chkconfig --add mysqld')

[root@server5 mysql]# ll

total 60

drwxr-xr-x  2 mysql mysql  4096 Aug  5 10:54 bin

-rw-r--r--  1 mysql mysql 17987 Nov 28  2016 COPYING

drwxr-x---  5 mysql mysql  4096 Aug  5 11:08 data

drwxr-xr-x  2 mysql mysql  4096 Aug  5 10:19 docs

drwxr-xr-x  3 mysql mysql  4096 Aug  5 10:19 include

drwxr-xr-x  4 mysql mysql  4096 Aug  5 10:19 lib

drwxr-xr-x  4 mysql mysql  4096 Aug  5 10:19 man

drwxr-xr-x 10 mysql mysql  4096 Aug  5 10:20 mysql-test

-rw-r--r--  1 mysql mysql  2478 Nov 28  2016 README

drwxr-xr-x 28 mysql mysql  4096 Aug  5 10:20 share

drwxr-xr-x  2 mysql mysql  4096 Aug  5 10:20 support-files

[root@server5 mysql]# chown root.root . -R

[root@server5 mysql]# chown mysql data/ -R   data是mysql服务写的目录,只要这个目录的组是mysql就够了

[root@server5 mysql]# ll

total 60

drwxr-xr-x  2 root  root  4096 Aug  5 10:54 bin

-rw-r--r--  1 root  root 17987 Nov 28  2016 COPYING

drwxr-x---  5 mysql root  4096 Aug  5 11:08 data

drwxr-xr-x  2 root  root  4096 Aug  5 10:19 docs

drwxr-xr-x  3 root  root  4096 Aug  5 10:19 include

drwxr-xr-x  4 root  root  4096 Aug  5 10:19 lib

drwxr-xr-x  4 root  root  4096 Aug  5 10:19 man

drwxr-xr-x 10 root  root  4096 Aug  5 10:20 mysql-test

-rw-r--r--  1 root  root  2478 Nov 28  2016 README

drwxr-xr-x 28 root  root  4096 Aug  5 10:20 share

drwxr-xr-x  2 root  root  4096 Aug  5 10:20 support-files

 

数据库启动测试

[root@server5 mysql]# /etc/init.d/mysqld start

Starting MySQL. SUCCESS!

[root@server5 mysql]# /etc/init.d/mysqld stop

Shutting down MySQL.. SUCCESS!

安全初始化

一定要先启动mysql

[root@server5 mysql]# mysql_secure_installation

Securing the MySQL server deployment.

Enter password for user root:  hu#_+&7qk,gZ

The existing password for the user account root has expired. Please set a new password.

New password:

Re-enter new password:

VALIDATE PASSWORD PLUGIN can be used to test passwords

and improve security. It checks the strength of password

and allows the users to set only those passwords which are

secure enough. Would you like to setup VALIDATE PASSWORD plugin?

Press y|Y for Yes, any other key for No: n    是否安装插件,这个插件会严格检查密码的强弱度,实验条件没必要配置

Using existing password for root.

Change the password for root ? ((Press y|Y for Yes, any other key for No) :

 ... skipping.

By default, a MySQL installation has an anonymous user,

allowing anyone to log into MySQL without having to have

a user account created for them. This is intended only for

testing, and to make the installation go a bit smoother.

You should remove them before moving into a production

environment.

Remove anonymous users? (Press y|Y for Yes, any other key for No) :

 ... skipping.

Normally, root should only be allowed to connect from

'localhost'. This ensures that someone cannot guess at

the root password from the network

Disallow root login remotely? (Press y|Y for Yes, any other key for No) :

 ... skipping.

By default, MySQL comes with a database named 'test' that

anyone can access. This is also intended only for testing,

and should be removed before moving into a production

environment.

Remove test database and access to it? (Press y|Y for Yes, any other key for No) :

 ... skipping.

Reloading the privilege tables will ensure that all changes

made so far will take effect immediately.

Reload privilege tables now? (Press y|Y for Yes, any other key for No) :

 ... skipping.

All done!

 

登录测试

[root@server5 mysql]# mysql -p

Enter password:

Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 9

Server version: 5.7.17 Source distribution

Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its

affiliates. Other names may be trademarks of their respective

owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show databases;

+--------------------+

| Database           |

+--------------------+

| information_schema |

| mysql              |

| performance_schema |

| sys                |

+--------------------+

4 rows in set (0.00 sec)

 

php

编译

tat jxf php-5.6.35.tar.bz2

cd php-5.6.35

./configure --prefix=/usr/local/lnmp/php --with-config-file-path=/usr/local/lnmp/php/etc --with-mysql=mysqlnd --enable-mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-openssl --with-snmp --with-gd --with-zlib --with-curl --with-libxml-dir --with-png-dir --with-jpeg-dir --with-freetype-dir --with-pear --with-gettext --with-gmp -enable-inline-optimization --enable-soap --enable-ftp --enable-sockets --enable-mbstring --enable-fpm --with-fpm-user=nginx --with-fpm-group=nginx --with-mcrypt --with-mhash          这个会出现在phpinfo()页面

yum install -y libxml2-devel

./configure --prefix=/usr/local/lnmp/php --with-config-file-path=/usr/local/lnmp/php/etc --with-mysql=mysqlnd --enable-mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-openssl --with-snmp --with-gd --with-zlib --with-curl --with-libxml-dir --with-png-dir --with-jpeg-dir --with-freetype-dir --with-pear --with-gettext --with-gmp -enable-inline-optimization --enable-soap --enable-ftp --enable-sockets --enable-mbstring --enable-fpm --with-fpm-user=nginx --with-fpm-group=nginx --with-mcrypt --with-mhash

yum install -y openssl-devel

./configure --prefix=/usr/local/lnmp/php --with-config-file-path=/usr/local/lnmp/php/etc --with-mysql=mysqlnd --enable-mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-openssl --with-snmp --with-gd --with-zlib --with-curl --with-libxml-dir --with-png-dir --with-jpeg-dir --with-freetype-dir --with-pear --with-gettext --with-gmp -enable-inline-optimization --enable-soap --enable-ftp --enable-sockets --enable-mbstring --enable-fpm --with-fpm-user=nginx --with-fpm-group=nginx --with-mcrypt --with-mhash

yum install -y curl-devel

./configure --prefix=/usr/local/lnmp/php --with-config-file-path=/usr/local/lnmp/php/etc --with-mysql=mysqlnd --enable-mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-openssl --with-snmp --with-gd --with-zlib --with-curl --with-libxml-dir --with-png-dir --with-jpeg-dir --with-freetype-dir --with-pear --with-gettext --with-gmp -enable-inline-optimization --enable-soap --enable-ftp --enable-sockets --enable-mbstring --enable-fpm --with-fpm-user=nginx --with-fpm-group=nginx --with-mcrypt --with-mhash

yum list gd

注意要和系统自带的的版本一致,否则不兼容

yum install -y gd-devel-2.0.35-11.el6.x86_64.rpm    解决各种图片格式的依赖

./configure --prefix=/usr/local/lnmp/php --with-config-file-path=/usr/local/lnmp/php/etc --with-mysql=mysqlnd --enable-mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-openssl --with-snmp --with-gd --with-zlib --with-curl --with-libxml-dir --with-png-dir --with-jpeg-dir --with-freetype-dir --with-pear --with-gettext --with-gmp -enable-inline-optimization --enable-soap --enable-ftp --enable-sockets --enable-mbstring --enable-fpm --with-fpm-user=nginx --with-fpm-group=nginx --with-mcrypt --with-mhash

yum install -y gmp-devel

./configure --prefix=/usr/local/lnmp/php --with-config-file-path=/usr/local/lnmp/php/etc --with-mysql=mysqlnd --enable-mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-openssl --with-snmp --with-gd --with-zlib --with-curl --with-libxml-dir --with-png-dir --with-jpeg-dir --with-freetype-dir --with-pear --with-gettext --with-gmp -enable-inline-optimization --enable-soap --enable-ftp --enable-sockets --enable-mbstring --enable-fpm --with-fpm-user=nginx --with-fpm-group=nginx --with-mcrypt --with-mhash

yum install -y libmcrypt-2.5.8-9.el6.x86_64.rpm  安装这个需要devel版的依赖libmcrypt-devel-2.5.8-9.el6.x86_64.rpm

./configure --prefix=/usr/local/lnmp/php --with-config-file-path=/usr/local/lnmp/php/etc --with-mysql=mysqlnd --enable-mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-openssl --with-snmp --with-gd --with-zlib --with-curl --with-libxml-dir --with-png-dir --with-jpeg-dir --with-freetype-dir --with-pear --with-gettext --with-gmp -enable-inline-optimization --enable-soap --enable-ftp --enable-sockets --enable-mbstring --enable-fpm --with-fpm-user=nginx --with-fpm-group=nginx --with-mcrypt --with-mhash

yum install -y net-snmp-devel

./configure --prefix=/usr/local/lnmp/php --with-config-file-path=/usr/local/lnmp/php/etc --with-mysql=mysqlnd --enable-mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-openssl --with-snmp --with-gd --with-zlib --with-curl --with-libxml-dir --with-png-dir --with-jpeg-dir --with-freetype-dir --with-pear --with-gettext --with-gmp -enable-inline-optimization --enable-soap --enable-ftp --enable-sockets --enable-mbstring --enable-fpm --with-fpm-user=nginx --with-fpm-group=nginx --with-mcrypt --with-mhash

这个警告可以不容易找到configure: WARNING: You will need re2c 0.13.4 or later if you want to regenerate PHP parsers.

rpm -ivh re2c-0.13.5-1.el6.x86_64.rpm

./configure --prefix=/usr/local/lnmp/php --with-config-file-path=/usr/local/lnmp/php/etc --with-mysql=mysqlnd --enable-mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-openssl --with-snmp --with-gd --with-zlib --with-curl --with-libxml-dir --with-png-dir --with-jpeg-dir --with-freetype-dir --with-pear --with-gettext --with-gmp -enable-inline-optimization --enable-soap --enable-ftp --enable-sockets --enable-mbstring --enable-fpm --with-fpm-user=nginx --with-fpm-group=nginx --with-mcrypt --with-mhash

make && make install

编译安装成功!!!

配置php

[root@server5 php-5.6.35]# cd /usr/local/lnmp/php/

[root@server5 php]# cd etc/

[root@server5 etc]# ls

pear.conf  php-fpm.conf.default

[root@server5 etc]# cp php-fpm.conf.default php-fpm.conf

[root@server5 etc]# ls

pear.conf  php-fpm.conf  php-fpm.conf.default

[root@server5 ~]# cd php-5.6.35

[root@server5 php-5.6.35]# cp php.ini-production /usr/local/lnmp/php/etc/php.ini

[root@server5 ~]# cd /usr/local/lnmp/php/etc

[root@server5 etc]# ls

pear.conf  php-fpm.conf  php-fpm.conf.default  php.ini

[root@server5 etc]# vim php.ini

[Date]

; Defines the default timezone used by the date functions

; http://php.net/date.timezone

date.timezone = Asia/Shanghai   配置时区

[root@server5 etc]# vim php-fpm.conf

[global]

; Pid file

; Note: the default prefix is /usr/local/lnmp/php/var

; Default Value: none

pid = run/php-fpm.pid  去掉注释

实现php和nginx的联动

[root@server5 etc]# id nginx

id: nginx: No such user

[root@server5 etc]# useradd -M -d /usr/local/lnmp/nginx -s /sbin/nologin  nginx

[root@server5 php-5.6.35]# cd sapi/

[root@server5 sapi]# ls

aolserver       apache_hooks  continuity  litespeed  phttpd  thttpd

apache          caudium       embed       milter     pi3web  tux

apache2filter   cgi           fpm         nsapi      roxen   webjames

apache2handler  cli           isapi       phpdbg     tests

[root@server5 sapi]# cd fpm/

[root@server5 fpm]# ls

config.m4          LICENSE        php-fpm.conf        status.html.in

CREDITS            Makefile.frag  php-fpm.conf.in     tests

fpm                php-fpm        php-fpm.service     www.conf.in

init.d.php-fpm     php-fpm.8      php-fpm.service.in

init.d.php-fpm.in  php-fpm.8.in   status.html

[root@server5 fpm]# file init.d.php-fpm

init.d.php-fpm: POSIX shell script text executable

建立php-fpm脚本文件

[root@server5 fpm]# cp init.d.php-fpm /etc/init.d/php-fpm  php-fpm是启动脚本

[root@server5 fpm]# chmod +x /etc/init.d/php-fpm

[root@server5 fpm]# /etc/init.d/php-fpm start

Starting php-fpm  done

[root@server5 fpm]# ps ax

 8263 ?        Ss     0:00 php-fpm: master process (/usr/local/lnmp/php/etc/php-fpm.conf)      

 8264 ?        S      0:00 php-fpm: pool www                                                   

 8265 ?        S      0:00 php-fpm: pool www        可以看到三个进程                                           

[root@server5 fpm]# netstat -antuple

Active Internet connections (servers and established)

Proto Recv-Q Send-Q Local Address               Foreign Address             State       User       Inode      PID/Program name  

tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      0          8443       950/sshd           

tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN      0          8658       1026/master        

tcp        0      0 127.0.0.1:9000              0.0.0.0:*                   LISTEN      0          253274     8263/php-fpm       

tcp        0      0 172.25.28.5:22              172.25.28.250:43870         ESTABLISHED 0          8927       1076/sshd          

tcp        0      0 :::22                       :::*                        LISTEN      0          8445       950/sshd           

tcp        0      0 ::1:25                      :::*                        LISTEN      0          8660       1026/master        

tcp        0      0 :::3306                     :::*                        LISTEN      27         118371     29453/mysqld       

 

 

nignx

编译nginx

[root@server5 ~]# tar zxf nginx-1.10.1.tar.gz

[root@server5 ~]# cd nginx-1.10.1

[root@server5 nginx-1.10.1]# ls

auto  CHANGES  CHANGES.ru  conf  configure  contrib  html  LICENSE  man  README  src

[root@server5 nginx-1.10.1]# vim src/core/nginx.h  去掉版本号

[root@server5 nginx-1.10.1]# vim auto/cc/gcc   去掉debug检查

[root@server5 nginx-1.10.1]# ./configure --prefix=/usr/local/lnmp/nginx  --with-http_ssl_module --with-http_stub_status_module --user=nginx --group=nginx --with-file-aio --with-threads

./configure: error: the HTTP rewrite module requires the PCRE library.

You can either disable the module by using --without-http_rewrite_module

option, or install the PCRE library into the system, or build the PCRE library

statically from the source with nginx by using --with-pcre=<path> option.

[root@server5 nginx-1.10.1]# yum install -y pcre-devel

[root@server5 nginx-1.10.1]# ./configure --prefix=/usr/local/lnmp/nginx  --with-http_ssl_module --with-http_stub_status_module --user=nginx --group=nginx --with-file-aio --with-threads

[root@server5 nginx-1.10.1]# make && make install

编译安装成功!!!

配置nginx

[root@server5 nginx-1.10.1]# cd /usr/local/lnmp/

[root@server5 lnmp]# ls

mysql  nginx  php

[root@server5 lnmp]# cd nginx/

[root@server5 nginx]# cd conf/

[root@server5 conf]# ls

fastcgi.conf            koi-utf             nginx.conf           uwsgi_params

fastcgi.conf.default    koi-win             nginx.conf.default   uwsgi_params.default

fastcgi_params          mime.types          scgi_params          win-utf

fastcgi_params.default  mime.types.default  scgi_params.default

[root@server5 conf]# vim nginx.conf

 

events {

    worker_connections  65535;

}

 

[root@server5 conf]# vim /etc/security/limits.conf

# End of file

nginx   -       nofile  65536

[root@server5 conf]# sysctl -a | grep file

fs.file-nr = 512       0     291236

fs.file-max = 291236

[root@server5 conf]# vim nginx.conf

打开php的配置

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000

        #

        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.conf;

fastcgi.conf这个文件第一行包含了fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;

        }

        # deny access to .htaccess files, if Apache's document root

 

建立nginx启动脚本,这里可以自己写,也可以使用生成的二进制文件

[root@server5 nginx]# cd sbin/

[root@server5 sbin]# ls

nginx

[root@server5 sbin]# pwd

/usr/local/lnmp/nginx/sbin

[root@server5 sbin]# cd

[root@server5 ~]# vim .bash_profile

# User specific environment and startup programs

PATH=$PATH:$HOME/bin:/usr/local/lnmp/mysql/bin:/usr/local/lnmp/nginx/sbin

[root@server5 ~]# source .bash_profile

测试nginx

[root@server5 ~]# nginx

[root@server5 ~]# nginx -t

nginx: the configuration file /usr/local/lnmp/nginx/conf/nginx.conf syntax is ok

nginx: configuration file /usr/local/lnmp/nginx/conf/nginx.conf test is successful

建立nginx发布页面index.php

[root@server5 ~]# cd /usr/local/lnmp/nginx/

[root@server5 nginx]# ls

client_body_temp  conf  fastcgi_temp  html  logs  proxy_temp  sbin  scgi_temp  uwsgi_temp

[root@server5 nginx]# cd html/

[root@server5 html]# ls

50x.html  index.html

[root@server5 html]# vim index.php

<?php

phpinfo()

?>

这里地址栏需要输入index.php     Configure Command 就是我们php ./configure内容

使index.php成为默认发布页面

[root@server5 html]# cd ..

[root@server5 nginx]# ls

client_body_temp  conf  fastcgi_temp  html  logs  proxy_temp  sbin  scgi_temp  uwsgi_temp

[root@server5 nginx]# cd conf/

[root@server5 conf]# ls

fastcgi.conf            koi-utf             nginx.conf           uwsgi_params

fastcgi.conf.default    koi-win             nginx.conf.default   uwsgi_params.default

fastcgi_params          mime.types          scgi_params          win-utf

fastcgi_params.default  mime.types.default  scgi_params.default

[root@server5 conf]# vim nginx.conf

        #access_log  logs/host.access.log  main;

        location / {

            root   html;

            index  index.php index.html index.htm;   配置为先找index.php

        }

        #error_page  404              /404.html;

apache既有index.php又有index.html那么先找index.php,无须配置,nginx不同

直接访问ip

 

Discuz!

yum install -y unzip

unzip Discuz_X3.2_SC_UTF8.zip -d /usr/local/lnmp/nginx/html/

[root@server5 ~]# cd /usr/local/lnmp/

[root@server5 lnmp]# ls

mysql  nginx  php

[root@server5 lnmp]# cd nginx/

[root@server5 nginx]# ls

client_body_temp  html        sbin

conf              logs        scgi_temp

fastcgi_temp      proxy_temp  uwsgi_temp

[root@server5 nginx]# cd html/

[root@server5 html]# ls

50x.html  index.html  index.php  readme  upload  utility

[root@server5 html]# cd upload/

[root@server5 upload]# ls

admin.php    crossdomain.xml  install     source

api          data             member.php  static

api.php      favicon.ico      misc.php    template

archiver     forum.php        plugin.php  uc_client

config       group.php        portal.php  uc_server

connect.php  home.php         robots.txt  userapp.php

cp.php       index.php        search.php

[root@server5 html]# mv upload/ bbs

 

安装测试

172.25.28.5/bbs/install

解决不可写的问题

[root@server5 bbs]# chmod 777 config/ data/ uc_server/ uc_client/ -R  谁需要给谁

[root@server5 bbs]# /etc/init.d/mysqld start   配置数据库时,必须要启动,可以登录

Starting MySQL SUCCESS!

[root@server5 bbs]# cd /usr/local/lnmp/php/etc/

[root@server5 etc]# ls

pear.conf  php-fpm.conf  php-fpm.conf.default  php.ini

[root@server5 etc]# vim php.ini

添加.sock文件路径

 

[root@server5 etc]# /etc/init.d/php-fpm reload  必须要重新加载

Reload service php-fpm  done

解决权限问题,主要是对mysql的data数据目录

[root@server5 etc]# cd /usr/local/lnmp/mysql

[root@server5 mysql]# ll

total 60

drwxr-xr-x  2 root  root  4096 Aug  5 11:51 bin

-rw-r--r--  1 root  root 17987 Nov 28  2016 COPYING

drwxr-x---  5 mysql root  4096 Aug  5 15:17 data    其他人没有任何权力

drwxr-xr-x  2 root  root  4096 Aug  5 10:19 docs

drwxr-xr-x  3 root  root  4096 Aug  5 10:19 include

drwxr-xr-x  4 root  root  4096 Aug  5 10:19 lib

drwxr-xr-x  4 root  root  4096 Aug  5 10:19 man

drwxr-xr-x 10 root  root  4096 Aug  5 10:20 mysql-test

-rw-r--r--  1 root  root  2478 Nov 28  2016 README

drwxr-xr-x 28 root  root  4096 Aug  5 10:20 share

drwxr-xr-x  2 root  root  4096 Aug  5 10:20 support-files

[root@server5 mysql]# chmod 755 data/

[root@server5 mysql]# cd data/

[root@server5 data]# ll

total 122940

-rw-r----- 1 mysql root        56 Aug  5 11:08 auto.cnf

-rw-r----- 1 mysql mysql      301 Aug  5 11:11 ib_buffer_pool

-rw-r----- 1 mysql root  12582912 Aug  5 11:13 ibdata1

-rw-r----- 1 mysql root  50331648 Aug  5 11:13 ib_logfile0

-rw-r----- 1 mysql root  50331648 Aug  5 11:08 ib_logfile1

-rw-r----- 1 mysql mysql 12582912 Aug  5 11:13 ibtmp1

drwxr-x--- 2 mysql root      4096 Aug  5 11:08 mysql

srwxrwxrwx 1 mysql mysql        0 Aug  5 11:13 mysql.sock

-rw------- 1 mysql mysql        6 Aug  5 11:13 mysql.sock.lock

drwxr-x--- 2 mysql root      4096 Aug  5 11:08 performance_schema

-rw-r----- 1 mysql root     20705 Aug  5 15:17 server5.err

-rw-r----- 1 mysql mysql        6 Aug  5 11:13 server5.pid

drwxr-x--- 2 mysql root     12288 Aug  5 11:08 sys

此时可以正常安装了

删除Discuz的默认安装页面

[root@server5 data]# pwd

[root@server5 nginx]# cd html/bbs

[root@server5 bbs]# ls

admin.php    crossdomain.xml  install     source

api          data             member.php  static

api.php      favicon.ico      misc.php    template

archiver     forum.php        plugin.php  uc_client

config       group.php        portal.php  uc_server

connect.php  home.php         robots.txt  userapp.php

cp.php       index.php        search.php

[root@server5 bbs]# rm -rf index.php

 

 

memcache

[root@server5 ~]# tar zxf memcache-2.2.5.tgz

[root@server5 ~]# cd memcache-2.2.5

[root@server5 memcache-2.2.5]# ls

config9.m4                  memcache.php

config.m4                   memcache_queue.c

config.w32                  memcache_queue.h

CREDITS                     memcache_session.c

example.php                 memcache_standard_hash.c

memcache.c                  php_memcache.h

memcache_consistent_hash.c  README

memcache.dsp

[root@server5 memcache-2.2.5]# cd /usr/local/

[root@server5 local]# cd lnmp/

[root@server5 lnmp]# cd php/

[root@server5 php]# ls

bin  etc  include  lib  php  sbin  var

[root@server5 php]# cd bin/

[root@server5 bin]# ls

pear     pecl  phar.phar  php-cgi     phpize

peardev  phar  php        php-config

[root@server5 bin]# pwd

/usr/local/lnmp/php/bin

[root@server5 bin]# cd

[root@server5 ~]# vim .bash_profile   配置环境变量

[root@server5 ~]# source .bash_profile

 

[root@server5 ~]# cd memcache-2.2.5

[root@server5 memcache-2.2.5]# ls

config9.m4                  memcache.php

config.m4                   memcache_queue.c

config.w32                  memcache_queue.h

CREDITS                     memcache_session.c

example.php                 memcache_standard_hash.c

memcache.c                  php_memcache.h

memcache_consistent_hash.c  README

memcache.dsp

[root@server5 memcache-2.2.5]# phpize   

phpize的作用可以这样理解:侦测环境(phpize工具是在php安装目录下,基于这点phpize对应了当时的php环境,所以是要根据该php的配置情况生成对应的configure文件),建立一个configure文件。必须在一个目录下去运行phpize。那么phpize就知道你的的环境是哪个目录,并且configure文件建立在该目录下。

Configuring for:

PHP Api Version:         20131106

Zend Module Api No:      20131226

Zend Extension Api No:   220131226

[root@server5 memcache-2.2.5]# ls

acinclude.m4    ltmain.sh

aclocal.m4      Makefile.global

autom4te.cache  memcache.c

build           memcache_consistent_hash.c

config9.m4      memcache.dsp

config.guess    memcache.php

config.h.in     memcache_queue.c

config.m4       memcache_queue.h

config.sub      memcache_session.c

configure       memcache_standard_hash.c

configure.in    missing

config.w32      mkinstalldirs

CREDITS         php_memcache.h

example.php     README

install-sh      run-tests.php

[root@server5 memcache-2.2.5]# ./configure

[root@server5 memcache-2.2.5]# make

[root@server5 memcache-2.2.5]# make install

Installing shared extensions:     /usr/local/lnmp/php/lib/php/extensions/no-debug-non-zts-20131226/

编译安装memcaceh模块成功

 

[root@server5 memcache-2.2.5]# ll /usr/local/lnmp/php/lib/php/extensions/no-debug-non-zts-20131226/

total 1920

-rwxr-xr-x 1 root root  260483 Aug  5 16:14 memcache.so

-rwxr-xr-x 1 root root 1112440 Aug  5 13:25 opcache.a

-rwxr-xr-x 1 root root  589036 Aug  5 13:25 opcache.so

[root@server5 memcache-2.2.5]# cd /usr/local/lnmp/php/lib/php/extensions

[root@server5 extensions]# ls

no-debug-non-zts-20131226

[root@server5 extensions]# cd no-debug-non-zts-20131226/

[root@server5 no-debug-non-zts-20131226]# ls

memcache.so  opcache.a  opcache.so

[root@server5 no-debug-non-zts-20131226]# php -m | grep memcache

  -m               Show compiled in modules

此时memcache还没有加入php模块

 

编辑php配置文件

[root@server5 local]# cd lnmp/php/etc/

[root@server5 etc]# ls

pear.conf  php-fpm.conf  php-fpm.conf.default  php.ini

[root@server5 etc]# vim php.ini

按照格式写入动态模块

[root@server5 etc]# /etc/init.d/php-fpm reload  重启

Reload service php-fpm  done

[root@server5 etc]# php -m | grep memcache

memcache

 

安装memcached软件

[root@server5 ~]# yum install -y memcached

[root@server5 ~]# /etc/init.d/memcached start

Starting memcached:                                        [  OK  ]

[root@server5 ~]# netstat -antlp

Active Internet connections (servers and established)

Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name  

tcp        0      0 0.0.0.0:11211               0.0.0.0:*                   LISTEN      14805/memcached     

tcp        0      0 0.0.0.0:80                  0.0.0.0:*                   LISTEN      11941/nginx        

tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      950/sshd           

tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN      1026/master        

tcp        0      0 127.0.0.1:9000              0.0.0.0:*                   LISTEN      14778/php-fpm      

tcp        0      0 172.25.28.5:22              172.25.28.250:47386         ESTABLISHED 8268/sshd          

tcp        0      0 172.25.28.5:56086           172.25.28.250:80            TIME_WAIT   -                  

tcp        0      0 :::11211                    :::*                        LISTEN      14805/memcached    

tcp        0      0 :::22                       :::*                        LISTEN      950/sshd           

tcp        0      0 ::1:25                      :::*                        LISTEN      1026/master        

tcp        0      0 :::3306                     :::*                        LISTEN      29453/mysqld       

 

[root@server5 ~]# cd memcache-2.2.5

[root@server5 memcache-2.2.5]# cp memcache.php example.php  /usr/local/lnmp/nginx/html/    memcache的首页和测试页面放到nginx默认发布目录

[root@server5 memcache-2.2.5]# cd /usr/local/lnmp/nginx/html/

[root@server5 html]# ls

50x.html  example.php  index.php     readme

bbs       index.html   memcache.php  utility

浏览器访问测试页面172.25.28.5/example.php

[root@server5 html]# vim memcache.php

配置密码

可以是多个服务器,但这里我们只有一个

[root@server5 html]# /etc/init.d/php-fpm reload

Reload service php-fpm  done

 

访问测试 172.25.28.5/memcache.php 输入密码

测试时可以打开网站,刷新网页,Hits命中率会提高

 

 

客户端压力对比测试

ab是apachebench命令的缩写。

ab是apache自带的压力测试工具。ab非常实用,它不仅可以对apache服务器进行网站访问压力测试,也可以对或其它类型的服务器进行压力测试。比如nginx、tomcat、IIS等

[root@foundation28 pub]# ab -c 10 -n 1000 http://172.25.28.5/index.php

This is ApacheBench, Version 2.3 <$Revision: 1430300 $>

Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/

Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking 172.25.28.5 (be patient)

Completed 100 requests

Completed 200 requests

Completed 300 requests

Completed 400 requests

Completed 500 requests

Completed 600 requests

Completed 700 requests

Completed 800 requests

Completed 900 requests

Completed 1000 requests

Finished 1000 requests

Server Software:        nginx

Server Hostname:        172.25.28.5

Server Port:            80

Document Path:          /index.php

Document Length:        84805 bytes

Concurrency Level:      10

Time taken for tests:   1.221 seconds

Complete requests:      1000

Failed requests:        96

   (Connect: 0, Receive: 0, Length: 96, Exceptions: 0)

Write errors:           0

Total transferred:      84960900 bytes

HTML transferred:       84804900 bytes

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

Time per request:       12.210 [ms] (mean)

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

Transfer rate:          67952.53 [Kbytes/sec] received

Connection Times (ms)

              min  mean[+/-sd] median   max

Connect:        0    0   0.8      0       7

Processing:     3   12   3.4     11      28

Waiting:        2    9   3.2     10      22

Total:          3   12   3.3     12      28

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

  50%     12

  66%     13

  75%     14

  80%     15

  90%     17

  95%     18

  98%     19

  99%     21

 100%     28 (longest request)

 

[root@foundation28 pub]# ab -c 10 -n 1000 http://172.25.28.5/example.php

This is ApacheBench, Version 2.3 <$Revision: 1430300 $>

Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/

Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking 172.25.28.5 (be patient)

Completed 100 requests

Completed 200 requests

Completed 300 requests

Completed 400 requests

Completed 500 requests

Completed 600 requests

Completed 700 requests

Completed 800 requests

Completed 900 requests

Completed 1000 requests

Finished 1000 requests

Server Software:        nginx

Server Hostname:        172.25.28.5

Server Port:            80

Document Path:          /example.php

Document Length:        123 bytes

Concurrency Level:      10

Time taken for tests:   0.473 seconds

Complete requests:      1000

Failed requests:        0

Write errors:           0

Total transferred:      279000 bytes

HTML transferred:       123000 bytes

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

Time per request:       4.728 [ms] (mean)

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

Transfer rate:          576.31 [Kbytes/sec] received

Connection Times (ms)

              min  mean[+/-sd] median   max

Connect:        0    1   0.6      0       4

Processing:     1    4   1.5      4      12

Waiting:        1    4   1.5      4      12

Total:          2    5   1.5      4      16

WARNING: The median and mean for the initial connection time are not within a normal deviation

        These results are probably not that reliable.

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

  50%      4

  66%      5

  75%      5

  80%      6

  90%      6

  95%      8

  98%      9

  99%     10

 100%     16 (longest request)

对比可以发现memcache缓存有很好的作用!!!

 

OpenResty

server5

nginx -s stop    停止nginx

tar zxf openresty-1.13.6.1.tar.gz   openresty自带nginx

cd openresty-1.13.6.1

 ./configure --prefix=/usr/local/lnmp/openresty --with-http_ssl_module --with-http_stub_status_module --user=nginx --group=nginx --with-file-aio --with-threads

gmake

gmake install

编译安装成功!!!

 

修改配置文件

(https://www/cnblogs.com/qiangxia/p/4892104.html )

[root@server5 openresty-1.13.6.1]# cd /usr/local/lnmp/openresty/

[root@server5 openresty]# ls

bin  COPYRIGHT  luajit  lualib  nginx  pod  resty.index  site

[root@server5 openresty]# cd nginx/

[root@server5 nginx]# ls

conf  html  logs  sbin

[root@server5 nginx]# cd conf/

[root@server5 conf]# vim nginx.conf

#user  nobody;

worker_processes  1;

#error_log  logs/error.log;

#error_log  logs/error.log  notice;

#error_log  logs/error.log  info;

#pid        logs/nginx.pid;

 

events {

    worker_connections  66535;

}

 

http {

        upstream memcache {

        server localhost:11211;

        keepalive 512 ;   #这里不能加文档里面的single

        }

    include       mime.types;

    default_type  application/octet-stream;

 

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '

    #                  '$status $body_bytes_sent "$http_referer" '

    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

    sendfile        on;

    #tcp_nopush     on;

    #keepalive_timeout  0;

    keepalive_timeout  65;

    #gzip  on;

    server {

        listen       80;

        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {

            root   html;

            index  index.html index.htm;

        }

        location /memc {

        internal;

        memc_connect_timeout 100ms;

        memc_send_timeout 100ms;

        memc_read_timeout 100ms;

        set $memc_key $query_string;

        set $memc_exptime 300;

        memc_pass memcache;

}

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html

        #

        error_page   500 502 503 504  /50x.html;

        location = /50x.html {

            root   html;

        }

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000

        #

        location ~ \.php$ {

        set $key $uri$args;

        srcache_fetch GET /memc $key;

        srcache_store PUT /memc $key;

            root           html;

            fastcgi_pass   127.0.0.1:9000;

            fastcgi_index  index.php;

           # fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;

            include        fastcgi.conf;

        }

        # deny access to .htaccess files, if Apache's document root

        # concurs with nginx's one

        #

        #location ~ /\.ht {

        #    deny  all;

 

[root@server5 conf]# /usr/local/lnmp/openresty/nginx/sbin/nginx -t

nginx: the configuration file /usr/local/lnmp/openresty/nginx/conf/nginx.conf syntax is ok

nginx: configuration file /usr/local/lnmp/openresty/nginx/conf/nginx.conf test is successful

 

启动openresty自带的nginx

[root@server5 conf]# /usr/local/lnmp/openresty/nginx/sbin/nginx   

[root@server5 nginx]# ls

client_body_temp  fastcgi_temp  logs        sbin       uwsgi_temp

conf              html          proxy_temp  scgi_temp

[root@server5 nginx]# cd html/

[root@server5 html]# ls

50x.html  index.html

[root@server5 html]# cp /usr/local/lnmp/nginx/html/example.php .

[root@server5 html]# cp /usr/local/lnmp/nginx/html/index.php .

复制文件准备压力测试

 

客户压力对比测试端

[root@foundation28 pub]# ab -c 10 -n 1000 http://172.25.28.5/index.php

This is ApacheBench, Version 2.3 <$Revision: 1430300 $>

Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/

Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking 172.25.28.5 (be patient)

Completed 100 requests

Completed 200 requests

Completed 300 requests

Completed 400 requests

Completed 500 requests

Completed 600 requests

Completed 700 requests

Completed 800 requests

Completed 900 requests

Completed 1000 requests

Finished 1000 requests

Server Software:        openresty/1.13.6.1

Server Hostname:        172.25.28.5

Server Port:            80

Document Path:          /index.php

Document Length:        86854 bytes

Concurrency Level:      10

Time taken for tests:   0.340 seconds

Complete requests:      1000

Failed requests:        0

Write errors:           0

Total transferred:      87046000 bytes

HTML transferred:       86854000 bytes

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

Time per request:       3.396 [ms] (mean)

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

Transfer rate:          250283.71 [Kbytes/sec] received

Connection Times (ms)

              min  mean[+/-sd] median   max

Connect:        0    0   0.2      0       2

Processing:     1    3   1.1      3      11

Waiting:        0    2   1.0      2       9

Total:          1    3   1.1      3      11

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

  50%      3

  66%      4

  75%      4

  80%      4

  90%      4

  95%      5

  98%      6

  99%      9

 100%     11 (longest request)

[root@foundation28 pub]# ab -c 10 -n 1000 http://172.25.28.5/example.php

This is ApacheBench, Version 2.3 <$Revision: 1430300 $>

Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/

Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking 172.25.28.5 (be patient)

Completed 100 requests

Completed 200 requests

Completed 300 requests

Completed 400 requests

Completed 500 requests

Completed 600 requests

Completed 700 requests

Completed 800 requests

Completed 900 requests

Completed 1000 requests

Finished 1000 requests

Server Software:        openresty/1.13.6.1

Server Hostname:        172.25.28.5

Server Port:            80

Document Path:          /example.php

Document Length:        123 bytes

Concurrency Level:      10

Time taken for tests:   0.129 seconds

Complete requests:      1000

Failed requests:        0

Write errors:           0

Total transferred:      313000 bytes

HTML transferred:       123000 bytes

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

Time per request:       1.289 [ms] (mean)

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

Transfer rate:          2370.54 [Kbytes/sec] received

Connection Times (ms)

              min  mean[+/-sd] median   max

Connect:        0    0   0.2      0       2

Processing:     0    1   0.5      1       5

Waiting:        0    1   0.5      1       5

Total:          0    1   0.5      1       5

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

  50%      1

  66%      1

  75%      1

  80%      1

  90%      2

  95%      2

  98%      3

  99%      3

 100%      5 (longest request)

可以发现openstry有更好的缓存性能!

 

猜你喜欢

转载自blog.csdn.net/ha_weii/article/details/81460576
今日推荐