阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

编译安装LAMP对其性能压力测试

105次阅读
没有评论

共计 21610 个字符,预计需要花费 55 分钟才能阅读完成。

本文主要描述了 apache,php,MySQL 的安装方式,并结合 xcache 对 php 进行加速,使用 ab 命令对 php 进行压力性能测试。

Ubuntu 13.04 安装 LAMP\Vsftpd\Webmin\phpMyAdmin 服务及设置 http://www.linuxidc.com/Linux/2013-06/86250.htm

CentOS 5.9 下编译安装 LAMP(Apache 2.2.44+MySQL 5.6.10+PHP 5.4.12) http://www.linuxidc.com/Linux/2013-03/80333p3.htm

RedHat 5.4 下 Web 服务器架构之源码构建 LAMP 环境及应用 PHPWind http://www.linuxidc.com/Linux/2012-10/72484p2.htm

LAMP 源码环境搭建 WEB 服务器 Linux+Apache+MySQL+PHP http://www.linuxidc.com/Linux/2013-05/84882.htm

本次环境;都是在一台主机上实现,系统为 Centos6.5_64 位

一、先安装 httpd-2.4.9;

httpd 安装后的配置在此不做详细说明,详情点击;http://www.linuxidc.com/Linux/2014-03/98761.htm

编译安装 apr

# tar xf apr-1.5.0.tar.bz2

# cd apr-1.5.0

# ./configure –prefix=/usr/local/apr

# make && make install

编译安装 apr-util

# tar xf apr-util-1.5.3.tar.bz2

# cd apr-util-1.5.3

# ./configure –prefix=/usr/local/apr-util –with-apr=/usr/local/apr

# make && make instal

编译安装 httpd-2.4.9

# tar xf httpd-2.4.9.tar.bz2

# cd httpd-2.4.9

# ./configure –prefix=/usr/local/apache –sysconfdir=/etc/httpd –enable-so –enable-ssl –enable-cgi –enable-rewrite –with-zlib –with-pcre –with-apr=/usr/local/apr –with-apr-util=/usr/local/apr-util –enables-modules=most –enable-mpms-shared=most –with-mpm=event

# make && make install

——————————————————————————–

二、编译安装 mysql;

mysql 应该把它的数据放在一个特殊的目录中,而且应该是个称独立的设备,因此需要创建一个新的分区来存放数据,做成 LVM 卷, 挂载到一个空的目录中,并且要实现开机自动挂载

编译安装 LAMP 对其性能压力测试

1、创建一个大小为 10G 的分区修改分区 ID 为 8e(lvm);

把新建分区做成逻辑卷并格式化挂载至相应目录中;如下

[root@linux ~]# vgcreate /dev/sda3

  Please enter a physical volume path

  Run `vgcreate –help’ for more information.

[root@linux ~]# pvcreate /dev/sda3

  Physical volume “/dev/sda3” successfully created

[root@linux ~]# vgcreate myvg /dev/sda3

  Volume group “myvg” successfully created

[root@linux ~]# lvcreate -L 10G -n mydata myvg

  Logical volume “mydata” created

格式化

[root@linux ~]# mke2fs -t ext4 /dev/myvg/mydata

创建挂载目录

[root@linux ~]# mkdir /data

写进配置文件里实现开机自动挂载

[root@linux ~]# vim /etc/fstab

/dev/myvg/mydata    /data    ext4    default    0 0

查看挂载目录;

[root@linux ~]# ls /data

lost+found  mydata

2、新建用户以安全的方式运行 mysql;

[root@linux data]# groupadd -r mysql
[root@linux data]# useradd -g mysql -l -s /sbin/nologin -M -d /mydata/data mysql
[root@linux data]# chown -R mysql:mysql mydata 

3、现在可以正式安装 mysql 数据了;

将 mysql 解压至 /usr/src 目录中

[root@linux xf]# tar xf mysql-5.5.33-linux2.6-x86_64.tar.gz -C /usr/src

[root@linux xf]# cd /usr/src/

[root@linux src]# ls

debug  kernels  mysql-5.5.33-linux2.6-x86_64

4、创建 mysql 创建一个链接文件,而且链接文件最好不要改名;

[root@linux src]# mv /usr/src/mysql-5.5.33-linux2.6-x86_64 /usr/local

[root@linux src]# cd /usr/local/

[root@linux local]# ln -sv mysql-5.5.33-linux2.6-x86_64 mysql

`mysql’ -> `mysql-5.5.33-linux2.6-x86_64′

5、修改 mysql 的宿主宿组,并对数据库存初始化;

[root@linux mysql]# chown -R mysql:mysql .  修改当前当录及子目录的宿主宿组

[root@linux mysql]# scripts/mysql_install_db –datadir=/data/mydata/ –user=mysql    初始化数据库

Installing MySQL system tables…

OK

Filling help tables…

OK

To start mysqld at boot time you have to copy

support-files/mysql.server to the right place for your system

PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !

To do so, start the server, then issue the following commands:

./bin/mysqladmin -u root password ‘new-password’

./bin/mysqladmin -u root -h linux.yang.com password ‘new-password’

Alternatively you can run:

./bin/mysql_secure_installation

which will also give you the option of removing the test

databases and anonymous user created by default.  This is

strongly recommended for production servers.

See the manual for more instructions.

You can start the MySQL daemon with:

cd . ; ./bin/mysqld_safe &

You can test the MySQL daemon with mysql-test-run.pl

cd ./mysql-test ; perl mysql-test-run.pl

Please report any problems with the ./bin/mysqlbug script!

6、为 mysql 提供主配置文件,拷贝到 /etc/ 目录中,事先 /etc/ 目录下会有一个相同名的数据文件,覆盖即可,而后编辑 /etc/my,conf 这个文件,添加存放数据的存放目录

[root@linux mysql]# cp support-files/my-large.cnf /etc/my.cnf

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

[root@linux mysql]# ls /etc/my.cnf

/etc/my.cnf

[root@linux mysql]# vim /etc/my.cnf

thread_concurrency = 4  表示值为当前主机 CPU 的个数乘以 2

datadir = /date/mydata  数据库的存放位置

7、为 mysql 提供 sysv 脚本,还好 mysql 自身提供有脚本,只需将其复制下来,存放至 /init.d/ 目录中;

[root@linux mysql]# cd /usr/local/mysql

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

[root@linux mysql]# chmod +x /etc/rc.d/init.d/mysqld

添加至服务列表

[root@linux mysql]# chkconfig –add mysqld

[root@linux mysql]#

[root@linux mysql]# chkconfig mysqld on

8、现在可以启动 mysqlb

[root@linux mysql]# service mysqld start

Starting MySQL……                                      [OK]

[root@linux mysql]# mysql

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

Your MySQL connection id is 1

Server version: 5.5.33-log MySQL Community Server (GPL)

Copyright (c) 2000, 2013, 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 |

| test              |

+——————–+

4 rows in set (0.00 sec)

mysql> \q

Bye

启动 mysql 后会在 /data/mydata/ 目录下生成数据库文件,并且会在 /tmp/ 目录下,有一个特殊文件,套接字文件,是用于如果客户端在本机,服务端也在本机时用到的一种特别高效的通信方式;

9、输入 mysql 的头文件至系统头文件路径

    #ln -sv /usr/local/mysql/include /usr/include/mysql

10、输入 mysql 的库文件给系统库查找路径;

    #echo “/usr/local/mysql/lib’ > /etc/ld.so.conf.d/mysql.conf

    ldconfig    让系统重读库文件

    [root@linux mysql]# ldconfig -p | grep mysql
    libtcmalloc_minimal.so.0 (libc6,x86-64) => /usr/local/mysql/lib/libtcmalloc_minimal.so.0
    libmysqlclient_r.so.16 (libc6,x86-64) => /usr/lib64/mysql/libmysqlclient_r.so.16
    libmysqlclient.so.18 (libc6,x86-64) => /usr/local/mysql/lib/libmysqlclient.so.18
    libmysqlclient.so.16 (libc6,x86-64) => /usr/lib64/mysql/libmysqlclient.so.16
    libmysqlclient.so (libc6,x86-64) => /usr/local/mysql/lib/libmysqlclient.so

11、修改 PATH 环境变量,让系统可以直接使用 mysql 的相关命令;

    vim /etc/profile.d/mysql.sh  后面这个 mysql.sh 是自定义的,但一定得是.sh 结尾

    export PATH=/usr/local/mysql/bin:$PATH

    source /etc/profile.d/mysql.sh  重读文件即可生效

12、安装完成 mysql 需要删除 mysql 的匿名用户,给管理员加密码;

    直接执行 mysql 命令即可进入 mysql;

mysql> use mysql;  设置默认表

Database changed

mysql> select user,host,password from user;    查看

+——+—————-+———-+

| user | host          | password |

+——+—————-+———-+

| root | localhost      |          |

| root | linux.yang.com |          |

| root | 127.0.0.1      |          |

| root | ::1            |          |

+——+—————-+———-+

4 rows in set (0.00 sec)

mysql> UPDATE user SET password=PASSWORD(‘redhat’) WHERE user=’root’;    更改所有用户的密码为 redhat

Query OK, 4 rows affected (0.00 sec)

Rows matched: 4  Changed: 4  Warnings: 0

mysql> select user,host,password from user;

+——+—————-+——————————————-+

| user | host          | password                                  |

+——+—————-+——————————————-+

| root | localhost      | *84BB5DF4823DA319BBF86C99624479A198E6EEE9 |

| root | linux.yang.com | *84BB5DF4823DA319BBF86C99624479A198E6EEE9 |

| root | 127.0.0.1      | *84BB5DF4823DA319BBF86C99624479A198E6EEE9 |

| root | ::1            | *84BB5DF4823DA319BBF86C99624479A198E6EEE9 |

+——+—————-+——————————————-+

4 rows in set (0.00 sec)

mysql> flush privileges;

Query OK, 0 rows affected (0.00 sec)

至此安装 mysql 数据库完成

三、编译安装 php-5.4.26.tar.bz2 并且有 ab 命令进行性能测试

1、先解决依赖关系;安装如下两个包组;

    # yum -y groupinstall “Desktop Platform Development”
  # yum -y install bzip2-devel libmcrypt-devel

2、解压 php-5.4.26.tar.bz2 并编译安装;

[root@linux xf]# cd php-5.4.26

[root@linux php-5.4.26]# ./configure –prefix=/usr/local/php –with-MySQL=/usr/local/mysql –with-openssl –with-mysqli=/usr/local/mysql/bin/mysql_config –enable-mbstring –with-freetype-dir –with-jpeg-dir –with-png-dir –with-zlib –with-libxml-dir=/usr –enable-xml  –enable-sockets –with-apxs2=/usr/local/apache/bin/apxs –with-mcrypt  –with-config-file-path=/etc –with-config-file-scan-dir=/etc/php.d –with-bz2  –enable-maintainer-zts

[root@linux php-5.4.26]# make && make install

编译安装的选项;

–prefix=/usr/local/php  php 的安装目当

–with-mysql=/usr/local/mysql 指向到哪找去找 mysql 的数据文件

–with-openssl  没有写路径说明 openssl 安装到默认路径下

–with-mysqli=/usr/local/mysql/bin/mysql_confi  这是 mysql 的另外一种通信机制

–enable-mbstring 支持多字节字符串

–with-freetype-dir 字体解析工具

–with-jpeg-dir –with-png-dir  支持处理图片的格式

–with-zlib  表示在互联网上传输时可压缩

–with-libxml-dir=/usr  –enable-xml 支持本地 xml 脚本语言

–enable-sockets 支持 sockets 通信

–with-apxs2=/usr/local/apache/bin/apxs  apxs 就是实现 apache 扩展功能的,使 php 和 web 服务结合使用的

–with-config-file-path=/etc  配置文件存放目录

–with-config-file-scan-dir=/etc/php.d  扫描 /etc/ 所有以 php.d 结尾的文件,当作配置文件的一部分

–with-bz2  支持 bz2 压缩格式

[root@linux php]# ls  查看安装目录是否生成

bin  etc  include  lib  php

[root@linux php]# cd bin/

[root@linux bin]# ls

pear  peardev  pecl  phar  phar.phar  php  php-cgi  php-config  phpize

[root@linux bin]#

3、为 php 提供配置文件;

  php.ini-production(生产环境使用的文件)

    php.ini-development(开发环境使用的文件)

    cp php.ini-production /etc/php.ini    复制并重命名

4、纺辑 apache 的配置文件 /etc/httpd24/httpd.conf/ 文件,让 apache 支持 php;

    vim /etc/httpd24/httpd.conf 写入哪下内容

        1、查看 LoadModule php5_module  modules/libphp5.so  模块是否存在

        2、AddType application/x-httpd-php  .php
            AddType application/x-httpd-php-source  .phps

        2、定位至 DirectoryIndex index.html
            DirectoryIndex  index.php  index.html  把默认页面 index.php 写到 index.html 前面

    退出重启服务

5、到 /usr/local/apache/htdocs/ 目录下将 index.html 网页文件修为 index.php 格式;写入下面内容;

    <?php

            phpinfo();

    ?>

 编译安装 LAMP 对其性能压力测试

测试成功,以可以成功连接 php 页面;下面写个小的脚本文件到 index.php 里,测试是否可以成功连接数据库;

    <?php
      $link = mysql_connect(‘127.0.0.1′,’root’,’RedHat’);  $link 是一个函数 127.0.0.0 是数据库服务器 redhat 为密码
      if ($link)
        echo “Success…”;    连接成功就显示 Success…
      else    否则
        echo “Failure…”;    显示 Failure…

      mysql_close();     
  ?>

 编译安装 LAMP 对其性能压力测试

6、安装 phpMyAdmin-4.0.5-all-languages.zip 测试是否可以连接数据库,为下面安装 xcache 加速性能测试使用

    unzip phpMyAdmin-4.0.5-all-languages.zip

  cp -r phpMyAdmin-4.0.5-all-languages /usr/local/apache/htdocs/pam

 编译安装 LAMP 对其性能压力测试

7、使用 ab 命令对 php 页面进行性能压力测试;(这里不做过多的描述)

 ab 是 Apache 超文本传输协议 (HTTP) 的性能测试工具。是用来描绘当前所安装的 Apache 的执行性能,主要是显示安装的 Apache 每秒可以处理多少个请求.

-c 并发连接数

-n 总共多少个请求

[root@linux xf]# ab -c 10 -n 1000 http://172.16.34.1/pam/index.php ab 命令所发出的请求

Server Software:        Apache/2.4.9
Server Hostname:        172.16.34.1
Server Port:            80

Document Path:          /pam/index.php
Document Length:        7793 bytes

Concurrency Level:      10      表示并发请示数为 10
Time taken for tests:  49.827 seconds  请求处理花费的总时间
Complete requests:      1000    总请求数为 1000
Failed requests:        0  失败的请求数
Total transferred:      8922590 bytes  所有请求响应数据长度的总和
HTML transferred:      7793000 bytes  所有请求响应数据中正文数据总和
Requests per second:    20.07 [#/sec] (mean)  平均每秒的请求数(这个很重要,需多关注)
Time per request:      498.269 [ms] (mean)  平均每个请求所消耗的时间
Time per request:      49.827 [ms]  平均请求等待的时间
Transfer rate:          174.87 [Kbytes/sec] received  这些请求在单位时间从服务器获取的数据长度

至此安装 php 完成

本文主要描述了 apache,php,MySQL 的安装方式,并结合 xcache 对 php 进行加速,使用 ab 命令对 php 进行压力性能测试。

Ubuntu 13.04 安装 LAMP\Vsftpd\Webmin\phpMyAdmin 服务及设置 http://www.linuxidc.com/Linux/2013-06/86250.htm

CentOS 5.9 下编译安装 LAMP(Apache 2.2.44+MySQL 5.6.10+PHP 5.4.12) http://www.linuxidc.com/Linux/2013-03/80333p3.htm

RedHat 5.4 下 Web 服务器架构之源码构建 LAMP 环境及应用 PHPWind http://www.linuxidc.com/Linux/2012-10/72484p2.htm

LAMP 源码环境搭建 WEB 服务器 Linux+Apache+MySQL+PHP http://www.linuxidc.com/Linux/2013-05/84882.htm

本次环境;都是在一台主机上实现,系统为 Centos6.5_64 位

一、先安装 httpd-2.4.9;

httpd 安装后的配置在此不做详细说明,详情点击;http://www.linuxidc.com/Linux/2014-03/98761.htm

编译安装 apr

# tar xf apr-1.5.0.tar.bz2

# cd apr-1.5.0

# ./configure –prefix=/usr/local/apr

# make && make install

编译安装 apr-util

# tar xf apr-util-1.5.3.tar.bz2

# cd apr-util-1.5.3

# ./configure –prefix=/usr/local/apr-util –with-apr=/usr/local/apr

# make && make instal

编译安装 httpd-2.4.9

# tar xf httpd-2.4.9.tar.bz2

# cd httpd-2.4.9

# ./configure –prefix=/usr/local/apache –sysconfdir=/etc/httpd –enable-so –enable-ssl –enable-cgi –enable-rewrite –with-zlib –with-pcre –with-apr=/usr/local/apr –with-apr-util=/usr/local/apr-util –enables-modules=most –enable-mpms-shared=most –with-mpm=event

# make && make install

——————————————————————————–

二、编译安装 mysql;

mysql 应该把它的数据放在一个特殊的目录中,而且应该是个称独立的设备,因此需要创建一个新的分区来存放数据,做成 LVM 卷, 挂载到一个空的目录中,并且要实现开机自动挂载

编译安装 LAMP 对其性能压力测试

1、创建一个大小为 10G 的分区修改分区 ID 为 8e(lvm);

把新建分区做成逻辑卷并格式化挂载至相应目录中;如下

[root@linux ~]# vgcreate /dev/sda3

  Please enter a physical volume path

  Run `vgcreate –help’ for more information.

[root@linux ~]# pvcreate /dev/sda3

  Physical volume “/dev/sda3” successfully created

[root@linux ~]# vgcreate myvg /dev/sda3

  Volume group “myvg” successfully created

[root@linux ~]# lvcreate -L 10G -n mydata myvg

  Logical volume “mydata” created

格式化

[root@linux ~]# mke2fs -t ext4 /dev/myvg/mydata

创建挂载目录

[root@linux ~]# mkdir /data

写进配置文件里实现开机自动挂载

[root@linux ~]# vim /etc/fstab

/dev/myvg/mydata    /data    ext4    default    0 0

查看挂载目录;

[root@linux ~]# ls /data

lost+found  mydata

2、新建用户以安全的方式运行 mysql;

[root@linux data]# groupadd -r mysql
[root@linux data]# useradd -g mysql -l -s /sbin/nologin -M -d /mydata/data mysql
[root@linux data]# chown -R mysql:mysql mydata 

3、现在可以正式安装 mysql 数据了;

将 mysql 解压至 /usr/src 目录中

[root@linux xf]# tar xf mysql-5.5.33-linux2.6-x86_64.tar.gz -C /usr/src

[root@linux xf]# cd /usr/src/

[root@linux src]# ls

debug  kernels  mysql-5.5.33-linux2.6-x86_64

4、创建 mysql 创建一个链接文件,而且链接文件最好不要改名;

[root@linux src]# mv /usr/src/mysql-5.5.33-linux2.6-x86_64 /usr/local

[root@linux src]# cd /usr/local/

[root@linux local]# ln -sv mysql-5.5.33-linux2.6-x86_64 mysql

`mysql’ -> `mysql-5.5.33-linux2.6-x86_64′

5、修改 mysql 的宿主宿组,并对数据库存初始化;

[root@linux mysql]# chown -R mysql:mysql .  修改当前当录及子目录的宿主宿组

[root@linux mysql]# scripts/mysql_install_db –datadir=/data/mydata/ –user=mysql    初始化数据库

Installing MySQL system tables…

OK

Filling help tables…

OK

To start mysqld at boot time you have to copy

support-files/mysql.server to the right place for your system

PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !

To do so, start the server, then issue the following commands:

./bin/mysqladmin -u root password ‘new-password’

./bin/mysqladmin -u root -h linux.yang.com password ‘new-password’

Alternatively you can run:

./bin/mysql_secure_installation

which will also give you the option of removing the test

databases and anonymous user created by default.  This is

strongly recommended for production servers.

See the manual for more instructions.

You can start the MySQL daemon with:

cd . ; ./bin/mysqld_safe &

You can test the MySQL daemon with mysql-test-run.pl

cd ./mysql-test ; perl mysql-test-run.pl

Please report any problems with the ./bin/mysqlbug script!

6、为 mysql 提供主配置文件,拷贝到 /etc/ 目录中,事先 /etc/ 目录下会有一个相同名的数据文件,覆盖即可,而后编辑 /etc/my,conf 这个文件,添加存放数据的存放目录

[root@linux mysql]# cp support-files/my-large.cnf /etc/my.cnf

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

[root@linux mysql]# ls /etc/my.cnf

/etc/my.cnf

[root@linux mysql]# vim /etc/my.cnf

thread_concurrency = 4  表示值为当前主机 CPU 的个数乘以 2

datadir = /date/mydata  数据库的存放位置

7、为 mysql 提供 sysv 脚本,还好 mysql 自身提供有脚本,只需将其复制下来,存放至 /init.d/ 目录中;

[root@linux mysql]# cd /usr/local/mysql

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

[root@linux mysql]# chmod +x /etc/rc.d/init.d/mysqld

添加至服务列表

[root@linux mysql]# chkconfig –add mysqld

[root@linux mysql]#

[root@linux mysql]# chkconfig mysqld on

8、现在可以启动 mysqlb

[root@linux mysql]# service mysqld start

Starting MySQL……                                      [OK]

[root@linux mysql]# mysql

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

Your MySQL connection id is 1

Server version: 5.5.33-log MySQL Community Server (GPL)

Copyright (c) 2000, 2013, 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 |

| test              |

+——————–+

4 rows in set (0.00 sec)

mysql> \q

Bye

启动 mysql 后会在 /data/mydata/ 目录下生成数据库文件,并且会在 /tmp/ 目录下,有一个特殊文件,套接字文件,是用于如果客户端在本机,服务端也在本机时用到的一种特别高效的通信方式;

9、输入 mysql 的头文件至系统头文件路径

    #ln -sv /usr/local/mysql/include /usr/include/mysql

10、输入 mysql 的库文件给系统库查找路径;

    #echo “/usr/local/mysql/lib’ > /etc/ld.so.conf.d/mysql.conf

    ldconfig    让系统重读库文件

    [root@linux mysql]# ldconfig -p | grep mysql
    libtcmalloc_minimal.so.0 (libc6,x86-64) => /usr/local/mysql/lib/libtcmalloc_minimal.so.0
    libmysqlclient_r.so.16 (libc6,x86-64) => /usr/lib64/mysql/libmysqlclient_r.so.16
    libmysqlclient.so.18 (libc6,x86-64) => /usr/local/mysql/lib/libmysqlclient.so.18
    libmysqlclient.so.16 (libc6,x86-64) => /usr/lib64/mysql/libmysqlclient.so.16
    libmysqlclient.so (libc6,x86-64) => /usr/local/mysql/lib/libmysqlclient.so

11、修改 PATH 环境变量,让系统可以直接使用 mysql 的相关命令;

    vim /etc/profile.d/mysql.sh  后面这个 mysql.sh 是自定义的,但一定得是.sh 结尾

    export PATH=/usr/local/mysql/bin:$PATH

    source /etc/profile.d/mysql.sh  重读文件即可生效

12、安装完成 mysql 需要删除 mysql 的匿名用户,给管理员加密码;

    直接执行 mysql 命令即可进入 mysql;

mysql> use mysql;  设置默认表

Database changed

mysql> select user,host,password from user;    查看

+——+—————-+———-+

| user | host          | password |

+——+—————-+———-+

| root | localhost      |          |

| root | linux.yang.com |          |

| root | 127.0.0.1      |          |

| root | ::1            |          |

+——+—————-+———-+

4 rows in set (0.00 sec)

mysql> UPDATE user SET password=PASSWORD(‘redhat’) WHERE user=’root’;    更改所有用户的密码为 redhat

Query OK, 4 rows affected (0.00 sec)

Rows matched: 4  Changed: 4  Warnings: 0

mysql> select user,host,password from user;

+——+—————-+——————————————-+

| user | host          | password                                  |

+——+—————-+——————————————-+

| root | localhost      | *84BB5DF4823DA319BBF86C99624479A198E6EEE9 |

| root | linux.yang.com | *84BB5DF4823DA319BBF86C99624479A198E6EEE9 |

| root | 127.0.0.1      | *84BB5DF4823DA319BBF86C99624479A198E6EEE9 |

| root | ::1            | *84BB5DF4823DA319BBF86C99624479A198E6EEE9 |

+——+—————-+——————————————-+

4 rows in set (0.00 sec)

mysql> flush privileges;

Query OK, 0 rows affected (0.00 sec)

至此安装 mysql 数据库完成

四、安装 xcache, 为 php 加速;说明一下 php, 只要是编译 php 的第三方扩展工具都得执行 phpsize,而且这里必须得是在编译安装时的目录下面使用绝对路径

1、下载 xcache 加速工具,并解压;

    [root@linux ~]# tar xf xcache-3.0.3.tar.bz2   

    [root@linux ~]# cd xcache-3.0.3

    [root@linux xcache-3.0.3]# /usr/local/php/bin/phpize 使用本地 php 解释器,探测模块,并且将模块所依赖的版本及扩展 API 的号生成一个标记,而后才能以地其进行编译。

    Configuring for:

    PHP Api Version:        20100412

    Zend Module Api No:      20100525

    Zend Extension Api No:  220100525

    [root@linux ~]#./configure –enable-xcache –with-php-config=/usr/local/php/bin/php-config

    make && make install 最后编译完成在末尾会出现一条路径;如下

        Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-zts-20100525/

2、创建创建存放 xcache.ini 文件的目录

    [root@linux xcache-3.0.3]# mkdir /etc/php.d 

    [root@linux xcache-3.0.3]# cp xcache.ini /etc/php.d 

3、编辑配置文件 /etc/php.d/xcache.ini

    [root@linux xcache-3.0.3]# vim /etc/php.d/xcache.ini

            extension = /usr/local/php/lib/php/extensions/no-debug-zts-20100525/xcache.so

            xcache.size = 60M

4、现在再次利用 ab 命令对 php 页面进行性能测试,在 php 页面多按几次刷新,让其产生缓存后在测试

[root@linux xf]# ab -c 10 -n 1000 http://172.16.34.1/pam/index.php

 

安装了 xcache

Requests per second:    80.68 [#/sec] (mean) 
Time per request:      123.947 [ms] (mean)
Time per request:      12.395 [ms] (mean, across all concurrent requests)

 

没有安装 xcache

Requests per second:    20.07 [#/sec] (mean) 
Time per request:      498.269 [ms] (mean) 
Time per request:      49.827 [ms]

由此可以看出在没有安装 xcache 加速缓存与安装了 xcache 加速缓存时所进行的性能测试各项参数都有了很明显的提高。

xcache 加速 php 缓存操作完成

——————————————————————————–

三、利用现有环境再次配置 apache-2.4.9 与 fpm 方式的 php-5.4.2,无需做太大的改动,只需把现在安装的 php 及配置文件改个名即可。

1、编译安装并解压;

[root@linux xf]# tar xf php-5.4.26.tar.bz2

[root@linux xf]# cd php-5.4.26

[root@linux php-5.4.26]#  ./configure –prefix=/usr/local/php25 –with-MySQL=/usr/local/mysql –with-openssl –with-mysqli=/usr/local/mysql/bin/mysql_config –enable-mbstring –with-freetype-dir –with-jpeg-dir –with-png-dir –with-zlib –with-libxml-dir=/usr –enable-xml  –enable-sockets –enable-fpm –with-mcrypt  –with-config-file-path=/etc/php25 –with-config-file-scan-dir=/etc/php25.d –with-bz2

[root@linux xf]# make && make install

2、为 php-fpm 提供 Sysv init 脚本,并将其添加至服务列表

[root@linux php-5.4.26]# cp php.ini-production /etc/php25.ini

[root@linux php-5.4.26]# cp sapi/fpm/init.d.php-fpm /etc/rc.d/init.d/php-fpm

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

[root@linux php-5.4.26]# chkconfig –add php-fpm

[root@linux php-5.4.26]# chkconfig php-fpm on

3、为 php-fpm 提供主配置文件

# cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf

4、对其配置文件编译如下几项;

    vim /usr/local/php/etc/php-fpm.conf

pid = /usr/local/php25/var/run/php-fpm.pid

pm.max_children = 50    最大了进程数

pm.start_servers = 5  启动时启动的子进程数

pm.min_spare_servers = 2  最少空闲线程数

pm.max_spare_servers = 8  最大空闲线程数

5、现在可以启动 php-fpm    监听端口为:9000

    #service php-fpm start

    ss -tunl | grep php-fpm 端口是否监听

    tcp  LISTEN    0      128                                                127.0.0.1:9000 

6、现在开始编辑 httpd 的主配置文件

        开启加载以下两个模块

        LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so

        LoadModule proxy_module modules/mod_proxy.so

        支持 php 格式的网页文件

AddType application/x-httpd-php .php

        AddType application/x-httpd-php-source .phps

        找到主页文件

        <IfModule dir_module>

            DirectoryIndex index.php index.html

        </IfModule>

7、配置虚拟主机让其支持 fcji 反向代理,配置虚拟主机事先把中心主机停止,并在主配置里开启

支持虚拟主机功能;在主配置的末尾找到下面这行开启即可

        #DocumentRoot “/usr/local/apache/htdocs”  关闭中心主机

        Include /etc/httpd24/extra/httpd-vhosts.conf  开启虚拟主机功能

      http2.4.9 版本的虚拟主机配置有一个独立的文件,在 /etc/httpd24/extra 下;

      vim /etc/httpd24/extra/httpd-vhosts.conf

<VirtualHost *:80>

    ServerAdmin webadmin@linuxidc.com

    DocumentRoot “/web/linuxidc.com/htdocs”  虚拟主机的目录主页面

    ServerName www.linuxidc.com      域名

    ServerAlias linuxidc.com    别名

    ErrorLog “logs/linuxidc.com-error_log”  错误日志

    CustomLog “logs/linuxidc.com-access_log” combined  访问日志

        <Directory “/web/linuxidc.com/htdocs”>      虚拟主机的目录访问权限

        Options None

        Require all granted    允许所有

        </Directory>

        ProxyRequests Off  关闭正向代理

        proxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/web/linuxidc.com/htdocs/$1  反向代理

</VirtualHost>

<VirtualHost *:80>

    ServerAdmin webadmin@cba.com

    DocumentRoot “/web/cba.com/htdocs”

    ServerName www.cba.com

    ServerAlias cba.com

    ErrorLog “logs/cba.com-error_log”

    CustomLog “logs/cba.com-access_log” combined

        <Directory “/web/cba.com/htdocs”>

        Options None

        Require all granted

        </Directory>

        ProxyRequests Off

        proxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/web/cba.com/htdocs/$1

</VirtualHost>

8、修改测试两个虚拟主机的测试首页内容看是否能够连接数据库;

 

linuxidc.com

<?php

      $link = mysql_connect(‘127.0.0.1′,’root’,’RedHat’);

      if ($link)

        echo “Success…”;

      else

        echo “Failure…”;

      mysql_close();

        phpinfo();

?>

~

9、测试;

编译安装 LAMP 对其性能压力测试编译安装 LAMP 对其性能压力测试

 

可以成功连接数据库

10、安装 phpMyAdmin-4.0.5-all-languages.zip 对其两个虚拟主机做压力性能测试;安装的步骤此处不做详说,上面安装 php 的时候有做介绍

编译安装 LAMP 对其性能压力测试

连接成功;现在给 www.linuxidc.com/pma/index.php 做压力性能

11、压力测试;

    [root@linux htdocs]# ab -c 10 -n 1000 http://www.linuxidc.com/pam/index.php

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

    Time per request:      376.138 [ms] (mean)

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

11、安装 xcache 进行性能测试,安装步骤此外不做过多介绍,上面有做详细介绍;

10、安装了 xcache 后再次进行压力测试如下;

    [root@linux htdocs]# ab -c 10 -n 1000 http://www.linuxidc.com/pam/index.php

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

    Time per request:      103.186 [ms] (mean)

    Time per request:      10.319 [ms]

  由此可以看出性能有了很明显的提升;

本文可能有些地方做的不好之处,请大神们多多纠正!

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-20发表,共计21610字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中