mongoDB——安装和启动

发布于:2013-11-21 16:00 作者:admin 浏览:2447 分类:系统架构

下载mongoDB安装包:http://www.mongodb.org/downloads

  mongoDB服务器端安装和启动步骤:

    1. 在磁盘创建文件夹

        d:\mongodb   
        d:\mongodb\db   数据库目录
        d:\mongodb\log  日志存放目录
        d:\mongodb\log\mongoDB.log

    2. 解压mongoDB安装包,并将解压后的bin文件夹拷贝到mongodb中

    3. 启动mongoDB服务

         在bin目录中有许多命令,启动数据库只需要两个命令mongod和mongo:
         mongod:是mongoDB数据库进程本身
         mongo:是命令行shell客户端  

        启动mongoDB进程:D:\mongodb\bin>mongod --dbpath=D:\mongodb\db

        
   4.连接MongoDB

           mongoDB服务器启动后,就可以通过mongoDB客户端操作数据库了。

           D:\mongodb\bin\mongo.exe

         

  5. mongoDB客户端包括:

         1. shell控制台

         2. java、php等驱动程序

         3. mongoVUE是一个可视化工具,相当于我们熟悉的plSql,不过也可以执行对数据库的操作   

 

标签: mongodb

0

MySQL开启慢查询

发布于:2013-11-1 16:21 作者:admin 浏览:1666 分类:Linux

查看/设置“慢查询”的时间定义
mysql> show variables like "long%";
+-----------------+----------+
| Variable_name   | Value    |
+-----------------+----------+
| long_query_time | 1      |
+-----------------+----------+
1 row in set (0.00 sec)


如上述语句输出,“慢查询”的时间定义为1秒(方便测试,一般设置为1-10秒)。使用下面语句定义“慢查询”时间

mysql> set long_query_time=1;
Query OK, 0 rows affected (0.00 sec)


开启“慢查询”记录功能
mysql> show variables like "slow%";
+---------------------+------------------------------------+
| Variable_name       | Value                              |
+---------------------+------------------------------------+
| slow_launch_time    | 2                                  |
| slow_query_log      | OFF                                |
| slow_query_log_file | /opt/mysql/data/localhost-slow.log |
+---------------------+------------------------------------+
3 rows in set (0.00 sec)


上述语句查看“慢查询”的配置信息,你可以自定义日志文件的存放,但必须将 slow_query_log 全局变量设置为“ON”状态,执行以下语句:

mysql> set global slow_query_log=ON;
Query OK, 0 rows affected (0.01 sec)

结果:

mysql> show variables like "slow%";
+---------------------+------------------------------------+
| Variable_name       | Value                              |
+---------------------+------------------------------------+
| slow_launch_time    | 2                                  |
| slow_query_log      | ON                                 |
| slow_query_log_file | /opt/mysql/data/localhost-slow.log |
+---------------------+------------------------------------+
3 rows in set (0.00 sec)

 

标签: mysql 慢查询

0

如何在nginx中配置ip直接访问的默认站点

发布于:2013-11-1 8:42 作者:admin 浏览:3226 分类:Linux

一般来说主机上每个ip上会对应几个不同的站点。于是就会出现一个问题,直接访问这个ip,访问的会是哪个站点呢?
nginx中,每个站点都是由一个server段定义的,里面设定了监听的ip和端口,站点的域名,根目录等。

解决方法:
在Listen ip:port; 这个指令行中,有一个参数default,指定了它后,这个server段就会是这个ip的默认站点;如果没有这个参数,那么默认ip直接访问的是nginx.conf中出现的第一个server段对应的站点。

 

server{
    listen: 127.0.0.1:80 default;
    server_name test.com;
    ...
}


标签: nginx

0

linux下vi命令大全

发布于:2013-10-29 23:26 作者:admin 浏览:1599 分类:Linux
进入vi的命令 
vi filename :打开或新建文件,并将光标置于第一行首 
vi +n filename :打开文件,并将光标置于第n行首 
vi + filename :打开文件,并将光标置于最后一行首 
vi +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处 
vi -r filename :在上次正用vi编辑时发生系统崩溃,恢复filename 
vi filename....filename :打开多个文件,依次进行编辑 

移动光标类命令
h :光标左移一个字符 
l :光标右移一个字符 
space:光标右移一个字符 
Backspace:光标左移一个字符 
k或Ctrl+p:光标上移一行 
j或Ctrl+n :光标下移一行 
Enter :光标下移一行 
w或W :光标右移一个字至字首 
b或B :光标左移一个字至字首 
e或E :光标右移一个字至字尾 
) :光标移至句尾 
( :光标移至句首 
}:光标移至段落开头 
{:光标移至段落结尾 
nG:光标移至第n行首 
n+:光标下移n行 
n-:光标上移n行 
n$:光标移至第n行尾 
H :光标移至屏幕顶行 
M :光标移至屏幕中间行 
L :光标移至屏幕最后行 
0:(注意是数字零)光标移至当前行首 
$:光标移至当前行尾 

屏幕翻滚类命令 
Ctrl+u:向文件首翻半屏 
Ctrl+d:向文件尾翻半屏 
Ctrl+f:向文件尾翻一屏 
Ctrl+b;向文件首翻一屏 
nz:将第n行滚至屏幕顶部,不指定n时将当前行滚至屏幕顶部。 

插入文本类命令 
i :在光标前 
I :在当前行首 
a:光标后 
A:在当前行尾 
o:在当前行之下新开一行 
O:在当前行之上新开一行 
r:替换当前字符 
R:替换当前字符及其后的字符,直至按ESC键 
s:从当前光标位置处开始,以输入的文本替代指定数目的字符 
S:删除指定数目的行,并以所输入文本代替之 
ncw或nCW:修改指定数目的字 
nCC:修改指定数目的行 

删除命令 
ndw或ndW:删除光标处开始及其后的n-1个字 
do:删至行首 
d$:删至行尾 
ndd:删除当前行及其后n-1行 
x或X:删除一个字符,x删除光标后的,而X删除光标前的 
Ctrl+u:删除输入方式下所输入的文本 

搜索及替换命令 
/pattern:从光标开始处向文件尾搜索pattern 
?pattern:从光标开始处向文件首搜索pattern 
n:在同一方向重复上一次搜索命令 
N:在反方向上重复上一次搜索命令 
:s/p1/p2/g:将当前行中所有p1均用p2替代 
:n1,n2s/p1/p2/g:将第n1至n2行中所有p1均用p2替代 
:g/p1/s//p2/g:将文件中所有p1均用p2替换 

选项设置 
all:列出所有选项设置情况 
term:设置终端类型 
ignorance:在搜索中忽略大小写 
list:显示制表位(Ctrl+I)和行尾标志($) 
number:显示行号 
report:显示由面向行的命令修改过的数目 
terse:显示简短的警告信息 
warn:在转到别的文件时若没保存当前文件则显示NO write信息 
nomagic:允许在搜索模式中,使用前面不带“\”的特殊字符 
nowrapscan:禁止vi在搜索到达文件两端时,又从另一端开始 
mesg:允许vi显示其他用户用write写到自己终端上的信息 

最后行方式命令 
:n1,n2 co n3:将n1行到n2行之间的内容拷贝到第n3行下 
:n1,n2 m n3:将n1行到n2行之间的内容移至到第n3行下 
:n1,n2 d :将n1行到n2行之间的内容删除 
:w :保存当前文件 
:e filename:打开文件filename进行编辑 
:x:保存当前文件并退出 
:q:退出vi 
:q!:不保存文件并退出vi 
:!command:执行shell命令command 
:n1,n2 w!command:将文件中n1行至n2行的内容作为command的输入并执行之,若不指定n1,n2,则表示将整个文件内容作为command的输入 
:r!command:将命令command的输出结果放到当前行 

寄存器操作 
"?nyy:将当前行及其下n行的内容保存到寄存器?中,其中?为一个字母,n为一个数字 
"?nyw:将当前行及其下n个字保存到寄存器?中,其中?为一个字母,n为一个数字 
"?nyl:将当前行及其下n个字符保存到寄存器?中,其中?为一个字母,n为一个数字 
"?p:取出寄存器?中的内容并将其放到光标位置处。这里?可以是一个字母,也可以是一个数字 
ndd:将当前行及其下共n行文本删除,并将所删内容放到1号删除寄存器中。

VI的使用
--------------------------------------------------------------------------------

一、插入文本 
┌──┬────────────┐ 
│命令│描述          │ 
├──┼────────────┤ 
│i  │在当前字符前插入文本  │ 
├──┼────────────┤ 
│I  │在行首插入文本      │ 
├──┼────────────┤ 
│a  │在当前字符后添加文本  │ 
├──┼────────────┤ 
│A  │在行末添加文本     │ 
├──┼────────────┤ 
│o  │在当前行后面插入一空行 │ 
├──┼────────────┤ 
│O  │在当前行前面插入一空行 │ 
├──┼────────────┤ 
│R  │以改写方式输入文本   │ 
└──┴────────────┘ 
二、移动光标 
┌─────┬───────────┐ 
│命令   │描述         │ 
├─────┼───────────┤ 
│j或下箭头 │向下移动一行     │ 
├─────┼───────────┤ 
│k或上箭头 │向上移动一行     │ 
├─────┼───────────┤ 
│h或左箭头 │左移一个字符     │ 
├─────┼───────────┤ 
│l或右箭头 │右移一个字符     │ 
├─────┼───────────┤ 
│w     │右移一个词      │ 
├─────┼───────────┤ 
│W     │右移一个以空格分隔的词│ 
├─────┼───────────┤ 
│b     │左移一个词      │ 
├─────┼───────────┤ 
│B     │左移一个以空格分隔的词│ 
├─────┼───────────┤ 
│0     │移到行首       │ 
│Ctrl-F  │向前翻页       │ 
├─────┼───────────┤ 
│Ctrl-B  │向后翻页       │ 
├─────┼───────────┤ 
│nG    │到第n行        │ 
├─────┼───────────┤ 
│G     │到最后一行      │ 
└─────┴───────────┘ 
三、替换文本 
┌─────┬──────┐ 
│命令   │描述    │ 
├─────┼──────┤ 
│$     │到行尾   │ 
├─────┼──────┤ 
│(     │到句子的开头│ 
├─────┼──────┤ 
│)     │到句子的末尾│ 
├─────┼──────┤ 
│{     │到段落的开头│ 
├─────┼──────┤ 
│}     │到段落的末尾│ 
└─────┴──────┘ 

四、删除文本 
┌───┬───────────┐ 
│命令 │描述          │ 
├───┼───────────┤ 
│r   │替换一个字符      │ 
├───┼───────────┤ 
│c   │修改文本直到按下Esc健 │ 
├───┼───────────┤ 
│cw  │修改下一个词      │ 
├───┼───────────┤ 
│cnw  │修改接下来的n个词   │ 
└───┴───────────┘ 
五、文本编辑 
┌──┬──────────────────────┐ 
│命寺│描述                    │ 
├──┼──────────────────────┤ 
│yy │将一行文本移到缺省缓冲区中          │ 
├──┼──────────────────────┤ 
│yn │将下一个词移到缺省缓冲区中          │ 
├──┼──────────────────────┤ 
│ynw │将后面的n个词移到缺省缓冲区中        │ 
├──┼──────────────────────┤ 
│p  │如果缺省缓冲区中包含一行文本,则在当前   │ 
│  │行后面插入一个空行井将缺省缓冲区中的声   │ 
│  │容粘贴到这一行中;如果缺省缓冲区中包含   │ 
│  │多个词,把这些词粘贴到光标的右边.     │ 
├──┼──────────────────────┤ 
│P  │如果缺省缓冲区中包含一行文本,则正当前    │ 
│   │行前面插入一个空行井将缺省缓冲区中的内    │ 
│  │容粘贴到这一行中;如果缺省缓冲区中包含    │ 
│   │多个词,把这些词粘贴到光标的左边    

  │ 
└──┴──────────────────────┘ 
六、保存退出 
┌───────────┬───────────────┐ 
│命令         │描述             │ 
├───────────┼───────────────┤ 
│zz          │保存并退出          │ 
├───────────┼───────────────┤ 
│:w filename      │写入文件            │ 
├───────────┼───────────────┤ 
│:W          │写入文件           │ 
├───────────┼───────────────┤ 
│:x          │保存(如果当前文件修改过)并退出│ 
├───────────┼───────────────┤ 
│:q!          │不保存文件,直接退出      │ 
├───────────┼───────────────┤ 
│:q          │退出vi            │ 

VI常用技巧

VI命令可以说是Unix/Linux世界里最常用的编辑文件的命令了,但是因为它的命令集众多,很多人都不习惯使用它,其实您只需要掌握基本命令,然后加以灵活运用,就会发现它的优势,并会逐渐喜欢使用这种方法。本文旨在介绍VI的一些最常用命令和高级应用技巧。 

一、基本命令介绍 

---- 1.光标命令 

k、j、h、l——上、下、左、右光标移动命令。虽然您可以在Linux中使用键盘右边的4个光标键,但是记住这4个命令还是非常有用的。这4个键正是右手在键盘上放置的基本位置。 
nG——跳转命令。n为行数,该命令立即使光标跳到指定行。 
Ctrl+G——光标所在位置的行数和列数报告。 
w、b——使光标向前或向后跳过一个单词。 
---- 2.编辑命令 
i、a、r——在光标的前、后以及所在处插入字符命令(i=insert、a=append、r=replace)。 
cw、dw——改变(置换)/删除光标所在处的单词的命令 (c=change、d=delete)。 
x、d$、dd——删除一个字符、删除光标所在处到行尾的所有字符以及删除整行的命令。 
---- 3.查找命令 
---- /string、?string——从光标所在处向后或向前查找相应的字符串的命令。 
---- 4.拷贝复制命令 
---- yy、p——拷贝一行到剪贴板或取出剪贴板中内容的命令。 

二、常见问题及应用技巧 

---- 1.在一个新文件中读/etc/passwd中的内容,取出用户名部分。 
---- vi file 
---- :r /etc/passwd 在打开的文件file中光标所在处读入/etc/passwd 
---- :%s/:.*//g 删除/etc/passwd中用户名后面的从冒号开始直到行尾的所有部分。 
---- 您也可以在指定的行号后读入文件内容,例如使用命令“:3r /etc/passwd”从新文件的第3行开始读入 /etc/passwd的所有内容。 
---- 我们还可以使用以下方法删掉文件中所有的空行及以#开始的注释行。 
---- #cat squid.conf.default | grep -v ^$ | grep -v ^# 

---- 2.在打开一个文件编辑后才知道登录的用户对该文件没有写的权限,不能存盘,需要将所做修改存入临时文件。 
---- vi file 
---- :w /tmp/1 保存所做的所有修改,也可以将其中的某一部分修改保存到临时文件,例如仅仅把第20~59行之间的内容存盘成文件/tmp/1,我们可以键入如下命令。 
---- vi file 
---- :20,59w /tmp/1 

---- 3.用VI编辑一个文件,但需要删除大段的内容。 
---- 首先利用编辑命令“vi file”打开文件,然后将光标移到需要删除的行处按Ctrl+G显示行号,再到结尾处再按Ctrl+G,显示文件结尾的行号。 
---- :23,1045d 假定2次得到的行号为23和1045,则把这期间的内容全删除,也可以在要删除的开始行和结束行中用ma、mb命令标记,然后利用“:a,bd”命令删除。 

---- 4.在整个文件的各行或某几行的行首或行尾加一些字符串。 
---- vi file 
---- :3,$s/^/some string / 在文件的第一行至最后一行的行首插入“some string”。 
---- :%s/$/some string/g 在整个文件每一行的行尾添加“some string”。 
---- :%s/string1/string2/g 在整个文件中替换“string1”成“string2”。 
---- :3,7s/string1/string2/ 仅替换文件中的第3行到第7行中的“string1”成“string2”。 
---- 注意: 其中s为substitute,%表示所有行,g表示global。 

---- 5.同时编辑2个文件,拷贝一个文件中的文本并粘贴到另一个文件中。 
---- vi file1 file2 
---- yy 在文件1的光标处拷贝所在行 
---- :n 切换到文件2 (n=next) 
---- p 在文件2的光标所在处粘贴所拷贝的行 
---- :n 切换回文件1 

---- 6.替换文件中的路径。 
---- 使用命令“:%s#/usr/bin#/bin#g”可以把文件中所有路径/usr/bin换成/bin。也可以使用命令“:%s//usr/bin//bin/g”实现,其中“”是转义字符,表明其后的“/”字符是具有实际意义的字符,不是分隔符。

标签: vi linux

0

centos中crontab(计时器)用法详解

发布于:2013-10-29 23:18 作者:admin 浏览:1810 分类:系统架构

关于crontab

  crontab命令常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。该词来源于希腊语 chronos(χρ?νο?),原意是时间。
  通常,crontab储存的指令被守护进程激活, crond常常在后台运行,每一分钟检查是否有预定的作业需要执行。这类作业一般称为cron jobs。

 

安装crontab:

[root@CentOS ~]# yum install vixie-cron 
[root@CentOS ~]# yum install crontabs

 

说明:
vixie-cron软件包是cron的主程序;
crontabs软件包是用来安装、卸装、或列举用来驱动 cron 守护进程的表格的程序。

cron 是linux的内置服务,但它不自动起来,可以用以下的方法启动、关闭这个服务:

/sbin/service crond start #启动服务 
/sbin/service crond stop #关闭服务 
/sbin/service crond restart #重启服务 
/sbin/service crond reload #重新载入配置

 

查看crontab服务状态:

service crond status

 

手动启动crontab服务:

service crond start

 

其他命令:

 #查看crontab服务是否已设置为开机启动,执行命令: ntsysv
#加入开机自动启动: chkconfig --level 35 crond on 
#列出crontab文件 crontab -l 
#编辑crontab文件 crontab -e 
#删除crontab文件 $ crontab -r 
#恢复丢失的crontab文件 
#假设你在自己的$HOME目录下还有一个备份,那么可以将其拷贝到/var/spool/cron/<username>,其中<username >是用户名 
#或者使用如下命令其中,<filename>是你在$HOME目录中副本的文件名 crontab <filename>
 

 

日志文件:/var/log/cron*  

 

补充:

1、crontab相关命令

功能说明:设置计时器。

语  法:crontab [-u <用户名称>][配置文件] 或 crontab [-u <用户名称>][-elr]

补充说明:cron是一个常驻服务,它提供计时器的功能,让用户在特定的时间得以执行预设的指令或程序。只要用户会编辑计时器的配置文件,就可以使用计时器的功能。

配置文件格式:Minute Hour Day Month DayOFWeek Command

参  数: 
-e  编辑该用户的计时器设置。 
-l  列出该用户的计时器设置。 
-r  删除该用户的计时器设置。 
-u<用户名称>  指定要设定计时器的用户名称。

 

2、crontab 配置文件格式

  基本格式 :
  *      *   *   *   *  command
  分   时  日  月  周   命令

  第1列表示分钟1~59 每分钟用*或者 */1表示
  第2列表示小时1~23(0表示0点)
  第3列表示日期1~31
  第4列表示月份1~12
  第5列标识号星期0~6(0表示星期天)
  第6列要运行的命令

 

crontab文件的一些例子:

#每晚的21:30 重启apache 30 21 * * * /usr/local/etc/rc.d/lighttpd restart
#每月1、10、22日的4 : 45重启apache 45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart
#每周六、周日的1 : 10重启apache 10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart
#每天18 : 00至23 : 00之间每隔30分钟重启apache 0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart
#每星期六的11 : 00 pm重启apache 0 23 * * 6 /usr/local/etc/rc.d/lighttpd restart
#晚上11点到早上7点之间,每隔一小时重启apache * 23-7/1 * * * /usr/local/etc/rc.d/lighttpd restart
#每一小时重启apache * */1 * * * /usr/local/etc/rc.d/lighttpd restart
#每月的4号与每周一到周三的11点重启apache 0 11 4 * mon-wed /usr/local/etc/rc.d/lighttpd restart
#一月一号的4点重启apache 0 4 1 1 * /usr/local/etc/rc.d/lighttpd restart
#每半小时同步一下时间 */30 * * * * /usr/sbin/ntpdate 210.72.145.44

 

3、其他任务调度

cron默认配置了调度任务,分别为:hourly、daily、weekly、mouthly,默认配置文件为/etc/anacrontab

将需要执行的脚本放到相应的目录下即可,目录分别为:

/ect/cron.hourly

/ect/cron.daily

/ect/cron.weekly

/ect/cron.mouthly

标签: crontab

0

ulimit -n 65535 最大打开文件数

发布于:2013-10-28 11:27 作者:admin 浏览:2888 分类:系统架构

使用ulimit -a 可以查看当前系统的所有限制值,使用ulimit -n 可以查看当前的最大打开文件数。

新装的linux默认只有1024,当作负载较大的服务器时,很容易遇到error: too many open files。因此,需要将其改大。

使用 ulimit -n 65535 可即时修改,但重启后就无效了。(注ulimit -SHn 65535 等效 ulimit -n 65535,-S指soft,-H指hard)

有如下三种修改方式:

1.在/etc/rc.local 中增加一行 ulimit -SHn 65535
2.在/etc/profile 中增加一行 ulimit -SHn 65535
3.在/etc/security/limits.conf最后增加如下两行记录
* soft nofile 65535
* hard nofile 65535

具体使用哪种,试试哪种有效吧,我在 CentOS中使用第1种方式无效果,使用第3种方式有效果,而在Debian中使用第2种有效果

标签: ulimit

0

lnmp安装和优化

发布于:2013-10-28 11:14 作者:admin 浏览:2350 分类:系统架构

一、准备工作:

(1)我们采用虚拟机的形式来构建整个服务器
虚拟机:512M内存(你会看到512M内存的情况下Nginx带来的超高并发请求)
系统:Redhat5.4 (Kernel:2.6.18)
(2)我们编译安装所需的开发组件包都是通过yum直接安装的。yum源指向的是http://mirrors.163.com。构建LNMP所需要的编译源码包,大都通过官方网站下载。

 

需要准备的源码包,及其下载地址:(在下载之前最好先建立一个目录方便保存我们的源码包,本文使用/root/lnmp)wget http://www.nginx.org/download/nginx-1.1.3.tar.gz
wget http://fastlnmp.googlecode.com/files/php-5.2.14.tar.gz
wget http://php-fpm.org/downloads/php-5.2.14-fpm-0.5.14.diff.gz
wget http://download.softagency.net/mysql/Downloads/MySQL-5.5/mysql-5.5.15-linux2.6-i686.tar.gz
wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.13.1.tar.gz
wget http://lcmp.googlecode.com/files/libmcrypt-2.5.8.tar.gz
wget http://vps.googlecode.com/files/mcrypt-2.6.8.tar.gz
wget http://lnmp-v4.googlecode.com/files/memcache-2.2.5.tgz
wget http://acelnmp.googlecode.com/files/mhash-0.9.9.9.tar.gz
wget http://acelnmp.googlecode.com/files/pcre-8.10.tar.gz
wget http://acelnmp.googlecode.com/files/eaccelerator-0.9.6.1.tar.bz2
wget http://vps.googlecode.com/files/PDO_MYSQL-1.0.2.tgz
wget ftp://ftp.imagemagick.org/pub/ImageMagick/ImageMagick.tar.gz
wget http://lnmpp.googlecode.com/files/imagick-2.3.0.tgz

 

 


二,完整编译安装的开始!

(1)编译安装PHP 5.2.14所需的支持库:

  1. tar zxvf libiconv-1.13.1.tar.gz
  2. cd libiconv-1.13.1/
  3. ./configure –prefix=/usr/local
  4. make
  5. make install
  6. cd ../
  1. tar zxvf libmcrypt-2.5.8.tar.gz
  2. cd libmcrypt-2.5.8/
  3. ./configure
  4. make
  5. make install
  6. /sbin/ldconfig
  7. cd libltdl/
  8. ./configure –enable-ltdl-install
  9. make
  10. make install
  11. cd ../../
  1. tar zxvf mhash-0.9.9.9.tar.gz
  2. cd mhash-0.9.9.9/
  3. ./configure
  4. make
  5. make install
  6. cd ../
  1. ln -s /usr/local/lib/libmcrypt.la /usr/lib/libmcrypt.la
  2. ln -s /usr/local/lib/libmcrypt.so /usr/lib/libmcrypt.so
  3. ln -s /usr/local/lib/libmcrypt.so.4 /usr/lib/libmcrypt.so.4
  4. ln -s /usr/local/lib/libmcrypt.so.4.4.8 /usr/lib/libmcrypt.so.4.4.8
  5. ln -s /usr/local/lib/libmhash.a /usr/lib/libmhash.a
  6. ln -s /usr/local/lib/libmhash.la /usr/lib/libmhash.la
  7. ln -s /usr/local/lib/libmhash.so /usr/lib/libmhash.so
  8. ln -s /usr/local/lib/libmhash.so.2 /usr/lib/libmhash.so.2
  9. ln -s /usr/local/lib/libmhash.so.2.0.1 /usr/lib/libmhash.so.2.0.1
  10. ln -s /usr/local/bin/libmcrypt-config /usr/bin/libmcrypt-config
  1. tar zxvf mcrypt-2.6.8.tar.gz
  2. cd mcrypt-2.6.8/
  3. /sbin/ldconfig
  4. ./configure
  5. make
  6. make install
  7. cd ../

(2)绿色二进制包安装MySQL 5.5.15

①:安装过程

  1. ## 为MySQL建立用户和组
  2. groupadd -g 3306 mysql
  3. useradd -g mysql -u 3306 -s /sbin/nologin -M mysql
  4. ## 二进制安装方式
  5. tar xf mysql-5.5.15-linux2.6-i686.tar.gz -C /usr/local
  6. ln -sv /usr/local/mysql-5.5.15-linux.2.6-i686 /usr/local/mysql
  7. mkdir /mydata  ## 创建数据保存目录
  8. chown -R mysql:mysql /mydata/
  9. cd /usr/local/mysql
  10. scripts/mysql_install_db –user=mysql –datadir=/mydata/data
  11. chown -R root .
  12. ## 加入启动脚本
  13. cp support-files/mysql.server /etc/init.d/mysqld
  14. chkconfig –add mysqld
  15. ##修改配置文件
  16. cp support-files/my-large.cnf /etc/my.cnf
  17. ## 加入mySQL命令
  18. export PATH=$PATH:/usr/local/mysql/bin
  19. ## 定义头文件
  20. ln -sv /usr/local/mysql/include /usr/include/mysql
  21. ldconfig

②:配置过程

 

vim /etc/my.cnf
在[mysqld]段内加入并修改以下两处
datadir = /mydata/data
thread_concurrency 2    ## (并发线程数,一般是cpu核心的两倍)

 

 

vim /etc/profile 在里面加入:
PATH=$PATH:/usr/local/mysql/bin

 

 

vim /etc/ld.so.conf.d/mysql.conf 写入
/usr/local/mysql/lib

 

③:启用过程

  1. service mysqld start
  2. cd /root/lnmp

 

输入以下SQL语句,创建一个具有root权限的用户(admin)和密码(12345678):
GRANT ALL PRIVILEGES ON *.* TO ‘admin’@'localhost’ IDENTIFIED BY ’12345678′;
GRANT ALL PRIVILEGES ON *.* TO ‘admin’@’127.0.0.1′ IDENTIFIED BY ’12345678′;

 

(3)编译安装PHP(FastCGI模式)

  1. tar zxvf php-5.2.14.tar.gz
  2. gzip -cd php-5.2.14-fpm-0.5.14.diff.gz | patch -d php-5.2.14 -p1
  3. cd php-5.2.14/
  4. ./configure –prefix=/usr/local/php \
  5. –with-config-file-path=/usr/local/php/etc \
  6. –with-mysql=/usr/local/mysql \
  7. –with-mysqli=/usr/local/mysql/bin/mysql_config \
  8. –with-iconv-dir=/usr/local \
  9. –with-freetype-dir \
  10. –with-jpeg-dir \
  11. –with-png-dir \
  12. –with-zlib \
  13. –with-libxml-dir=/usr \
  14. –enable-xml \
  15. –disable-rpath \
  16. –enable-discard-path \
  17. –enable-safe-mode \
  18. –enable-bcmath \
  19. –enable-shmop \
  20. –enable-sysvsem \
  21. –enable-inline-optimization \
  22. –with-curl –with-curlwrappers \
  23. –enable-mbregex \
  24. –enable-fastcgi \
  25. –enable-fpm \
  26. –enable-force-cgi-redirect \
  27. –enable-mbstring –with-mcrypt \
  28. –with-gd –enable-gd-native-ttf \
  29. –with-openssl \
  30. –with-mhash \
  31. –enable-pcntl \
  32. –enable-sockets \
  33. –with-ldap \
  34. –with-ldap-sasl \
  35. –with-xmlrpc \
  36. –enable-zip \
  37. –enable-soap
  38. make ZEND_EXTRA_LIBS=’-liconv’
  39. make install
  40. cp php.ini-dist /usr/local/php/etc/php.ini
  41. cd ../

(4)编译安装PHP5扩展模块

  1. tar zxvf memcache-2.2.5.tgz
  2. cd memcache-2.2.5/
  3. /usr/local/php/bin/phpize
  4. ./configure –with-php-config=/usr/local/php/bin/php-config
  5. make
  6. make install
  7. cd ../
  1. tar jxvf eaccelerator-0.9.6.1.tar.bz2
  2. cd eaccelerator-0.9.6.1/
  3. /usr/local/php/bin/phpize
  4. ./configure –enable-eaccelerator=shared \
  5. –with-php-config=/usr/local/php/bin/php-config
  6. make
  7. make install
  8. cd ../
  1. tar zxvf PDO_MYSQL-1.0.2.tgz
  2. cd PDO_MYSQL-1.0.2/
  3. /usr/local/php/bin/phpize
  4. ./configure –with-php-config=/usr/local/php/bin/php-config \
  5. –with-pdo-mysql=/usr/local/mysql
  6. make
  7. make install
  8. cd ../
  1. tar zxvf ImageMagick.tar.gz
  2. cd ImageMagick-6.5.1-2/
  3. ./configure
  4. make
  5. make install
  6. cd ../
  1. tar zxvf imagick-2.3.0.tgz
  2. cd imagick-2.3.0/
  3. /usr/local/php/bin/phpize
  4. ./configure –with-php-config=/usr/local/php/bin/php-config
  5. make
  6. make install
  7. cd ../

(5)修改php.ini文件

 

手工修改:
查找/usr/local/php/etc/php.ini中的extension_dir = “./”
修改为
extension_dir = “/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/”增加以下几行
extension = “memcache.so”
extension = “pdo_mysql.so”
extension = “imagick.so”

再查找output_buffering = Off 修改为 On

再查找 ;cgi.fix_pathinfo=0 去掉“;”号,防止Nginx文件类型错误解析漏洞。

 

(6)配置eAccelerator加速PHP:

  1. mkdir -p /usr/local/eaccelerator_cache
  2. vi /usr/local/php/etc/php.ini

跳到配置文件的最末尾,加上以下配置信息:

 

[eaccelerator]
zend_extension=”/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/eaccelerator.so”
eaccelerator.shm_size=”64″
eaccelerator.cache_dir=”/usr/local/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″
(7)创建www用户和组,以及虚拟主机使用的目录:


 

  1. /usr/sbin/groupadd www
  2. /usr/sbin/useradd -g www www
  3. mkdir -p /web
  4. chmod  w /web
  5. chown -R www:www /web

(8)创建php-fpm配置文件(php-fpm是为PHP打的一个FastCGI管理补丁,可以平滑变更php.ini配置而无需重启php-cgi):
在/usr/local/php/etc/目录中创建php-fpm.conf文件:

  1. rm -f /usr/local/php/etc/php-fpm.conf
  2. vim /usr/local/php/etc/php-fpm.conf

 

输入以下内容<?xml version=”1.0″ ?>
<configuration>
All relative paths in this config are relative to php’s install prefix
<section name=”global_options”>
Pid file
<value name=”pid_file”>/usr/local/php/logs/php-fpm.pid</value>
Error log file
<value name=”error_log”>/usr/local/php/logs/php-fpm.log</value>
Log level
<value name=”log_level”>notice</value>
When this amount of php processes exited with SIGSEGV or SIGBUS …
<value name=”emergency_restart_threshold”>10</value>
… in a less than this interval of time, a graceful restart will be initiated.
Useful to work around accidental curruptions in accelerator’s shared memory.
<value name=”emergency_restart_interval”>1m</value>
Time limit on waiting child’s reaction on signals from master
<value name=”process_control_timeout”>5s</value>
Set to ‘no’ to debug fpm
<value name=”daemonize”>yes</value>
</section>

<workers>
<section name=”pool”>
Name of pool. Used in logs and stats.
<value name=”name”>default</value>
Address to accept fastcgi requests on.
Valid syntax is ‘ip.ad.re.ss:port’ or just ‘port’ or ‘/path/to/unix/socket’
<value name=”listen_address”>127.0.0.1:9000</value>
<value name=”listen_options”>
Set listen(2) backlog
<value name=”backlog”>-1</value>
Set permissions for unix socket, if one used.
In Linux read/write permissions must be set in order to allow connections from web server.
Many BSD-derrived systems allow connections regardless of permissions.
<value name=”owner”></value>
<value name=”group”></value>
<value name=”mode”>0666</value>
</value>
Additional php.ini defines, specific to this pool of workers.
<value name=”php_defines”>
<value name=”sendmail_path”>/usr/sbin/sendmail -t -i</value>
<value name=”display_errors”>0</value>
</value>
Unix user of processes
<value name=”user”>www</value>
Unix group of processes
<value name=”group”>www</value>
Process manager settings
<value name=”pm”>
Sets style of controling worker process count.
Valid values are ‘static’ and ‘apache-like’
<value name=”style”>static</value>
Sets the limit on the number of simultaneous requests that will be served.
Equivalent to Apache MaxClients directive.
Equivalent to PHP_FCGI_CHILDREN environment in original php.fcgi
Used with any pm_style.
<value name=”max_children”>128</value>
Settings group for ‘apache-like’ pm style
<value name=”apache_like”>
Sets the number of server processes created on startup.
Used only when ‘apache-like’ pm_style is selected
<value name=”StartServers”>20</value>
Sets the desired minimum number of idle server processes.
Used only when ‘apache-like’ pm_style is selected
<value name=”MinSpareServers”>5</value>
Sets the desired maximum number of idle server processes.
Used only when ‘apache-like’ pm_style is selected
<value name=”MaxSpareServers”>35</value>
</value>
</value>

The timeout (in seconds) for serving a single request after which the worker process will be terminated
Should be used when ‘max_execution_time’ ini option does not stop script execution for some reason
’0s’ means ‘off’
<value name=”request_terminate_timeout”>0s</value>
The timeout (in seconds) for serving of single request after which a php backtrace will be dumped to slow.log file
’0s’ means ‘off’
<value name=”request_slowlog_timeout”>0s</value>
The log file for slow requests
<value name=”slowlog”>logs/slow.log</value>
Set open file desc rlimit
<value name=”rlimit_files”>65535</value>
Set max core size rlimit
<value name=”rlimit_core”>0</value>
Chroot to this directory at the start, absolute path
<value name=”chroot”></value>
Chdir to this directory at the start, absolute path
<value name=”chdir”></value>
Redirect workers’ stdout and stderr into main error log.
If not set, they will be redirected to /dev/null, according to FastCGI specs
<value name=”catch_workers_output”>yes</value>
How much requests each process should execute before respawn.
Useful to work around memory leaks in 3rd party libraries.
For endless request processing please specify 0
Equivalent to PHP_FCGI_MAX_REQUESTS
<value name=”max_requests”>1024</value>
Comma separated list of ipv4 addresses of FastCGI clients that allowed to connect.
Equivalent to FCGI_WEB_SERVER_ADDRS environment in original php.fcgi (5.2.2 )
Makes sense only with AF_INET listening socket.
<value name=”allowed_clients”>127.0.0.1</value>
Pass environment variables like LD_LIBRARY_PATH
All $VARIABLEs are taken from current environment
<value name=”environment”>
<value name=”HOSTNAME”>$HOSTNAME</value>
<value name=”PATH”>/usr/local/bin:/usr/bin:/bin</value>
<value name=”TMP”>/tmp</value>
<value name=”TMPDIR”>/tmp</value>
<value name=”TEMP”>/tmp</value>
<value name=”OSTYPE”>$OSTYPE</value>
<value name=”MACHTYPE”>$MACHTYPE</value>
<value name=”MALLOC_CHECK_”>2</value>
</value>
</section>
</workers>
</configuration>

 

(9)启动php-cgi进程,监听127.0.0.1的9000端口,进程数为128(如果服务器内存小于3GB,可以只开启64个进程),用户为www:

  1. ulimit -SHn 65535
  2. /usr/local/php/sbin/php-fpm start

注意:如果要重启,可以使用 reload 命令

 


三、安装Nginx 1.1.3

(1)安装Nginx所需的pcre库:

  1. tar zxvf pcre-8.10.tar.gz
  2. cd pcre-8.10/
  3. ./configure
  4. make && make install
  5. cd ../

(2)安装Nginx

  1. tar zxvf nginx-1.1.3.tar.gz
  2. cd nginx-1.1.3/
  3. ./configure –user=www \
  4. –group=www \
  5. –prefix=/usr/local/nginx \
  6. –with-http_stub_status_module \
  7. –with-http_ssl_module
  8. make && make install
  9. cd ../

(3)创建Nginx日志目录

  1. mkdir -p /web/logs
  2. chmod  w /web/logs
  3. chown -R www:www /web/logs

(4)创建Nginx配置文件

在/usr/local/nginx/conf/目录中创建nginx.conf文件:

  1. rm -f /usr/local/nginx/conf/nginx.conf
  2. vi /usr/local/nginx/conf/nginx.conf

输入以下内容:

 

user  www www;worker_processes 8;  ## 根据自己的CPU来决定到底应该是多少
error_log  /web/logs/nginx_error.log  crit;
pid        /usr/local/nginx/nginx.pid;

#Specifies the value for maximum file descriptors that can be opened by this process.
worker_rlimit_nofile 65535;

events
{
use epoll;
worker_connections 65535;
}

http
{
include       mime.types;
default_type  application/octet-stream;
#charset  gb2312;
server_names_hash_bucket_size 128;
client_header_buffer_size 32k;
large_client_header_buffers 4 32k;

client_max_body_size 8m;
sendfile on;
tcp_nopush     on;

keepalive_timeout 60;
tcp_nodelay on;

fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
fastcgi_buffer_size 64k;
fastcgi_buffers 4 64k;
fastcgi_busy_buffers_size 128k;
fastcgi_temp_file_write_size 128k;

gzip on;
gzip_min_length  1k;
gzip_buffers     4 16k;
gzip_http_version 1.0;
gzip_comp_level 2;
gzip_types       text/plain application/x-javascript text/css application/xml;
gzip_vary on;

#limit_zone  crawler  $binary_remote_addr  10m;

server
{
listen       80;
server_name  192.168.0.156;  ## 这里简单测试,所以直接使用IP
index index.html index.htm index.php;
root  /web;

#limit_conn   crawler  20;

location ~ .*\.(php|php5)?$
{
#fastcgi_pass  unix:/tmp/php-cgi.sock;
fastcgi_pass  127.0.0.1:9000;
fastcgi_index index.php;
include fcgi.conf;
}

location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires      30d;
}

location ~ .*\.(js|css)?$
{
expires      1h;
}

location /status {
stub_status on;   ## 开启状态统计,为后面的优化做测试
}

log_format  access  ’$remote_addr – $remote_user [$time_local] “$request” ‘
‘$status $body_bytes_sent “$http_referer” ‘
‘”$http_user_agent” $http_x_forwarded_for’;

access_log  /web/logs/access.log  access;
}
}

 

②、在/usr/local/nginx/conf/目录中创建.conf文件:

  1. vi /usr/local/nginx/conf/fcgi.conf

输入以下内容:

 

fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;
fastcgi_param  SERVER_SOFTWARE    nginx;
fastcgi_param  QUERY_STRING       $query_string;
fastcgi_param  REQUEST_METHOD     $request_method;
fastcgi_param  CONTENT_TYPE       $content_type;
fastcgi_param  CONTENT_LENGTH     $content_length;
fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;
fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;
fastcgi_param  REQUEST_URI        $request_uri;
fastcgi_param  DOCUMENT_URI       $document_uri;
fastcgi_param  DOCUMENT_ROOT      $document_root;
fastcgi_param  SERVER_PROTOCOL    $server_protocol;
fastcgi_param  REMOTE_ADDR        $remote_addr;
fastcgi_param  REMOTE_PORT        $remote_port;
fastcgi_param  SERVER_ADDR        $server_addr;
fastcgi_param  SERVER_PORT        $server_port;
fastcgi_param  SERVER_NAME        $server_name;
# PHP only, required if PHP was built with –enable-force-cgi-redirect
fastcgi_param  REDIRECT_STATUS    200;

 

(5)启动Nginx

  1. ulimit -SHn 65535
  2. /usr/local/nginx/sbin/nginx

(6)配置开机自动启动Nginx PHP

  1. vim /etc/rc.local

在末尾增加以下内容:

 

ulimit -SHn 65535
/usr/local/php/sbin/php-fpm start
/usr/local/nginx/sbin/nginx

 

 


四、简单优化,实现高并发!

(1)Nginx的优化

一般来说nginx 配置文件中对优化比较有作用的为以下几项:

 

worker_processes 8;
nginx 进程数,建议按照cpu 数目来指定,一般为它的倍数。worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000;
为每个进程分配cpu,上例中将8 个进程分配到8 个cpu,当然可以写多个,或者将一个进程分配到多个cpu。

worker_rlimit_nofile 102400;
这个指令是指当一个nginx 进程打开的最多文件描述符数目,理论值应该是最多打开文件数(ulimit -n)与nginx 进程数相除,但是nginx 分配请求并不是那么均匀,所以最好与ulimit-n 的值保持一致。

use epoll;
使用epoll 的I/O 模型,这个不用说了吧。

worker_connections 102400;
每个进程允许的最多连接数, 理论上每台nginx 服务器的最大连接数为worker_processes*worker_connections。

keepalive_timeout 60;
keepalive 超时时间。

client_header_buffer_size 4k;
客户端请求头部的缓冲区大小,这个可以根据你的系统分页大小来设置,一般一个请求头的大小不会超过1k,不过由于一般系统分页都要大于1k,所以这里设置为分页大小。分页大小可以用命令getconf PAGESIZE 取得。

open_file_cache max=102400 inactive=20s;
这个将为打开文件指定缓存,默认是没有启用的,max 指定缓存数量,建议和打开文件数一致,inactive 是指经过多长时间文件没被请求后删除缓存。

open_file_cache_valid 30s;
这个是指多长时间检查一次缓存的有效信息。

open_file_cache_min_uses 1;
open_file_cache 指令中的inactive 参数时间内文件的最少使用次数,如果超过这个数字,文件描述符一直是在缓存中打开的,如上例,如果有一个文件在inactive 时间内一次没被使用,它将被移除。

 

 

(2)关于内核参数的优化:请修改文件/etc/sysctl.conf

 

net.ipv4.tcp_max_tw_buckets = 6000
timewait 的数量,默认是180000。net.ipv4.ip_local_port_range = 1024 65000
允许系统打开的端口范围。

net.ipv4.tcp_tw_recycle = 1
启用timewait 快速回收。

net.ipv4.tcp_tw_reuse = 1
开启重用。允许将TIME-WAIT sockets 重新用于新的TCP 连接。

net.ipv4.tcp_syncookies = 1
开启SYN Cookies,当出现SYN 等待队列溢出时,启用cookies 来处理。

net.core.somaxconn = 262144
web 应用中listen 函数的backlog 默认会给我们内核参数的net.core.somaxconn 限制到128,而nginx 定义的NGX_LISTEN_BACKLOG 默认为511,所以有必要调整这个值。

net.core.netdev_max_backlog = 262144
每个网络接口接收数据包的速率比内核处理这些包的速率快时,允许送到队列的数据包的最大数目。

net.ipv4.tcp_max_orphans = 262144
系统中最多有多少个TCP 套接字不被关联到任何一个用户文件句柄上。如果超过这个数字,孤儿连接将即刻被复位并打印出警告信息。这个限制仅仅是为了防止简单的DoS 攻击,不能过分依靠它或者人为地减小这个值,更应该增加这个值(如果增加了内存之后)。

net.ipv4.tcp_max_syn_backlog = 262144
记录的那些尚未收到客户端确认信息的连接请求的最大值。对于有128M 内存的系统而言,缺省值是1024,小内存的系统则是128。

net.ipv4.tcp_timestamps = 0
时间戳可以避免序列号的卷绕。一个1Gbps 的链路肯定会遇到以前用过的序列号。时间戳能够让内核接受这种“异常”的数据包。这里需要将其关掉。

net.ipv4.tcp_synack_retries = 1
为了打开对端的连接,内核需要发送一个SYN 并附带一个回应前面一个SYN 的ACK。也就是所谓三次握手中的第二次握手。这个设置决定了内核放弃连接之前发送SYN ACK 包的数量。

net.ipv4.tcp_syn_retries = 1
在内核放弃建立连接之前发送SYN 包的数量。

net.ipv4.tcp_fin_timeout = 1
如果套接字由本端要求关闭,这个参数决定了它保持在FIN-WAIT-2 状态的时间。对端可以出错并永远不关闭连接,甚至意外当机。缺省值是60 秒。2.2 内核的通常值是180 秒,你可以按这个设置,但要记住的是,即使你的机器是一个轻载的WEB 服务器,也有因为大量的死套接字而内存溢出的风险,FIN- WAIT-2 的危险性比FIN-WAIT-1 要小,因为它最多只能吃掉1.5K 内存,但是它们的生存期长些。

net.ipv4.tcp_keepalive_time = 30
当keepalive 起用的时候,TCP 发送keepalive 消息的频度。缺省是2 小时。

 

(3)关于FastCGI 的几个指令:

 

fastcgi_cache_path /usr/local/nginx/fastcgi_cache levels=1:2 keys_zone=TEST:10m inactive=5m;
这个指令为FastCGI 缓存指定一个路径,目录结构等级,关键字区域存储时间和非活动删除时间。fastcgi_connect_timeout 300;
指定连接到后端FastCGI 的超时时间。

fastcgi_send_timeout 300;
向FastCGI 传送请求的超时时间,这个值是指已经完成两次握手后向FastCGI 传送请求的超时时间。

fastcgi_read_timeout 300;
接收FastCGI 应答的超时时间,这个值是指已经完成两次握手后接收FastCGI 应答的超时时间。

fastcgi_buffer_size 4k;
指定读取FastCGI 应答第一部分需要用多大的缓冲区,一般第一部分应答不会超过1k,由于页面大小为4k,所以这里设置为4k。

fastcgi_buffers 8 4k;
指定本地需要用多少和多大的缓冲区来缓冲FastCGI 的应答。

fastcgi_busy_buffers_size 8k;
这个指令我也不知道是做什么用,只知道默认值是fastcgi_buffers 的两倍。

fastcgi_temp_file_write_size 8k;
在写入fastcgi_temp_path 时将用多大的数据块,默认值是fastcgi_buffers 的两倍。

fastcgi_cache TEST
开启FastCGI 缓存并且为其制定一个名称。个人感觉开启缓存非常有用,可以有效降低CPU 负载,并且防止502 错误。

fastcgi_cache_valid 200 302 1h;
fastcgi_cache_valid 301     1d;
fastcgi_cache_valid any     1m;

为指定的应答代码指定缓存时间,如上例中将200,302 应答缓存一小时,301 应答缓存1 天,其他为1 分钟。

fastcgi_cache_min_uses 1;
缓存在fastcgi_cache_path 指令inactive 参数值时间内的最少使用次数,如上例,如果在5 分钟内某文件1 次也没有被使用,那么这个文件将被移除。

fastcgi_cache_use_stale error timeout invalid_header http_500;
不知道这个参数的作用,猜想应该是让nginx 知道哪些类型的缓存是没用的。

 

(4)使用php-fpm 来管理FastCGI,可以修改配置文件中的以下值:

 

<value name=”max_children”>60</value>
同时处理的并发请求数,即它将开启最多60 个子线程来处理并发连接。<value name=”rlimit_files”>102400</value>
最多打开文件数。

<value name=”max_requests”>204800</value>
每个进程在重置之前能够执行的最多请求数。

 

(5)测试是使用apache自带的ab命令进行压力测试。

     ab -c 10000 -n 20000 http://192.168.0.156/index.php

标签: 服务器 lnmp

0

linux几种快速清空文件内容的方法

发布于:2013-10-21 11:49 作者:admin 浏览:1681 分类:系统架构

linux几种快速清空文件内容的方法 

$ : > filename #其中的 : 是一个占位符, 不产生任何输出.

$ > filename

$ echo "" > filename

$ echo /dev/null > filename

$ echo > filename

$ cat /dev/null > filename

 

标签: 清空文件

0

授权用户修改firefox插件修改HOST

发布于:2013-10-21 11:39 作者:admin 浏览:1897 

插件修改HOST的权限

 

Windows Vista/7

 

默认用户组

cacls %windir%/system32/drivers/etc/hosts /E /G Users:W

自定义用户

cacls %windir%/system32/drivers/etc/hosts /E /G "User Account Name":W

Linux

#chmod og+w /etc/hosts

Mac OS X

#chmod og+w /etc/hosts
 

标签: HOST 插件

0

centos 服务器日志位置。

发布于:2013-10-21 11:36 作者:admin 浏览:4 分类:系统架构

[该文章已设置加密,请点击标题输入密码访问]

标签: 日志

0

«... 8 9 10 11 12 13 14