LAMP简介
Linux+Apache+Mysql/MariaDB+Perl/PHP/Python一组常用来搭建动态网站或者服务器的开源软件,本身都是各自独立的程序,但是因为常被放在一起使用,拥有了越来越高的兼容度,共同组成了一个强大的Web应用程序平台。随着开源潮流的蓬勃发展,开放源代码的LAMP已经与J2EE和.Net商业软件形成三足鼎立之势,并且该软件开发的项目在软件方面的投资成本较低,因此受到整个IT界的关注。从网站的流量上来说,70%以上的访问流量是LAMP来提供的,LAMP是最强大的网站解决方案.
------------------------------------------MySql软件包安装---------------------------------------------
一、Mysql软件包安装方式
MySql官方网站为:www.mysql.com
mysql的安装方式分四种:系统自带的rpm包,mysql官方rpm包,通用二进制格式包,源码编译安装。二、使用yum源安装
1
2
3
4
5
6
| [iyunv@localhost ~]# yuminstall –y mysql
添加mysql 组和mysql用户
[iyunv@localhost ~]# groupadd -r mysql
[iyunv@localhost ~]# useradd -g mysql -r -s /sbin/nologin mysql
数据库初始化
#scripts/mysql_install_db -- datadir=/file --user=mysql
|
三、使用源码包安装
1、解压mysql-5.5.44-linux2.6-x86_64.tar.gz到/usr/local/
1
| [iyunv@localhost soft]# tar -zxvf mysql-5.5.44-linux2.6-x86_64.tar.gz -C /usr/local/
|
2、创建符号链接(有助于软件版本升级)
1
| [iyunv@localhost local]# ln -svmysql-5.5.44-linux2.6-x86_64/ mysql
|
3、创建mydata目录修改属主,属组为mysql 1
2
3
4
5
6
7
| [iyunv@localhost/]# cd /data/
[iyunv@localhostdata]# ls
lost+found
[iyunv@localhostdata]# mkdir mydata
[iyunv@localhostdata]# ls
lost+found mydata
[iyunv@localhostdata]# chown -R mysql.mysql mydata/
|
4、初始化系统库 1
2
3
4
5
6
7
| [iyunv@localhost mysql]# pwd
/usr/local/mysql
[iyunv@localhost mysql]# chown-R root.mysql *
[iyunv@localhost mysql]#scripts/mysql_install_db --datadir=/data/mydata/ --user=mysql
[iyunv@localhost mysql]# ls/data/mydata/
mysql performance_schema test
[iyunv@localhost mysql]#
|
5、制作mysql启动服务脚本 1
| [iyunv@localhost mysql]# cp support-files/mysql.server /etc/rc.d/init.d/mysqld
|
6、设置开机启动mysql 1
2
3
4
| [iyunv@localhost mysql]# chkconfig --addmysqld
[iyunv@localhost mysql]#chkconfig --list mysqld
mysqld 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭
[iyunv@localhost mysql]#
|
7、制作mysql配置文件 1
2
3
4
5
| [iyunv@localhost mysql]# cpsupport-files/my-large.cnf /etc/my.cnf
[iyunv@localhostmysql]# vim /etc/my.cnf
[mysqld]
………省略
datadir= /data/mydata #添加数据库路径
|
8、启动mysql服务 1
2
3
4
5
6
| [iyunv@localhost mysql]#service mysqld start
StartingMySQL.................................... [确定]
[iyunv@localhost mysql]# ls/data/mydata/
ibdata1 ib_logfile1 localhost.pid mysql-bin.000001 performance_schema
ib_logfile0 localhost.err mysql mysql-bin.index test
[iyunv@localhost mysql]#
|
9、客户端使用mysql命令登录提示无法找到mysql,修改以下文件即可 1
2
3
| [iyunv@localhost mysql]# vim/etc/profile.d/modules.sh
exportPATH=/usr/local/mysql/bin:$PATH
[iyunv@localhost mysql]# ./etc/profile.d/modules.sh
|
10、导出mysql的库文件和头文件 1
2
3
4
5
6
7
8
9
10
11
12
13
14
| [iyunv@localhost mysql]# ln -sv/usr/local/mysql/include/ /usr/include/mysql
"/usr/include/mysql/include"-> "/usr/local/mysql/include/"
[iyunv@localhostmysql]# vim /etc/ld.so.conf.d/mysql.conf
/usr/local/mysql/lib
[iyunv@localhostmysql]# ldconfig
[iyunv@localhost 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_r.so (libc6,x86-64) =>/usr/lib64/mysql/libmysqlclient_r.so
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
libmysqlclient.so (libc6,x86-64) =>/usr/lib64/mysql/libmysqlclient.so
[iyunv@localhost mysql]#
|
--------------------------------------------安装Apache—Httpd----------------------------------------
一、使用RPM安装Apache-Httpd软件包 二、httpd软件包安装:yum -yinstall httpd 三、源码安装httpd 2、解压并安装apr-1.5.2.tar.gz apr-util-1.5.4.tar.gz yum安装pcre-devel 1
2
3
4
5
6
7
8
9
| [iyunv@localhost apr-1.5.2]# yuminstall -y pcre-devel
[iyunv@localhostsoft]# tar -zxvf apr-1.5.2.tar.gz
[]# cd apr-1.5.2
安装apr-1.5.2
[root@localhostapr-1.5.2]# ./configure --prefix=/usr/local/apr
[root@localhostapr-1.5.2]# make && make install
[iyunv@localhostsoft]# tar -zxvf apr-util-1.5.4.tar.gz
[root@localhostapr-util-1.5.4]# ./configure --prefix=/usr/local/apr-util--with-apr=/usr/local/apr/
[iyunv@localhost apr-util-1.5.4]# make&& make install
|
3、安装httpd-2.4.9 1
2
3
4
| [iyunv@localhost soft]# tar –zxvf httpd-2.4.9.tar.gz
[root@localhosthttpd-2.4.9]# cd httpd-2.4.9
[root@localhosthttpd-2.4.9]#./configure--prefix=/usr/local/apache --sysconfdir=/etc/httpd24 --enable-so --enable-ssl--enable-cgi --with-zlib --with-pcre=/usr/local/pcre/ --enable-rewrite--with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util/--enable-modules=most --enable-mpms-shared=all --with-mpm=event
[root@localhosthttpd-2.4.9]# make && make install
|
4、提供SysV启动服务脚本cp http服务启动脚本到/etc/rc.d/init.d/httpd24 1
2
3
4
5
| [iyunv@localhost httpd-2.4.9]# cp/etc/rc.d/init.d/httpd /etc/rc.d/init.d/httpd24
修改httpd服务启动脚本
[root@localhosthttpd-2.4.9]# vim /etc/ rc.d/init.d/httpd24 #修改为实际路径
apachectl=/usr/local/apache/bin/apachectl
httpd=${HTTPD-/usr/local/apache/bin/httpd}
|
5、创建PATH环境
6、修改httpd主配置文件,设置其Pid文件的路径 1
2
| [iyunv@localhost httpd-2.4.9]# vim/etc/httpd24/httpd.conf
PidFile "/var/run/httpd.pid" #添加此行即可
|
7、启动httpd服务 1
2
3
| [iyunv@localhost httpd-2.4.9]# service httpd24start
正在启动 httpd:httpd: Could not reliably determine the server's fully qualified domainname, using localhost.localdomain for ServerName
[确定]
|
8、可以查看是否开启httpd的80端口 1
| [iyunv@localhost httpd-2.4.9]# ss –tnl
|
四、虚拟主机配置 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| [iyunv@localhost conf]# vim/etc/httpd/conf/httpd.conf
### Section 2: 'Main' server configuration
#DocumentRoot "/var/www/html" 注释掉
### Section 3: Virtual Hosts 添加以下部分
NameVirtualHost *:80
<VirtualHost *:80>
ServerAdmin admin@a.com
DocumentRoot "/var/www/html"
ServerName www.a.com
</VirtualHost>
<VirtualHost *:80>
ServerAdmin admin@b.com
DocumentRoot "/var/www/wordpress"
ServerName www.b.com
</VirtualHost>
|
-------------------------------------------------PHP软件包安装----------------------------------------
一、源码编译安装php-5.6.13 1、请配置好yum源(系统安装源及epel源)后安装动态库执行如下命令: 1
2
| # yum -y groupinstall "DesktopPlatform Development"
#yum -y install bzip2-devel libmcrypt libmcrypt-devel
|
2、首先下载源码包至本地目录 3、解压php-5.6.13.tar.gz并cd到php-5.6.13 1
2
| [iyunv@localhost soft]# tar -zxvf php-5.6.13
[iyunv@localhostsoft]# cd php-5.6.13
|
4、编译php-5.6 1
| [iyunv@localhost php-5.6.13]# ./configure--prefix=/usr/local/php56 --with-mysql=/usr/local/mysql-5.5.44-linux2.6-x86_64/--with-openssl--with-mysqli=/usr/local/mysql-5.5.44-linux2.6-x86_64/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
|
说明: 1、这里为了支持apache的worker或event这两个MPM,编译时使用了--enable-maintainer-zts选项。 2、如果使用PHP5.3以上版本,为了链接MySQL数据库,可以指定mysqlnd,这样在本机就不需要先安装MySQL或MySQL开发包了。mysqlnd从php 5.3开始可用,可以编译时绑定到它(而不用和具体的MySQL客户端库绑定形成依赖),但从PHP 5.4开始它就是默认设置了。 # ./configure --with-mysql=mysqlnd --with-pdo-mysql=mysqlnd--with-mysqli=mysqlnd 5、编译安装php-5.6 1
| [iyunv@localhost php-5.6.13]# make && make install
|
6、为php提供配置文件 1
2
| [iyunv@localhost php-5.6.13]# cd/root/soft/php-5.6.13
[iyunv@localhost php-5.6.13]# cpphp.ini-development /etc/php.ini
|
7、编辑apache配置文件httpd.conf,以apache能识别php格式的页面,并支持php格式的主页 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| <1、添加如下二行
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
<2、定位至DirectoryIndex index.html
修改为:
DirectoryIndex index.php index.html
如:
[iyunv@localhost php-5.6.13]# vim /etc/httpd24/httpd.conf
##在<IfModule mime_module>中添加
AddTypeapplication/x-httpd-php .php
AddType application/x-httpd-php-source .phps
<IfModuledir_module>
DirectoryIndexindex.php index.html
</IfModule>
|
9、使用service httpd24 restart命令重新启动httpd,使其重新载入配置文件,使用浏览器测试php是否已经可以正常使用。
---------------------------------------- 实验一--------------------------------------------------- 一、搭建Disczl论坛 经过上面的安装配置基本上完成了搭建环境。 2.解压[iyunv@localhost sort]# unzip Discuz_X3.2_SC_UTF8.zip 3.copy upload目录下的文件到/var/www/html目录 # cp -r * /var/www/html/ 4.mysql下创建dzbbs数据库
6.检查安装环境和文件权限,在安装过程中,其中某些文件没有读写权限,请按提示修改文件权限
7.配置安装数据库及管理员帐号密码
8.安装完数据库dz论坛系统就已经安装完成,完成后直接登录即可
9.论坛安装完成
10.查看数据库是否成功创建
------------------------------------------实验二安装wordPress博客系统------------------------------------------- 1、下载wordPress源码程序 2、解压并copy到/var/www/wordpress目录下 1
2
| [iyunv@localhost sort]# unzip wordpress-4.3.1-zh_CN.zip
[iyunv@localhost wordpress]# cp -r* /var/www/wordpress
|
3、复制/var/www/wordpress/wp-config-sample.php并改名为wp-config.php 1
| [iyunv@localhost wordpress]# cpwp-config-sample.php wp-config.php
|
4、创建数据库wordpress 5、修改/var/www/wordpress/wp-config.php // ** MySQL 设置 - 具体信息来自您正在使用的主机 ** // /** WordPress数据库的名称 */ define('DB_NAME', 'wordpress'); /** MySQL数据库用户名 */ define('DB_USER', 'root'); /** MySQL数据库密码 */ define('DB_PASSWORD', 'zhang'); /** MySQL主机 */ define('DB_HOST', 'localhost'); /** 创建数据表时默认的文字编码 */ define('DB_CHARSET', 'utf8'); /** 数据库整理类型。如不确定请勿更改 */ define('DB_COLLATE', ''); 7、安装成功,可进行登录
8、查看数据库是否创建成功
-------------------------------------------LAMP-PHP—扩展------------------------------------------
1、apache性能测试工具ab使用详解 性能测试工具目前最常见的有以下几种:ab、http_load、webbench、siege。今天我们专门来介绍ab。 ab是apache自带的压力测试工具。ab非常实用,它不仅可以对apache服务器进行网站访问压力测试,也可以对或其它类型的服务器进行压力测试。比如nginx、tomcat、IIS等。 一、ab参数说明 有关ab命令的使用,我们可以通过帮助命令进行查看。如下: ab --help 下面我们对这些参数,进行相关说明。如下: -n在测试会话中所执行的请求个数。默认时,仅执行一个请求。 -c一次产生的请求个数。默认是一次一个。 -t测试所进行的最大秒数。其内部隐含值是-n 50000,它可以使对服务器的测试限制在一个固定的总时间以内。默认时,没有时间限制。 -p包含了需要POST的数据的文件。 -P对一个中转代理提供BASIC认证信任。用户名和密码由一个:隔开,并以base64编码形式发送。无论服务器是否需要(即, 是否发送了401认证需求代码),此字符串都会被发送。 -T POST数据所使用的Content-type头信息。 -v设置显示信息的详细程度-4或更大值会显示头信息,3或更大值可以显示响应代码(404,200等),2或更大值可以显示警告和其他信息。 -V显示版本号并退出。 -w以HTML表的格式输出结果。默认时,它是白色背景的两列宽度的一张表。 -i执行HEAD请求,而不是GET。 -x设置<table>属性的字符串。 -X对请求使用代理服务器。 -y设置<tr>属性的字符串。 -z设置<td>属性的字符串。 -C对请求附加一个Cookie:行。其典型形式是name=value的一个参数对,此参数可以重复。 -H对请求附加额外的头信息。此参数的典型形式是一个有效的头信息行,其中包含了以冒号分隔的字段和值的对(如,"Accept-Encoding:zip/zop;8bit")。 -A对服务器提供BASIC认证信任。用户名和密码由一个:隔开,并以base64编码形式发送。无论服务器是否需要(即,是否发送了401认证需求代码),此字符串都会被发送。 -h显示使用方法。 -d不显示"percentage served within XX[ms] table"的消息(为以前的版本提供支持)。 -e产生一个以逗号分隔的(CSV)文件,其中包含了处理每个相应百分比的请求所需要(从1%到100%)的相应百分比的(以微妙为单位)时间。由于这种格式已经“二进制化”,所以比'gnuplot'格式更有用。 -g把所有测试结果写入一个'gnuplot'或者TSV(以Tab分隔的)文件。此文件可以方便地导入到Gnuplot,IDL,Mathematica,Igor甚至Excel中。其中的第一行为标题。 -i执行HEAD请求,而不是GET。 -k启用HTTP KeepAlive功能,即在一个HTTP会话中执行多个请求。默认时,不启用KeepAlive功能。 -q如果处理的请求数大于150,ab每处理大约10%或者100个请求时,会在stderr输出一个进度计数。此-q标记可以抑制这些信息。 二、ab性能指标 在进行性能测试过程中有几个指标比较重要: 1、吞吐率(Requests per second) 服务器并发处理能力的量化描述,单位是reqs/s,指的是在某个并发用户数下单位时间内处理的请求数。某个并发用户数下单位时间内能处理的最大请求数,称之为最大吞吐率。 记住:吞吐率是基于并发用户数的。这句话代表了两个含义: a、吞吐率和并发用户数相关 b、不同的并发用户数下,吞吐率一般是不同的 计算公式:总请求数/处理完成这些请求数所花费的时间,即 Request persecond=Complete requests/Time taken for tests 必须要说明的是,这个数值表示当前机器的整体性能,值越大越好。 2、并发连接数(The number of concurrentconnections) 并发连接数指的是某个时刻服务器所接受的请求数目,简单的讲,就是一个会话。 3、并发用户数(Concurrency Level) 要注意区分这个概念和并发连接数之间的区别,一个用户可能同时会产生多个会话,也即连接数。在HTTP/1.1下,IE7支持两个并发连接,IE8支持6个并发连接,FireFox3支持4个并发连接,所以相应的,我们的并发用户数就得除以这个基数。 4、用户平均请求等待时间(Time per request) 计算公式:处理完成所有请求数所花费的时间/(总请求数/并发用户数),即: Time perrequest=Time taken for tests/(Complete requests/Concurrency Level) 5、服务器平均请求等待时间(Time per request:acrossall concurrent requests) 计算公式:处理完成所有请求数所花费的时间/总请求数,即: Time takenfor/testsComplete requests 可以看到,它是吞吐率的倒数。 同时,它也等于用户平均请求等待时间/并发用户数,即 Time perrequest/Concurrency Level 三、ab实际使用 ab的命令参数比较多,我们经常使用的是-c和-n参数。
-c10表示并发用户数为10 -n100表示请求总数为100 http://a.com/index.php表示请求的目标URL 这行表示同时处理100个请求并运行10次index.php文件。 除此之外还有其他一些信息,需要说明下,如下: Server Software表示被测试的Web服务器软件名称。 Server Hostname表示请求的URL主机名。 Server Port表示被测试的Web服务器软件的监听端口。 Document Path表示请求的URL中的根绝对路径,通过该文件的后缀名,我们一般可以了解该请求的类型。 Document Length表示HTTP响应数据的正文长度。 Concurrency Level表示并发用户数,这是我们设置的参数之一。 Time taken fortests表示所有这些请求被处理完成所花费的总时间。 Complete requests表示总请求数量,这是我们设置的参数之一。 Failed requests表示失败的请求数量,这里的失败是指请求在连接服务器、发送数据等环节发生异常,以及无响应后超时的情况。如果接收到的HTTP响应数据的头信息中含有2XX以外的状态码,则会在测试结果中显示另一个名为“Non-2xx responses”的统计项,用于统计这部分请求数,这些请求并不算在失败的请求中。 Total transferred表示所有请求的响应数据长度总和,包括每个HTTP响应数据的头信息和正文数据的长度。注意这里不包括HTTP请求数据的长度,仅仅为web服务器流向用户PC的应用层数据总长度。 HTML transferred表示所有请求的响应数据中正文数据的总和,也就是减去了Totaltransferred中HTTP响应数据中的头信息的长度。 Requests persecond吞吐率,计算公式:Complete requests/Time taken for tests Time per request用户平均请求等待时间,计算公式:Time token for tests/(Complete requests/Concurrency Level)。 Time perrequet(across all concurrent request)服务器平均请求等待时间,计算公式:Time taken for tests/Complete requests,正好是吞吐率的倒数。也可以这么统计:Time per request/Concurrency Level。 Transfer rate表示这些请求在单位时间内从服务器获取的数据长度,计算公式:Totaltrnasferred/ Time taken for tests,这个统计很好的说明服务器的处理能力达到极限时,其出口宽带的需求量。 Percentage ofrequests served within a certain time(ms)这部分数据用于描述每个请求处理时间的分布情况,比如以上测试,80%的请求处理时间都不超过6ms,这个处理时间是指前面的Time per request,即对于单个用户而言,平均每个请求的处理时间。
2、使用Xcache,为php加速 1、Xcache简介 XCache 是一个又快又稳定的 PHP opcode 缓存器. 经过良好的测试并在大流量/高负载的生产机器上稳定运行. 经过(在 linux 上)测试并支持所有现行 PHP 分支的最新发布版本, 如 PHP_4_3 PHP_4_4 PHP_5_0 PHP_5_1 PHP_5_2 HEAD(6.x), 并支持线程安全/Windows. 与同类 opcode 缓存器相比更胜一筹, 比如能够快速跟进 PHP 版本. XCache 工程由 mOo 领队, 他也是 Lighttpd 的开发成员之一. Lighttpd 是最快的 Web 服务器应用程序之一, 并且超越 Apache 以及许多其他 Web 服务器. XCache 努力达到类似的效果. 2、下载安装使用Xcache Xcache官方下载地址为http://xcache.lighttpd.net/ 3、解压并cd到Xcache目录下 [iyunv@localhostsoft]# tar -zxvf xcache-3.2.0.tar.gz [iyunv@localhostsoft]# cd xcache-3.2.0 4、使用phpize进行编译php扩展 [iyunv@localhostsoft]# /usr/local/php56/bin/phpize 5、编译xcache扩展模块 [root@localhostxcache-3.2.0]# ./configure --enable-xcache --with-php-config=/usr/local/php56/bin/php-config 6、安装xcache [root@localhostxcache-3.2.0]# make && make install 安装结束时会提示类似如下行: Installing shared extensions: /usr/local/php56/lib/php/extensions/no-debug-zts-20131226/ 7、编辑php.ini,整合php和xcache: <1、首先将xcache提供的样例配置导入php.ini # mkdir/etc/php.d # cp xcache.ini/etc/php.d 说明:xcache.ini文件在xcache的源码目录中。 <2、接下来编辑/etc/php.d/xcache.ini,找到extension开头的行,确保在以下路径下找到xcache.so修改为如下行: extension =/usr/local/php/lib/php/extensions/no-debug-zts-20100525/xcache.so 注意:如果php.ini文件中有多条extension指令行,要确保此新增的行排在第一位。 8、重启httpd服务并查看是否安装成功xcache扩展 [iyunv@localhost xcache-3.2.0]# servicehttpd24 restart [root@localhostxcache-3.2.0]#
出来这个说明已经安装成功了。
9、使用ab进行压力测试
3、开启Apache服务器状态模块 mod_status 一、概述 本模块允许服务器管理员方便的检查服务器当前的运行状况。该模块用一种容易阅读的表格报告服务器的当前运行状态并以HTML页面的方式呈现出来。如果你愿意,还可以让这个页面不停的自动刷新(仅在支持自动刷新的浏览器上有效)。另外还可以提供一个简单的供机器阅读的服务器当前状态表。 输出的详细信息如下: 正在伺服请求的工作者(线程或进程)数量 空闲的工作者数量 每个工作者的状态:已完成的请求数、已发送的字节数。(*) 总访问数和已发送的字节总数(*) 服务器自启动/重启以来经过的时间,服务器已经运行的时间。 平均每秒请求数,平均每秒发送的字节数,平均每个请求发送的字节数。(*) 每个工作者的当前CPU使用百分率,以及Apache的当前总计CPU使用百分率。(*) 当前正在被处理的主机和请求(*) 必须使用相应编译时选项才能显示被标记为"(*)"的信息,因为这些信息默认并不存在于Apache中。
mod_status模块可以让管理员查看服务器的执行状态,它通过一个HTML页面展示了当前服务器的统计数据。这些数据通常包括但不限于: (1) 处于工作状态的worker进程数; (2) 空闲状态的worker进程数; (3) 每个worker的状态,包括此worker已经响应的请求数,及由此worker发送的内容的字节数; (4) 当前服务器总共发送的字节数; (5) 服务器自上次启动或重启以来至当前的时长; (6) 平均每秒钟响应的请求数、平均每秒钟发送的字节数、平均每个请求所请求内容的字节数;
二、启用mod_status 启用状态页面的方法很简单,只需要在httpd主配置文件中添加如下内容即可: <Location /server-status> SetHandler server-status Require all granted Allowfrom .a.com </Location> Deny from表示禁止的访问地址;
Allow from表示允许的地址访问;
ExtendedStatus On表示的是待会访问的时候能看到详细的请求信息 Allowfrom为了仅允许来自foo.com域名的用户访问状态报告页面 三、自动刷新 需要提醒的是,这里的状态信息不应该被所有人随意访问,因此,应该限制仅允许某些特定地址的客户端查看。比如使用Require ip 172.16.0.0/16来限制仅允许指定网段的主机查看此页面。 4、配置apache-2.4.9与fpm方式的php-5.6.13 一、编译安装php-5.6.13 首先下载源码包至本地目录 [iyunv@localhostsoft]# tar -zxvf php-5.6.13.tar.gz [iyunv@localhostsoft]# cd php-5.6.13 [iyunv@localhostlocal]# ./configure --prefix=/usr/local/php56 --with-mysql=/usr/local/mysql-5.5.44-linux2.6-x86_64/--with-openssl--with-mysqli=/usr/local/mysql-5.5.44-linux2.6-x86_64/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--with-config-file-scan-dir=/etc/php.d --with-bz2 二、为php提供配置文件: 三、配置php-fpm <1、为php-fpm提供SysV init启动脚本,并将其添加至服务列表: 四、为php-fpm提供配置文件: [iyunv@localhostetc]# cp /usr/local/php/etc/php-fpm.conf.default/usr/local/php/etc/php-fpm.conf [iyunv@localhostetc]# pwd /usr/local/php56/etc 五、配置fpm的进程池相关选项为你所需要的值,并启用pid文件 [iyunv@localhostetc]# vim php-fpm.conf [global] pid= /usr/local/php56/var/run/ php-fpm.pid pm.max_children= 50 pm.start_servers= 5 pm.min_spare_servers= 2 pm.max_spare_servers= 8 六、启动php-fpm服务: [iyunv@localhostetc]# service php-fpm start
七、配置httpd-2.4.9 编辑httpd24主配置文件,加载模块和对php的支持 [iyunv@localhosthttpd24]# vim httpd.conf #----------------启用httpd相关的模块----------------# LoadModuleproxy_module modules/mod_proxy.so LoadModuleproxy_fcgi_module modules/mod_proxy_fcgi.so #-----------------添加对php的支持------------------------# AddTypeapplication/x-httpd-php .php AddTypeapplication/x-httpd-php-source .phps #-----------------配置虚拟主机支持使用fcgi------------------------# <VirtualHost *:80> DocumentRoot "/usr/local/apache/htdocs/a.com" ProxyRequests Off ProxyPassMatch ^/(.*\.php)$fcgi://127.0.0.1:9000//usr/local/apache/htdo cs/a.com/$1 </VirtualHost> <VirtualHost *:80> DocumentRoot "/usr/local/apache/htdocs/b.com" ProxyRequests Off ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000//usr/local/apache/htdo cs/b.com/$1 </VirtualHost> ProxyRequests Off:关闭正向代理 ProxyPassMatch:把以.php结尾的文件请求发送到php-fpm进程,php-fpm至少需要知道运行的目录和URI,所以这里直接在fcgi://127.0.0.1:9000后指明了这两个参数,其它的参数的传递已经被mod_proxy_fcgi.so进行了封装,不需要手动指定。 八、可使用ab进行测试
如以上有错误的地方请留言指正,会及时修改! 谢谢!
|