<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>运达&#039;s  blog &#187; centos</title>
	<atom:link href="https://www.yunda51.com/?feed=rss2&#038;tag=centos" rel="self" type="application/rss+xml" />
	<link>https://www.yunda51.com</link>
	<description>运达的博客</description>
	<lastBuildDate>Wed, 12 Nov 2025 07:58:26 +0000</lastBuildDate>
	<language>zh-CN</language>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=4.0.19</generator>
	<item>
		<title>Mongodb安装及常用命令</title>
		<link>https://www.yunda51.com/?p=1821</link>
		<comments>https://www.yunda51.com/?p=1821#comments</comments>
		<pubDate>Tue, 26 Sep 2017 06:14:39 +0000</pubDate>
		<dc:creator><![CDATA[运达]]></dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Mongodb]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[centos]]></category>
		<category><![CDATA[mongodb]]></category>

		<guid isPermaLink="false">http://www.yunda51.com/?p=1821</guid>
		<description><![CDATA[mongodb的安装： 1、安装包存放目录： /app/tool/ 2、软件安装目录：/app/soft/ 1<a href="https://www.yunda51.com/?p=1821" class="read-more">Continue Reading</a>]]></description>
				<content:encoded><![CDATA[<p><strong>mongodb的安装：</strong><br />
1、安装包存放目录： /app/tool/<br />
2、软件安装目录：/app/soft/</p>
<pre class="wp-code-highlight prettyprint">
1: 下载mongodb www.mongodb.org  下载最新的stable版
2: 解压文件:tar zxvf mongodb-linux-x86_64-rhel70-3.4.9.tgz
3: 不用编译,本身就是编译后的二进制可执行文件.
4: 启动mongod服务
./bin/mongod --dbpath /mongodata/mdata/ --logpath /mongodata/mlog --fork --port 27017
参数解释:
--dbpath 数据存储目录
--logpath 日志存储目录
--port 运行端口(默认27017)
--fork 后台进程运行

5：开启你的mongodb：
/app/soft/mongodb3.4.9/bin/mongo 
或者进入到mongodb3.4.9 执行：./bin/mongo 也是可以的
</pre>
<p><strong>1: mongo入门命令</strong></p>
<pre class="wp-code-highlight prettyprint">
1.1: show dbs  查看当前的数据库
1.2 use databaseName 选库
1.2 show tables/collections 查看当前库下的collection

1.3 如何创建库?
Mongodb的库是隐式创建,你可以use 一个不存在的库
然后在该库下创建collection,即可创建库

1.4 db.createCollection(‘collectionName’)  
创建collection

1.5 collection允许隐式创建
Db.collectionName.insert(document);

1.6 db.collectionName.drop() ,
删除collection

1.7 db.dropDatabase();
删除database
</pre>
<p><strong>基本操作增删改查</strong><br />
增: insert</p>
<pre class="wp-code-highlight prettyprint">
介绍: mongodb存储的是文档,. 文档是json格式的对象.

语法: db.collectionName.isnert(document);

1: 增加单篇文档
Db.collectionName.insert({title:’nice day’});

2: 增加单个文档,并指定_id
Db.collectionName.insert({_id:8,age:78,name:’lisi’});

3.增加多个文档
db.collectionName.insert(
[
{time:&#039;friday&#039;,study:&#039;mongodb&#039;},
{_id:9,gender:&#039;male&#039;,name:&#039;QQ&#039;}
]
)
</pre>
<p>删:remove</p>
<pre class="wp-code-highlight prettyprint">
语法: db.collection.remove(查询表达式, 选项);
选项是指  {justOne:true/false},是否只删一行, 默认为false

注意
1: 查询表达式依然是个json对象
2: 查询表达式匹配的行,将被删掉.
3: 如果不写查询表达式,collections中的所有文档将被删掉.

例1: db.stu.remove({sn:’001’});
删除stu表中 sn属性值为’001’的文档 

例2: db.stu.remove({gender:’m’,true});
删除stu表中gender属性为m的文档,只删除1行.
</pre>
<p>改  update操作<br />
改谁? --- 查询表达式<br />
改成什么样? -- 新值 或 赋值表达式<br />
操作选项 ----- 可选参数</p>
<pre class="wp-code-highlight prettyprint">
语法: db.collection.update(查询表达式,新值,选项);
例:
db.news.update({name:&#039;QQ&#039;},{name:&#039;MSN&#039;});
是指选中news表中,name值为QQ的文档,并把其文档值改为{name:’MSN’},
结果: 文档中的其他列也不见了,改后只有_id和name列了.
即--新文档直接替换了旧文档,而不是修改

如果是想修改文档的某列,可以用$set关键字
db.collectionName.update(query,{$set:{name:’QQ’}})

修改时的赋值表达式
$set  修改某列的值
$unset 删除某个列
$rename 重命名某个列
$inc 增长某个列
$setOnInsert 当upsert为true时,并且发生了insert操作时,可以补充的字段.


Option的作用:
{upsert:true/false,multi:true/false}
Upsert---是指没有匹配的行,则直接插入该行.(和mysql中的replace一样)

例:db.stu.update({name:&#039;wuyong&#039;},{$set:{name:&#039;junshiwuyong&#039;}},{upsert:true});
如果有name=’wuyong’的文档,将被修改
如果没有,将添加此新文档



例:
db.news.update({_id:99},{x:123,y:234},{upsert:true});
没有_id=99的文档被修改,因此直接插入该文档

multi: 是指修改多行(即使查询表达式命中多行,默认也只改1行,如果想改多行,可以用此选项)
例:
db.news.update({age:21},{$set:{age:22}},{multi:true});
则把news中所有age=21的文档,都修改


查: find, findOne
语法: db.collection.find(查询表达式,查询的列);
Db.collections.find(表达式,{列1:1,列2:1});


例1:db.stu.find()
查询所有文档 所有内容

例2: db.stu.find({},{gendre:1})
查询所有文档,的gender属性 (_id属性默认总是查出来)

例3: db.stu.find({},{gender:1, _id:0})
查询所有文档的gender属性,且不查询_id属性

例3: db.stu.find({gender:’male’},{name:1,_id:0});
查询所有gender属性值为male的文档中的name属性
</pre>
<p><strong>查询表达式:</strong></p>
<pre class="wp-code-highlight prettyprint">
1: 最简单的查询表达式
{filed:value} ,是指查询field列的值为value的文档

2: $ne --- != 查询表达式
{field:{$nq:value}}
作用--查filed列的值 不等于 value 的文档

3: $nin --&gt; not in

4: $all
语法: {field:{$all:[v1,v2..]}} 
是指取出 field列是一个数组,且至少包含 v1,v2值

5: $exists 
语法: {field:{$exists:1}}
作用: 查询出含有field字段的文档

6: $nor,
{$nor,[条件1,条件2]}
是指  所有条件都不满足的文档为真返回


7:用正则表达式查询 以”诺基亚”开头的商品
例:db.goods.find({goods_name:/诺基亚.*/},{goods_name:1});

8: 用$where表达式来查询
例: db.goods.find({$where:&#039;this.cat_id != 3 &amp;&amp; this.cat_id != 11&#039;});

注意: 用$where查询时, mongodb是把bson结构的二进制数据转换为json结构的对象,
然后比较对象的属性是否满足表达式.

</pre>
<p>Update时可用的操作符<br />
例:</p>
<pre class="wp-code-highlight prettyprint">
-&gt;db.user.insert({name:&#039;lisi&#039;,age:12,sex:&#039;male&#039;,height:123,area:&#039;haidian&#039;});
-&gt;db.user.update({name:&#039;lisi&#039;},{$set:{area:&#039;chaoyang&#039;},$unset:{height:1},$inc:{age:1},$rename:{sex:&#039;gender&#039;}});
&gt; db.user.find();
{ &quot;_id&quot; : ObjectId(&quot;51fc01c4f5de93e1f2856e33&quot;), &quot;age&quot; : 13, &quot;area&quot; : &quot;chaoyang&quot;, &quot;gender&quot; : &quot;male&quot;, &quot;name&quot; : &quot;lisi&quot; }

$setOnInsert -&gt;相当于mysql中的列的默认值
</pre>
<p><strong>游标操作cursor</strong></p>
<p>游标是什么\?<br />
通俗的说,游标不是查询结果,而是查询的返回资源,或者接口.<br />
通过这个接口,你可以逐条读取.<br />
就像php中的fopen打开文件,得到一个资源一样, 通过资源,可以一行一行的读文件.</p>
<p>声明游标:</p>
<pre class="wp-code-highlight prettyprint">
var cursor =  db.collectioName.find(query,projection);
Cursor.hasNext() ,判断游标是否已经取到尽头
Cursor. Next() , 取出游标的下1个单元

用while来循环游标
&gt; var mycursor = db.bar.find({_id:{$lte:5}})
&gt; while(mycursor.hasNext()) {
... printjson(mycursor.next());
... }
</pre>
<p>例:</p>
<pre class="wp-code-highlight prettyprint">
// 声明游标
var cursor = db.goods.find();
// 循环游标
for(var doc=true;cursor.hasNext();) { printjson(cursor.next());}

也可以简写:
for(var  cursor=db.goods.find(), doc=true;cursor.hasNext();) { printjson(cursor.next());}


游标还有一个迭代函数,允许我们自定义回调函数来逐个处理每个单元.
cursor.forEach(回调函数);
例:
&gt; var gettitle = function(obj) {print(obj.goods_name)}
&gt; var cursor = db.goods.find();
&gt; cursor.forEach(gettitle);


游标在分页中的应用
比如查到10000行,跳过100页,取10行.
一般地,我们假设每页N行, 当前是page页
就需要跳过前 (page-1)*N 行, 再取N行, 在mysql中, limit offset,N来实现
在mongo中,用skip(), limit()函数来实现的

如 var mycursor = db.bar.find().skip(9995);
则是查询结果中,跳过前9995行

查询第901页,每页10条
则是 var mytcursor = db.bar.find().skip(9000).limit(10);


通过cursor一次性得到所有数据, 并返回数组.
例:
&gt;var cursor = db.goods.find();
&gt; printjson(cursor.toArray());  //看到所有行
&gt; printjson(cursor.toArray()[2]);  //看到第2行

注意: 不要随意使用toArray()
原因: 会把所有的行立即以对象形式组织在内存里.
可以在取出少数几行时,用此功能.
</pre>
<p><strong>索引创建</strong></p>
<p>1:索引提高查询速度,降低写入速度,权衡常用的查询字段,不必在太多列上建索引<br />
2.在mongodb中,索引可以按字段升序/降序来创建,便于排序<br />
3.默认是用btree来组织索引文件,2.4版本以后,也允许建立hash索引.</p>
<p>查看查询计划</p>
<pre class="wp-code-highlight prettyprint">
db.find(query).explain();
&quot;cursor&quot; : &quot;BasicCursor&quot;, ----说明没有索引发挥作用
&quot;nscannedObjects&quot; : 1000 ---理论上要扫描多少行
cursor&quot; : &quot;BtreeCursor sn_1&quot;, 用到的btree索引
</pre>
<p>常用命令:</p>
<pre class="wp-code-highlight prettyprint">
查看当前索引状态: db.collection.getIndexes();

创建普通的单列索引:db.collection.ensureIndex({field:1/-1});  1是升续 2是降续

删除单个索引
db.collection.dropIndex({filed:1/-1});

一下删除所有索引
db.collection.dropIndexes();

创建多列索引  db.collection.ensureIndex({field1:1/-1, field2:1/-1});

创建子文档索引
db.collection.ensureIndex({filed.subfield:1/-1});


创建唯一索引:
db.collection.ensureIndex({filed.subfield:1/-1}, {unique:true});
</pre>
<p>创建稀疏索引:<br />
稀疏索引的特点------如果针对field做索引,针对不含field列的文档,将不建立索引.<br />
与之相对,普通索引,会把该文档的field列的值认为NULL,并建索引.<br />
适宜于: 小部分文档含有某列时.</p>
<pre class="wp-code-highlight prettyprint">
db.collection.ensureIndex({field:1/-1},{sparse:true});

&gt; db.tea.find();
{ &quot;_id&quot; : ObjectId(&quot;5275f99b87437c610023597b&quot;), &quot;email&quot; : &quot;a@163.com&quot; }
{ &quot;_id&quot; : ObjectId(&quot;5275f99e87437c610023597c&quot;), &quot;email&quot; : &quot;b@163.com&quot; }
{ &quot;_id&quot; : ObjectId(&quot;5275f9e887437c610023597e&quot;), &quot;email&quot; : &quot;c@163.com&quot; }
{ &quot;_id&quot; : ObjectId(&quot;5275fa3887437c6100235980&quot;) }
</pre>
<p>如上内容,最后一行没有email列,<br />
如果分别加普通索引,和稀疏索引,<br />
对于最后一行的email分别当成null 和 忽略最后一行来处理.<br />
根据{email:null}来查询,前者能查到,而稀疏索引查不到最后一行.</p>
<p>创建哈希索引(2.4新增的)<br />
哈希索引速度比普通索引快,但是,无能对范围查询进行优化.<br />
适宜于---随机性强的散列<br />
db.collection.ensureIndex({file:’hashed’});</p>
<p>重建索引<br />
一个表经过很多次修改后,导致表的文件产生空洞,索引文件也如此.<br />
可以通过索引的重建,减少索引文件碎片,并提高索引的效率.<br />
类似mysql中的optimize table</p>
<p>db.collection.reIndex()</p>
<p><strong>Mongodb导出与导入</strong></p>
<p>1: 导入/导出可以操作的是本地的mongodb服务器,也可以是远程的.<br />
所以,都有如下通用选项:</p>
<pre class="wp-code-highlight prettyprint">
-h host   主机
--port port    端口
-u username 用户名
-p passwd   密码

</pre>
<p>2: mongoexport 导出json格式的文件<br />
问: 导出哪个库,哪张表,哪几列,哪几行?</p>
<pre class="wp-code-highlight prettyprint">
-d  库名
-c  表名
-f  field1,field2...列名
-q  查询条件
-o  导出的文件名
-- csv  导出csv格式(便于和传统数据库交换数据)
</pre>
<p>例:</p>
<pre class="wp-code-highlight prettyprint">
[root@localhost mongodb]# ./bin/mongoexport -d test -c news -o test.json
connected to: 127.0.0.1
exported 3 records
[root@localhost mongodb]# ls
bin  dump  GNU-AGPL-3.0  README  test.json  THIRD-PARTY-NOTICES
[root@localhost mongodb]# more test.json 
{ &quot;_id&quot; : { &quot;$oid&quot; : &quot;51fc59c9fecc28d8316cfc03&quot; }, &quot;title&quot; : &quot;aaaa&quot; }
{ &quot;_id&quot; : { &quot;$oid&quot; : &quot;51fcaa3c5eed52c903a91837&quot; }, &quot;title&quot; : &quot;today is sataday&quot; }
{ &quot;_id&quot; : { &quot;$oid&quot; : &quot;51fcaa445eed52c903a91838&quot; }, &quot;title&quot; : &quot;ok now&quot; }
</pre>
<p>例2: 只导出goods_id,goods_name列</p>
<pre class="wp-code-highlight prettyprint">
./bin/mongoexport -d test -c goods -f goods_id,goods_name -o goods.json
</pre>
<p>例3: 只导出价格低于1000元的行</p>
<pre class="wp-code-highlight prettyprint">
./bin/mongoexport -d test -c goods -f goods_id,goods_name,shop_price -q ‘{shop_price:{$lt:200}}’ -o goods.json
</pre>
<p>注: _id列总是导出</p>
<p><strong>Mongoimport 导入</strong></p>
<pre class="wp-code-highlight prettyprint">
-d 待导入的数据库
-c 待导入的表(不存在会自己创建)
--type  csv/json(默认)
--file 备份文件路径
</pre>
<pre class="wp-code-highlight prettyprint">
例1: 导入json
./bin/mongoimport -d test -c goods --file ./goodsall.json

例2: 导入csv
./bin/mongoimport -d test -c goods --type csv -f goods_id,goods_name --file ./goodsall.csv 

./bin/mongoimport -d test -c goods --type csv --headline -f goods_id,goods_name --file ./goodsall.csv 

</pre>
<p>mongodump 导出二进制bson结构的数据及其索引信息</p>
<pre class="wp-code-highlight prettyprint">
-d  库名
-c  表名
-f  field1,field2...列名
</pre>
<p>例: </p>
<pre class="wp-code-highlight prettyprint">
mongodum -d test  [-c 表名]  默认是导出到mongo下的dump目录
</pre>
<p>规律:<br />
1:导出的文件放在以database命名的目录下<br />
2: 每个表导出2个文件,分别是bson结构的数据文件, json的索引信息<br />
3: 如果不声明表名, 导出所有的表</p>
<p>mongorestore 导入二进制文件<br />
例:</p>
<pre class="wp-code-highlight prettyprint">
 ./bin/mongorestore -d test --directoryperdb dump/test/ (mongodump时的备份目录)
</pre>
<p>二进制备份,不仅可以备份数据,还可以备份索引,<br />
备份数据比较小.</p>
<p>mongodb的用户管理</p>
<p>注意:<br />
A)在mongodb中,有一个admin数据库, 牵涉到服务器配置层面的操作,需要先切换到admin数据.<br />
即 use admin , -->相当于进入超级用户管理模式.</p>
<p>B)mongo的用户是以数据库为单位来建立的, 每个数据库有自己的管理员.</p>
<p>C) 我们在设置用户时,需要先在admin数据库下建立管理员---这个管理员登陆后,相当于超级管理员.</p>
<p>0: 查看用户</p>
<p>1: 添加用户<br />
命令:db.addUser();<br />
简单参数: db.addUser(用户名,密码,是否只读)</p>
<p>注意: 添加用户后,我们再次退出并登陆,发现依然可以直接读数据库?<br />
原因: mongodb服务器启动时, 默认不是需要认证的.<br />
要让用户生效, 需要启动服务器时,就指定 --auth 选项.<br />
这样, 操作时,就需要认证了.</p>
<p>例: </p>
<pre class="wp-code-highlight prettyprint">
1: 添加用户
&gt; use admin
&gt; db.addUser(‘sa’,’sa’,false);

2: 认证
&gt; use test
&gt; db.auth(用户名,密码);

3: 修改用户密码
&gt; use test
&gt; db.changeUserPassword(用户名, 新密码);

3:删除用户
&gt; use test
&gt; db.removeUser(用户名);
</pre>
<p>注: 如果需要给用户添加更多的权限,可以用json结构来传递用户参数<br />
例:</p>
<pre class="wp-code-highlight prettyprint">
&gt; use test
&gt;db.addUser({user:&#039;guan&#039;,pwd:&#039;111111&#039;,roles:[&#039;readWrite,dbAdmin&#039;]});

replication set复制集
replicattion set 多台服务器维护相同的数据副本,提高服务器的可用性.
</pre>
<p><strong>Replication set 设置全过程</strong><br />
0:创建目录
<pre class="wp-code-highlight prettyprint">

mkdir -p /data/r0 /data/r1 /data/r2
</pre>
<p>1:启动3个实例,且声明实例属于某复制集</p>
<pre class="wp-code-highlight prettyprint">
./bin/mongod --port 27017 --dbpath /data/r0 --smallfiles --replSet rsa --fork --logpath /var/log/mongo17.log
./bin/mongod --port 27018 --dbpath /data/r1 --smallfiles --replSet rsa --fork --logpath /var/log/mongo18.log
./bin/mongod --port 27019 --dbpath /data/r2 --smallfiles --replSet rsa --fork --logpath /var/log/mongo19.log

</pre>
<p>2:配置</p>
<pre class="wp-code-highlight prettyprint">
rsconf = {
    _id:&#039;rsa&#039;,
    members:
    [
        {_id:0,
        host:&#039;192.168.1.201:27017&#039;
        }
    ]
}

</pre>
<p>3: 根据配置做初始化</p>
<pre class="wp-code-highlight prettyprint">
rs.initiate(rsconf);
</pre>
<p>4: 添加节点</p>
<pre class="wp-code-highlight prettyprint">
rs.add(&#039;192.168.1.201:27018&#039;);
rs.add(&#039;192.168.1.201:27019&#039;);
</pre>
<p>5:查看状态</p>
<pre class="wp-code-highlight prettyprint">
rs.status();
</pre>
<p>6:删除节点</p>
<pre class="wp-code-highlight prettyprint">
rs.remove(&#039;192.168.1.201:27019&#039;);
</pre>
<p>7:主节点插入数据</p>
<pre class="wp-code-highlight prettyprint">
&gt;use test
&gt;db.user.insert({uid:1,name:&#039;lily&#039;});
</pre>
<p>8:连接secondary查询同步情况</p>
<pre class="wp-code-highlight prettyprint">
./bin/mongo --port 27019
&gt;use test
&gt;show tables

rsa:SECONDARY&gt; show tables;
Sat Aug 17 16:03:55.786 JavaScript execution failed: error: { &quot;$err&quot; : &quot;not master and slaveOk=false&quot;, &quot;code&quot; : 13435 } 
</pre>
<p>8.1 出现上述错误,是因为slave默认不许读写</p>
<pre class="wp-code-highlight prettyprint">
&gt;rs.slaveOk();
&gt;show tables
</pre>
<p>#看到与primary 一致的数据</p>
<p><strong>分片：</strong></p>
<p>1:在3台独立服务器上,分别运行 27017,27018,27019实例, 互为副本集,形成3套repl set<br />
2: 在3台服务器上,各配置config server, 运行27020端口上</p>
<p>3: 配置mongos</p>
<pre class="wp-code-highlight prettyprint">
./bin/mongos --port 30000 \
 --dbconfig 192.168.1.201:27020,192.168.1.202:27020,192.168.1.203:27020
</pre>
<p>4:连接路由器</p>
<pre class="wp-code-highlight prettyprint">
./bin/mongo --port 30000
</pre>
<p>5: 添加repl set为片</p>
<pre class="wp-code-highlight prettyprint">
&gt;sh.addShard(‘192.168.1.201:27017’);
&gt;sh.addShard(‘192.168.1.203:27017’);
&gt;sh.addShard(‘192.168.1.203:27017’);
</pre>
<p>6: 添加待分片的库</p>
<pre class="wp-code-highlight prettyprint">
&gt;sh.enableSharding(databaseName);
</pre>
<p>7: 添加待分片的表</p>
<pre class="wp-code-highlight prettyprint">
&gt;sh.shardCollection(‘dbName.collectionName’,{field:1});
</pre>
<p>Field是collection的一个字段,系统将会利用filed的值,来计算应该分到哪一个片上.<br />
这个filed叫”片键”, shard key</p>
<p>mongodb不是从单篇文档的级别,绝对平均的散落在各个片上, </p>
<p>而是N篇文档,形成一个块"chunk",<br />
优先放在某个片上,<br />
当这片上的chunk,比另一个片的chunk,区别比较大时, (>=3) ,会把本片上的chunk,移到另一个片上, 以chunk为单位,<br />
维护片之间的数据均衡</p>
<p>问: 为什么插入了10万条数据,才2个chunk?<br />
答: 说明chunk比较大(默认是64M)<br />
在config数据库中,修改chunksize的值.</p>
<p>问: 既然优先往某个片上插入,当chunk失衡时,再移动chunk,<br />
自然,随着数据的增多,shard的实例之间,有chunk来回移动的现象,这将带来什么问题?<br />
答: 服务器之间IO的增加, </p>
<p>接上问: 能否我定义一个规则, 某N条数据形成1个块,预告分配M个chunk,<br />
M个chunk预告分配在不同片上.<br />
以后的数据直接入各自预分配好的chunk,不再来回移动?</p>
<p>答: 能, 手动预先分片!</p>
<p>以shop.user表为例</p>
<pre class="wp-code-highlight prettyprint">
1: sh.shardCollection(‘shop.user’,{userid:1}); //user表用userid做shard key
2: for(var i=1;i&lt;=40;i++) { sh.splitAt(&#039;shop.user&#039;,{userid:i*1000}) } // 预先在1K 2K...40K这样的界限切好chunk(虽然chunk是空的), 这些chunk将会均匀移动到各片上.
3: 通过mongos添加user数据. 数据会添加到预先分配好的chunk上, chunk就不会来回移动了.
</pre>
<p>转载请注明转自:<a href="http://www.yunda51.com">运达's blog</a> 原文地址：<a href="http://www.yunda51.com/1821.html">http://www.yunda51.com/1821.html</a></p>
]]></content:encoded>
			<wfw:commentRss>https://www.yunda51.com/?feed=rss2&#038;p=1821</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>CentOs7编译安装LNMP环境(nginx+mysql+php)</title>
		<link>https://www.yunda51.com/?p=1806</link>
		<comments>https://www.yunda51.com/?p=1806#comments</comments>
		<pubDate>Tue, 12 Sep 2017 08:14:46 +0000</pubDate>
		<dc:creator><![CDATA[运达]]></dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Mysql]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[centos]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.yunda51.com/?p=1806</guid>
		<description><![CDATA[最近重新整理下LNMP环境搭建的步骤： 1.1路径说明： 1、安装包存放目录： /app/tool/ 2、软件<a href="https://www.yunda51.com/?p=1806" class="read-more">Continue Reading</a>]]></description>
				<content:encoded><![CDATA[<p>最近重新整理下LNMP环境搭建的步骤：<br />
1.1路径说明：<br />
1、安装包存放目录： /app/tool/<br />
2、软件安装目录：/app/soft/<br />
3、项目存放目录：/app/www/<br />
4、提示：管理用户是www<br />
5、启动路径：</p>
<pre class="wp-code-highlight prettyprint">1) mysql：/etc/init.d/mysqld {start|stop|restart}
2) php：/app/soft/php5.6.16/sbin/php-fpm
3) nginx：/app/soft/nginx/sbin/nginx -t &amp;amp;&amp;amp; /app/soft/nginx/sbin/nginx -s reload
</pre>
<p>设置开机自动启动：<br />
<strong>编辑：</strong></p>
<pre class="wp-code-highlight prettyprint">
vim /etc/rc.local
</pre>
<p><strong>添加：</strong></p>
<pre class="wp-code-highlight prettyprint">
#开机启动mysql服务
/etc/init.d/mysqld start
#开机启动php服务
/app/soft/php5.6.16/sbin/php-fpm
#开机启动Nginx服务
/app/soft/nginx/sbin/nginx
#关闭防火墙
systemctl stop firewalld.service
</pre>
<p><strong>mysql的安装（版本：mysql-5.5.25）：</strong><br />
1、上传cmake-2.8.8.tar.gz mysql-5.5.25.tar.gz<br />
2、安装编译MySQL过程中需要的依赖包：</p>
<pre class="wp-code-highlight prettyprint">yum install ncurses-devel libaio-devel -y
yum install gcc-c++ -y
</pre>
<p>3、安装编译安装需要的软件：</p>
<pre class="wp-code-highlight prettyprint">cd /app/tool/
tar zxvf cmake-2.8.8.tar.gz
cd cmake-2.8.8
./configure 
gmake
gmake install
</pre>
<p>4、开始安装MySQL，在主服务器上搭建MySQL：</p>
<pre class="wp-code-highlight prettyprint">useradd mysql -s /sbin/nologin -M
tar zxf mysql-5.5.25.tar.gz 
cd mysql-5.5.25
cmake . -DCMAKE_INSTALL_PREFIX=/app/soft/mysql-5.5.25 \
-DMYSQL_DATADIR=/app/soft/mysql-5.5.25/data \
-DMYSQL_UNIX_ADDR=/app/soft/mysql-5.5.25/tmp/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DEXTRA_CHARSETS=gbk,gb2312,utf8,ascii \
-DENABLED_LOCAL_INFILE=ON \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \
-DWITHOUT_PARTITION_STORAGE_ENGINE=1 \
-DWITH_FAST_MUTEXES=1 \
-DWITH_ZLIB=bundled \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_READLINE=1 \
-DWITH_EMBEDDED_SERVER=1 \
-DWITH_DEBUG=0
make   
make install
ln -s mysql-5.5.25/ /app/soft/mysql     //创建MySQL软连接
echo &#039;PATH=&quot;/app/soft/mysql/bin/:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin&quot;&#039;&amp;gt;&amp;gt;/etc/profile
. /etc/profile
</pre>
<p>5、配置MySQL初始数据，并启动:</p>
<pre class="wp-code-highlight prettyprint">chmod 755 /app/soft/mysql/scripts/mysql_install_db 
/app/soft/mysql/scripts/mysql_install_db --basedir=/app/soft/mysql/ --datadir=/app/soft/mysql/data/ --user=mysql
##如果在这个环节出现了/app/soft/mysql/scripts/mysql_install_db 不存在的报错时，重新进行编译安装。
cp /app/soft/mysql/support-files/my-small.cnf /etc/my.cnf
cp /app/soft/mysql/support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld   //授予执行的权限
mysql_secure_installation #设置Mysql密码
/etc/init.d/mysqld start  //重新启动
</pre>
<p>至此，MySQL编译安装完成。</p>
<p><strong>Nginx安装（版本：nginx-1.9.9）：</strong><br />
nginx使用的是一键安装脚本：安装的是nginx-1.9.9版本（你可以创建一个.sh，把下面脚本代码拷贝进去直接执行）</p>
<pre class="wp-code-highlight prettyprint">#!/bin/sh
####################################################
#This is a shell scripts to one-key install for lnmp  
#######################start########################
cd /app/tool &amp;amp;&amp;amp;\
[ -f nginx-1.9.9.tar.gz ] || wget http://nginx.org/download/nginx-1.9.9.tar.gz
[ -f pcre-8.37.tar.gz ] || wget http://sourceforge.net/projects/pcre/files/pcre/8.37/pcre-8.37.tar.gz/download
#####################install libpcre################
tar zxf pcre-8.37.tar.gz
cd ./pcre-8.37 &amp;amp;&amp;amp;\
./configure
make &amp;amp;&amp;amp; make install
cd .. &amp;amp;&amp;amp;\
rm -rf ./pcre-8.37
######################install nginx#################
cd /app/tool &amp;amp;&amp;amp; tar zxf nginx-1.9.9.tar.gz
cd ./nginx-1.9.9
mkdir /app/soft/nginx-1.9.9
useradd nginx -s /sbin/nologin -M
yum install openssl* gd-devel -y
./configure --user=nginx --group=nginx --prefix=/app/soft/nginx-1.9.9 --with-http_image_filter_module --with-http_stub_status_module --with-http_ssl_module
make &amp;amp;&amp;amp; make install
#######################test install#################
ln -s /app/soft/nginx-1.9.9/ /app/soft/nginx
cd /app/soft
if [ $? -eq 0 ];then
  echo &quot;/usr/local/lib&quot; &amp;gt;&amp;gt; /etc/ld.so.conf
  ldconfig
  /app/soft/nginx-1.9.9/sbin/nginx
  if [ $? -eq 0 ];then
     echo &quot;service nginx start&quot;
     echo  `lsof -i :80`
  fi
fi
</pre>
<p><strong>PHP安装步骤：</strong><br />
php使用的是编译安装，安装的是php-5.6.16版本<br />
###安装依赖环境包</p>
<pre class="wp-code-highlight prettyprint">yum -y install curl-devel
yum -y install libxslt-deve
yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel libidn libidn-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers libevent libevent-devel
yum install zlib libxml libjpeg freetype libpng gd curl libiconv mysql-devel zlib-devel libxml2-devel libjpeg-devel freetype-devel libpng-devel gd-devel curl-devel libxslt* -y
yum -y install libxslt-deve
cd /app/tool/
</pre>
<p>下载libmcrypt（PHPlibmcrypt模块）<br />
安装libmcrypt</p>
<pre class="wp-code-highlight prettyprint">cd /usr/local/src
tar zxvf libmcrypt-2.5.7.tar.gz   #解压
cd libmcrypt-2.5.7      #进入目录
./configure      #配置
make    #编译
make install #安装
</pre>
<p>下载mhash并安装：</p>
<pre class="wp-code-highlight prettyprint">wget http://jaist.dl.sourceforge.net/project/mhash/mhash/0.9.9.9/mhash-0.9.9.9.tar.gz
tar zxvf mhash-0.9.9.9.tar.gz
cd mhash-0.9.9.9/
./configure
make &amp;amp;&amp;amp; make install
</pre>
<p>下载mcrypt并安装：</p>
<pre class="wp-code-highlight prettyprint">wget http://jaist.dl.sourceforge.net/project/mcrypt/MCrypt/2.6.8/mcrypt-2.6.8.tar.gz
tar zxvf mcrypt-2.6.8.tar.gz
cd mcrypt-2.6.8/
/sbin/ldconfig
./configure
make &amp;amp;&amp;amp; make install
</pre>
<p>下载libiconv并安装：</p>
<pre class="wp-code-highlight prettyprint">wget http://ftp.gnu.org/gnu/libiconv/libiconv-1.13.tar.gz
tar zxf libiconv-1.13.tar.gz
cd libiconv-1.13
./configure --prefix=/usr/local/libiconv
make &amp;amp;&amp;amp; make install

echo &quot;/usr/local/lib&quot; &amp;gt;&amp;gt;/etc/ld.so.conf
rm -f /usr/lib/libmcrypt.*
rm -f /usr/lib/libmhash*
ln -s /usr/local/lib/libmcrypt.la /usr/lib/libmcrypt.la
ln -s /usr/local/lib/libmcrypt.so /usr/lib/libmcrypt.so
ln -s /usr/local/lib/libmcrypt.so.4 /usr/lib/libmcrypt.so.4
ln -s /usr/local/lib/libmcrypt.so.4.4.8 /usr/lib/libmcrypt.so.4.4.8
ln -s /usr/local/lib/libmhash.a /usr/lib/libmhash.a
ln -s /usr/local/lib/libmhash.la /usr/lib/libmhash.la
ln -s /usr/local/lib/libmhash.so /usr/lib/libmhash.so
ln -s /usr/local/lib/libmhash.so.2 /usr/lib/libmhash.so.2
ln -s /usr/local/lib/libmhash.so.2.0.1 /usr/lib/libmhash.so.2.0.1
ln -s /usr/local/bin/libmcrypt-config /usr/bin/libmcrypt-config
</pre>
<p><strong>###安装PHP：</strong></p>
<pre class="wp-code-highlight prettyprint">cd /app/tool/
wget http://cn2.php.net/distributions/php-5.6.16.tar.gz
tar zxf php-5.6.16.tar.gz
cd php-5.6.16
./configure --prefix=/app/soft/php5.6.16 --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-iconv-dir=/usr/local/libiconv --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-safe-mode --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --with-curlwrappers --enable-mbregex --enable-fpm --enable-mbstring --with-mcrypt --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-soap --enable-short-tags --enable-zend-multibyte --enable-static --with-xsl --with-fpm-user=www --with-fpm-group=www --enable-ftp --enable-opcache=no
make
make install
cp php.ini-development /app/soft/php5.6.16/lib/php.ini
cp /app/soft/php5.6.16/etc/php-fpm.conf.default /app/soft/php5.6.16/etc/php-fpm.conf
cp -R ./sapi/fpm/php-fpm /app/soft/php5.6.16/sbin/php-fpm
/app/soft/php5.6.16/sbin/php-fpm
lsof-i :9000
</pre>
<pre class="wp-code-highlight prettyprint">yum install -y vim lrzsz netstat
最后关闭SELinux（SELinux是一种安全子系统它能控制程序只能访问特定文件）
vim /etc/selinux/config
修改为：SELINUX=disabled
</pre>
<p>至此LNMP环境已经完美搭建，现在可以开启你的LNMP之旅了~<br />
转载请注明转自:<a href="http://www.yunda51.com">运达's blog</a> 原文地址：<a href="http://www.yunda51.com/1802.html">http://www.yunda51.com/1802.html</a></p>
]]></content:encoded>
			<wfw:commentRss>https://www.yunda51.com/?feed=rss2&#038;p=1806</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>MySQL编译安装及主从同步</title>
		<link>https://www.yunda51.com/?p=1802</link>
		<comments>https://www.yunda51.com/?p=1802#comments</comments>
		<pubDate>Tue, 12 Sep 2017 07:04:00 +0000</pubDate>
		<dc:creator><![CDATA[运达]]></dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Mysql]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[centos]]></category>

		<guid isPermaLink="false">http://www.yunda51.com/?p=1802</guid>
		<description><![CDATA[1、上传cmake-2.8.8.tar.gz mysql-5.5.25.tar.gz 2、安装编译MySQL过<a href="https://www.yunda51.com/?p=1802" class="read-more">Continue Reading</a>]]></description>
				<content:encoded><![CDATA[<p>1、上传cmake-2.8.8.tar.gz mysql-5.5.25.tar.gz</p>
<p>2、安装编译MySQL过程中需要的依赖包：</p>
<pre class="wp-code-highlight prettyprint">
yum install ncurses-devel libaio-devel -y
yum install gcc-c++ -y
</pre>
<p>3、安装编译安装需要的软件：</p>
<pre class="wp-code-highlight prettyprint">
cd /app/tool/
tar zxvf cmake-2.8.8.tar.gz
cd cmake-2.8.8
./configure 
gmake
gmake install
</pre>
<p>4、开始安装MySQL，在主服务器上搭建MySQL：</p>
<pre class="wp-code-highlight prettyprint">
useradd mysql -s /sbin/nologin -M
tar zxf mysql-5.5.25.tar.gz 
cd mysql-5.5.25
cmake . -DCMAKE_INSTALL_PREFIX=/app/soft/mysql-5.5.25 \
-DMYSQL_DATADIR=/app/soft/mysql-5.5.25/data \
-DMYSQL_UNIX_ADDR=/app/soft/mysql-5.5.25/tmp/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DEXTRA_CHARSETS=gbk,gb2312,utf8,ascii \
-DENABLED_LOCAL_INFILE=ON \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \
-DWITHOUT_PARTITION_STORAGE_ENGINE=1 \
-DWITH_FAST_MUTEXES=1 \
-DWITH_ZLIB=bundled \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_READLINE=1 \
-DWITH_EMBEDDED_SERVER=1 \
-DWITH_DEBUG=0

make   
make install
ln -s mysql-5.5.25/ /app/soft/mysql     //创建MySQL软连接
echo &#039;PATH=&quot;/app/soft/mysql/bin/:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin&quot;&#039;&gt;&gt;/etc/profile
. /etc/profile
</pre>
<p>5、配置MySQL初始数据，并启动:</p>
<pre class="wp-code-highlight prettyprint">
chmod 755 /app/soft/mysql/scripts/mysql_install_db 

/app/soft/mysql/scripts/mysql_install_db --basedir=/app/soft/mysql/ --datadir=/app/soft/mysql/data/ --user=mysql
##如果在这个环节出现了/app/soft/mysql/scripts/mysql_install_db 不存在的报错时，重新进行编译安装。

cp /app/soft/mysql/support-files/my-small.cnf /etc/my.cnf

cp /app/soft/mysql/support-files/mysql.server /etc/init.d/mysqld

chmod +x /etc/init.d/mysqld   //授予执行的权限

mysql_secure_installation #设置Mysql密码

/etc/init.d/mysqld start  //重新启动
</pre>
<p>至此，MySQL编译安装完成。</p>
<p><strong>搭建从库：</strong></p>
<p>按照主库的流程安装从库。<br />
配置主从关系<br />
设置好my.cnf的配置文件<br />
主数据库的配置文件：</p>
<pre class="wp-code-highlight prettyprint">
[root@db01 ~]# cat /etc/my.cnf

[client]
port		= 3306
socket		= /app/soft/mysql-5.5.25/tmp/mysql.sock


[mysqld]
port		= 3306
socket		= /app/soft/mysql-5.5.25/tmp/mysql.sock
skip-external-locking
key_buffer_size = 384M
max_allowed_packet = 1M
table_open_cache = 512
sort_buffer_size = 2M
read_buffer_size = 2M
read_rnd_buffer_size = 8M
myisam_sort_buffer_size = 64M
thread_cache_size = 8
query_cache_size = 32M
log-slow-queries=/data/mysqldata/slowquery.log

long_query_time=1
thread_concurrency = 8


log-bin=mysql-bin
server-id	= 1
expire-logs-days = 7
relay-log-space-limit           = 16G
slave-skip-errors = 1032,1062,126,1114,1146,1048,1396,2003 


[mysqldump]
quick
max_allowed_packet = 16M

[mysql]
no-auto-rehash

[myisamchk]
key_buffer_size = 8M
sort_buffer_size = 8M
read_buffer = 2M
write_buffer = 2M

[mysqlhotcopy]
interactive-timeout
</pre>
<p>从数据库的配置文件:</p>
<pre class="wp-code-highlight prettyprint">
[root@db02 ~]# cat /etc/my.cnf
[client]
port		= 3306
socket		= /app/soft/mysql-5.5.25/tmp/mysql.sock


[mysqld]
port		= 3306
socket		= /app/soft/mysql-5.5.25/tmp/mysql.sock
skip-external-locking
key_buffer_size = 384M
max_allowed_packet = 1M
table_open_cache = 512
sort_buffer_size = 2M
read_buffer_size = 2M
read_rnd_buffer_size = 8M
myisam_sort_buffer_size = 64M
thread_cache_size = 8
query_cache_size = 32M
log-slow-queries=/data/mysqldata/slowquery.log

long_query_time=1
thread_concurrency = 8

#log-bin=mysql-bin
server-id	= 2
slave-skip-errors = 1032,1062,126,1114,1146,1048,1396

[mysqldump]
quick
max_allowed_packet = 16M

[mysql]
no-auto-rehash

[myisamchk]
key_buffer_size = 8M
sort_buffer_size = 8M
read_buffer = 2M
write_buffer = 2M

[mysqlhotcopy]
interactive-timeout
</pre>
<p>进入到主数据库:</p>
<pre class="wp-code-highlight prettyprint">
mysql
useradd liuyd  //创建liuyd用户
id liuyd      //查看liuyd
su - liuyd    //切换用户
passwd        //设置密码
grant replication slave on *.* to liuyd@&#039;192.168.199.%&#039; identified by &#039;123456&#039;;
flush privileges;
</pre>
<p>锁表导出数据：</p>
<pre class="wp-code-highlight prettyprint">
flush table with read lock;
\q
mysqldump -uroot -A -B --events |gzip &gt;/server/backup/repl_bak_$(date +%F).sql.gz
</pre>
<p>将导出的数据传到从库上面去并解压导入到数据库中：</p>
<pre class="wp-code-highlight prettyprint">
scp -a /server/backup/repl_bak_$(date +%F).sql.gz root@192.168.199.160:/server/backup/
mysql &lt; /server/backup/repl_bak_$(date +%F).sql.gz
</pre>
<p>进入到从库：</p>
<pre class="wp-code-highlight prettyprint">
mysql
stop slave;
CHANGE MASTER TO  
MASTER_HOST=&#039;192.168.199.159&#039;, 
MASTER_PORT=3306,
MASTER_USER=&#039;rep&#039;, 
MASTER_PASSWORD=&#039;oldboy123456&#039;, 
MASTER_LOG_FILE=&#039;mysql-bin.000010&#039;,
MASTER_LOG_POS=245;
start slave;
show slave status\G;
#             Slave_IO_Running: Yes
#             Slave_SQL_Running: Yes
#             Seconds_Behind_Master: 0
</pre>
<p>##出现以上数据，同步成功。</p>
<p>转载请注明转自:<a href="http://www.yunda51.com">运达's blog</a> 原文地址：<a href="http://www.yunda51.com/1802.html">http://www.yunda51.com/1802.html</a></p>
]]></content:encoded>
			<wfw:commentRss>https://www.yunda51.com/?feed=rss2&#038;p=1802</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linux下添加FTP账号和服务器、增加密码和用户，更改FTP目录</title>
		<link>https://www.yunda51.com/?p=1780</link>
		<comments>https://www.yunda51.com/?p=1780#comments</comments>
		<pubDate>Sat, 27 May 2017 08:04:07 +0000</pubDate>
		<dc:creator><![CDATA[运达]]></dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[centos]]></category>
		<category><![CDATA[FTP]]></category>

		<guid isPermaLink="false">http://www.yunda51.com/?p=1780</guid>
		<description><![CDATA[1、 启动VSFTP服务器 A:Cenos下运行:yum install vsftpd B. 登录Linux主<a href="https://www.yunda51.com/?p=1780" class="read-more">Continue Reading</a>]]></description>
				<content:encoded><![CDATA[<p><strong>1、 启动VSFTP服务器</strong><br />
A:Cenos下运行:yum  install  vsftpd<br />
B. 登录Linux主机后，运行命令：”service vsftpd start”<br />
C. 要让FTP每次开机自动启动，运行命令:  “chkconfig --level 35 vsftpd on”</p>
<p><strong>2、设置FTP权限</strong><br />
A. 编辑VSFTP配置文件，运行命令：”vi /etc/vsftpd/vsftpd.conf “<br />
B. 将配置文件中”anonymous_enable=YES “改为 “anonymous_enable=NO”<br />
C. 保存修改，按ESC键，运行命令：“：wq”<br />
这样关闭了匿名登录功能。<br />
<strong><br />
3、添加FTP账号</strong><br />
A. 登录Linux主机后，运行命令：”useradd ftpadmin -s /sbin/nologin “。该账户路径默认指向/home/ftpadmin目录；<br />
如果需要将用户指向其他目录，请运行命令：useradd ftpadmin -s /sbin/nologin –d /www(其他目录)<br />
修改指向目录如下：</p>
<pre class="wp-code-highlight prettyprint">
vim /etc/passwd
</pre>
<p>如图：<a href="http://www.yunda51.com/wp-content/uploads/2017/05/20170527160054.png"><img src="http://www.yunda51.com/wp-content/uploads/2017/05/20170527160054.png" alt="20170527160054" width="686" height="105" class="alignnone size-full wp-image-1781" /></a></p>
<p>B. 设置ftpadmin用户密码，运行命令：”passwd ftpadmin” ; 输入两次密码，匹配成功后，就设置好了ftpadmin用户的密码了。</p>
<pre class="wp-code-highlight prettyprint">
设置完之后记得给指向目录权限：chmod 777 /app/www/
</pre>
<p>C.打开你的filezilla连接软件进行连接！</p>
]]></content:encoded>
			<wfw:commentRss>https://www.yunda51.com/?feed=rss2&#038;p=1780</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>centos7没有安装ifconfig命令的解决方法</title>
		<link>https://www.yunda51.com/?p=1757</link>
		<comments>https://www.yunda51.com/?p=1757#comments</comments>
		<pubDate>Sat, 08 Apr 2017 14:43:58 +0000</pubDate>
		<dc:creator><![CDATA[运达]]></dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[centos]]></category>
		<category><![CDATA[ifconfig]]></category>

		<guid isPermaLink="false">http://www.yunda51.com/?p=1757</guid>
		<description><![CDATA[ifconfig命令是设置或显示网络接口的程序，可以显示出我们机器的网卡信息，可是有些时候最小化安装CentO<a href="https://www.yunda51.com/?p=1757" class="read-more">Continue Reading</a>]]></description>
				<content:encoded><![CDATA[<p>ifconfig命令是设置或显示网络接口的程序，可以显示出我们机器的网卡信息，可是有些时候最小化安装CentOS等Linux发行版的时候会默认不安装ifconfig等命令，这时候你进入终端，运行ifconfig命令就会出错</p>
<p><img src="http://www.centoscn.com/uploads/allimg/140916/1-140916011055639.jpg" alt="" /></p>
<p>这是我们首先会想到是不是环境变量里没有ifconfig命令的路径，因为ifconfig是在/sbin路径下的，以root用户登录才可以运行，可是我们上边是以root用户登录的啊，不急，我们来看看root用户的环境变量</p>
<p><img src="http://www.centoscn.com/uploads/allimg/140916/1-1409160111045T.jpg" alt="" /></p>
<p>看到没，我们的环境变量里有/sbin这个路径，也居士说如果ifconfig命令存在并且就是位于/sbin目录下的话我们肯定就是可以运行的，那么我们就看看/sbin目录下有没有ifconfig命令吧</p>
<p><img src="http://www.centoscn.com/uploads/allimg/140916/1-1409160111133I.jpg" alt="" /></p>
<p>结果表明我们的/sbin目录下并没有ifconfig命令，所以我们的结论是：我们的CentOS里边是没有安装ifconf</p>
<p>———————————————分割线是一种态度———————————————</p>
<p>我们的解决办法是：yum安装ifconfig这个命令包</p>
<p><img src="http://www.centoscn.com/uploads/allimg/140916/1-140916011121b0.jpg" alt="" /></p>
<p>看到了吗，bash也是有分割线的，当然这不是在重点，重点是通过yum search 这个命令我们发现ifconfig这个命令是在net-tools.x86_64这个包里，接下来我们安装这个包就行了</p>
<p><img src="http://www.centoscn.com/uploads/allimg/140916/1-14091601113O16.jpg" alt="" /></p>
<p>这是我们已经安装好ifconfig这个命令了，我们试一下</p>
<p><img src="http://www.centoscn.com/uploads/allimg/140916/1-14091601114B10.jpg" alt="" /></p>
<p>成功运行了，这时候你是不是和我当初一样有疑惑，windows里的ipconfig命令到了linux为什么有事还不是必须安装的，博主看了一下资料，原来ifconfig命令来源于net-tools，这个包里有ifconfig，netstat，whois等命令，所以之前这些命令你都是运行不了的。</p>
<p>转载请注明转自:<a href="http://www.yunda51.com">运达's blog</a> 原文地址：<a href="http://www.yunda51.com/1757.html">http://www.yunda51.com/1757.html</a></p>
]]></content:encoded>
			<wfw:commentRss>https://www.yunda51.com/?feed=rss2&#038;p=1757</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>CentOs下memcache的安装以及php添加memcache扩展</title>
		<link>https://www.yunda51.com/?p=1610</link>
		<comments>https://www.yunda51.com/?p=1610#comments</comments>
		<pubDate>Tue, 18 Aug 2015 16:03:37 +0000</pubDate>
		<dc:creator><![CDATA[运达]]></dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[centos]]></category>
		<category><![CDATA[memcache]]></category>
		<category><![CDATA[Mysql]]></category>

		<guid isPermaLink="false">http://www.yunda51.com/?p=1610</guid>
		<description><![CDATA[一、下载需要的源码包 1、 下载libevent2.0.22                   2、 下载m<a href="https://www.yunda51.com/?p=1610" class="read-more">Continue Reading</a>]]></description>
				<content:encoded><![CDATA[<p>一、下载需要的源码包<br />
1、 下载libevent2.0.22                  <a style="background: transparent none repeat scroll 0% 0%;" href="http://pan.baidu.com/s/1sjIEu1v" target=""><img class="alignnone size-full wp-image-1075" title="btn_load" src="http://www.yunda51.com/wp-content/uploads/2013/11/btn_load3.png" alt="" width="86" height="28" /></a><br />
2、 下载memcached1.4.24           <a style="background: transparent none repeat scroll 0% 0%;" href="http://pan.baidu.com/s/1kTF2Mz1" target=""><img class="alignnone size-full wp-image-1075" title="btn_load" src="http://www.yunda51.com/wp-content/uploads/2013/11/btn_load3.png" alt="" width="86" height="28" /></a><br />
3、 下载php扩展memcache3.0.8  <a style="background: transparent none repeat scroll 0% 0%;" href="http://pan.baidu.com/s/1gdwDZaj" target=""><img class="alignnone size-full wp-image-1075" title="btn_load" src="http://www.yunda51.com/wp-content/uploads/2013/11/btn_load3.png" alt="" width="86" height="28" /></a></p>
<p>二、安装详细步骤<br />
首先将以上下载的三个软件包下载到/usr/local/src目录下（注：你们可以放到别的目录）<br />
1. 安装libevent<br />
cd /usr/local/src<br />
tar zxvf libevent-2.0.22-stable.tar.gz #解压包<br />
cd libevent-2.0.22-stable<br />
./configure --prefix=/usr/local #编译前配置，生成Makefile文件，路径可自行更改<br />
make #编译<br />
make install #安装</p>
<p>2、安装memcached<br />
cd /usr/local/src<br />
tar zxvf memcached-1.4.24.tar.gz #解压包<br />
cd memcached-1.4.24<br />
./configure –with-libevent=/usr/local #编译前配置，生成Makefile文件，路径必须与libevent中一致<br />
make #编译<br />
make install #安装</p>
<p>（注：如果在make 编译的时候报错，出现如图：）<br />
<a href="http://www.yunda51.com/wp-content/uploads/2015/08/11.png"><img class="alignnone size-full wp-image-1614" src="http://www.yunda51.com/wp-content/uploads/2015/08/11.png" alt="1" width="558" height="92" /></a></p>
<p>解决办法：<br />
1、cd /usr/local/memcached-1.4.24 进入memcached目录<br />
2、vi Makefile （编辑Makefile文件，删除文件中的“-Werror” ，保存后即可。）<br />
3、保存之后，接着安装 make install。<br />
测试是否安装成功。<br />
如图：<a href="http://www.yunda51.com/wp-content/uploads/2015/08/21.png"><img class="alignnone size-full wp-image-1615" src="http://www.yunda51.com/wp-content/uploads/2015/08/21.png" alt="2" width="558" height="36" /></a><br />
3、安装扩展<br />
1、cd /usr/local/src<br />
2、tar zxvf memcache-3.0.8.tgz<br />
3、memcache-3.0.8<br />
4、/usr/local/php5/bin/phpize #执行phpize扩展安装程序<br />
如图：<a href="http://www.yunda51.com/wp-content/uploads/2015/08/22.png"><img class="alignnone size-full wp-image-1623" src="http://www.yunda51.com/wp-content/uploads/2015/08/22.png" alt="2" width="689" height="138" /></a><br />
5、./configure -enable-memcache -with-php-config=/usr/local/php5/bin/php-config -with-zlib-dir<br />
6、make #编译<br />
7、make install #安装<br />
如图： <a href="http://www.yunda51.com/wp-content/uploads/2015/08/4.png"><img class="alignnone size-full wp-image-1617" src="http://www.yunda51.com/wp-content/uploads/2015/08/4.png" alt="4" width="558" height="49" /></a><br />
三 、配置php.ini文件<br />
1、 查看是否有memcache.so<br />
cd /usr/local/lib/php/extensions/no-debug-non-zts-20100525/<br />
2、vi /usr/local/php5/etc/php.ini #编辑php.ini<br />
添加如下代码：<br />
extension=memcache.so<br />
[Memcache]<br />
extension_dir =“/usr/local/lib/php/extensions/no-debug-non-zts-20100525/”<br />
memcache.allow_failover = 1<br />
memcache.max_failover_attempts=20<br />
memcache.chunk_size =8192</p>
<p>四、配置memcached服务器<br />
1、启动memcached服务器<br />
memcached -d -m 10 -u root -l 127.0.0.1 -p 11211 -c 256 -P /usr/local/bin/memcached/memcached.pid</p>
<p>如果在启动memcached时候报“memcached: error while loading shared libraries: libevent-2.0.so.5: cannot open shared object file: No such file or directory”之类的错误信息，表示memcached找不到libevent的位置<br />
<strong>如图：</strong><br />
<a href="http://www.yunda51.com/wp-content/uploads/2015/08/memcached.png"><img class="alignnone size-full wp-image-1620" src="http://www.yunda51.com/wp-content/uploads/2015/08/memcached.png" alt="memcached" width="558" height="34" /></a></p>
<p><strong>解决办法： </strong><br />
1、 首先查看，libevent 在哪里 ，执行：# whereis libevent<br />
2、 然后，再看memcached 从哪里找它，执行# LD_DEBUG=libs memcached -v 2&gt;&amp;1 &gt; /dev/null | less 可以看到：是/usr/lib/libevent-2.0.so.5，所以，创建软链<br />
3、 # ln -s /usr/local/lib/libevent-2.0.so.5 /usr/lib/libevent-2.0.so.5<br />
4、 关闭memcached :pkill memcached<br />
5、 再次启动：memcached -d -m 10 -u root -l 127.0.0.1 -p 11211 -c 256 -P /usr/local/bin/memcached/memcached.pid<br />
6、 查看端口，看memcached是否启动成功！# netstat –ant<br />
如图：<br />
<a href="http://www.yunda51.com/wp-content/uploads/2015/08/memcached1.png"><img class="alignnone size-full wp-image-1621" src="http://www.yunda51.com/wp-content/uploads/2015/08/memcached1.png" alt="memcached1" width="558" height="162" /></a><br />
表示启动成功！<br />
7、查看你得memcache扩展是否添加成功！<br />
如图：<a href="http://www.yunda51.com/wp-content/uploads/2015/08/12.png"><img class="alignnone size-full wp-image-1622" src="http://www.yunda51.com/wp-content/uploads/2015/08/12.png" alt="1" width="661" height="241" /></a><br />
表示扩展添加成功！<br />
五 测试php的memcache扩展<br />
<!--?php $mem = new Memcache(); $mem--->connect("127.0.0.1", 11211);<br />
$mem-&gt;set('key', 'This is my  memcache ceshi!', 0, 60);<br />
$val = $mem-&gt;get('key');<br />
echo $val;<br />
?&gt;</p>
<p>转载请注明转自:<a href="http://www.yunda51.com">运达's blog</a> 原文地址：<a href="http://www.yunda51.com/1470.html">http://www.yunda51.com/1610.html</a></p>
]]></content:encoded>
			<wfw:commentRss>https://www.yunda51.com/?feed=rss2&#038;p=1610</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CentOs下Redis的安装，配置以及phpredis扩展</title>
		<link>https://www.yunda51.com/?p=1593</link>
		<comments>https://www.yunda51.com/?p=1593#comments</comments>
		<pubDate>Thu, 13 Aug 2015 08:21:43 +0000</pubDate>
		<dc:creator><![CDATA[运达]]></dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[centos]]></category>
		<category><![CDATA[ctl]]></category>
		<category><![CDATA[redis]]></category>

		<guid isPermaLink="false">http://www.yunda51.com/?p=1593</guid>
		<description><![CDATA[1、安装需要的支持环境 在安装Redis之前首要先做的是安装Unix的Tcl工具，如果不安装的话后期将无法对R<a href="https://www.yunda51.com/?p=1593" class="read-more">Continue Reading</a>]]></description>
				<content:encoded><![CDATA[<p>1、安装需要的支持环境</p>
<p>在安装Redis之前首要先做的是安装Unix的Tcl工具，如果不安装的话后期将无法对Redis进行测试。在后期执行make test的时候返回如下错误信息：You need tcl 8.xuyao de5 or newer in order to run the Redis test，具体的流程为：</p>
<pre class="wp-code-highlight prettyprint">cd /usr/local/src
wget http://downloads.sourceforge.net/tcl/tcl8.6.3-src.tar.gz
tar -zxvf tcl8.6.3-src.tar.gz
cd ​tcl8.6.3/unix/
./configure
make
make install
</pre>
<p>2、安装redis。<br />
先下在redis，下载地址：http://redis.io/download</p>
<pre class="wp-code-highlight prettyprint">cd /usr/local/src
wget http://download.redis.io/releases/redis-2.8.19.tar.gz
tar zxvf redis-2.8.19.tar.gz
cd redis-2.8.19
make
make PREFIX=/usr/local/redis install
</pre>
<p>3、测试Redis</p>
<pre class="wp-code-highlight prettyprint">   cd src
   make test
</pre>
<p>通过以上命令就要可以对redis进行加大的测试。</p>
<p>4、配置redis<br />
（1）复制并修改配置文档<br />
代码如下:</p>
<pre class="wp-code-highlight prettyprint">cp ./redis.conf /usr/local/redis/
vi /usr/local/redis/redis.conf
</pre>
<p>我只修改了如下两项：<br />
daemonize yes #redis将以守护进程的方式运行，默认为no会暂用你的终端<br />
timeout 300​ #当 客户端闲置多长时间后关闭连接，如果指定为0，表示关闭该功能</p>
<p>（2）设置自动启动<br />
代码如下:</p>
<pre class="wp-code-highlight prettyprint">vi /etc/init.d/redis
</pre>
<p>编辑文件保存如下内容：<br />
代码如下:</p>
<pre class="wp-code-highlight prettyprint">#!/bin/sh
#
# redis        Startup script for Redis Server
#
# chkconfig: - 80 12
# description: Redis is an open source, advanced key-value store.
#
# processname: redis-server
# config: /etc/redis.conf
# pidfile: /var/run/redis.pid
source /etc/init.d/functions
BIN=&quot;/usr/local/redis/bin&quot;
CONFIG=&quot;/usr/local/redis/redis.conf&quot;
PIDFILE=&quot;/var/run/redis.pid&quot;
### Read configuration
[ -r &quot;$SYSCONFIG&quot; ] &amp;amp;&amp;amp; source &quot;$SYSCONFIG&quot;
RETVAL=0
prog=&quot;redis-server&quot;
desc=&quot;Redis Server&quot;
start() {
        if [ -e $PIDFILE ];then
             echo &quot;$desc already running....&quot;
             exit 1
        fi
        echo -n $&quot;Starting $desc: &quot;
        daemon $BIN/$prog $CONFIG
        RETVAL=$?
        echo
        [ $RETVAL -eq 0 ] &amp;amp;&amp;amp; touch /var/lock/subsys/$prog
        return $RETVAL
}
stop() {
        echo -n $&quot;Stop $desc: &quot;
        killproc $prog
        RETVAL=$?
        echo
        [ $RETVAL -eq 0 ] &amp;amp;&amp;amp; rm -f /var/lock/subsys/$prog $PIDFILE
        return $RETVAL
}
restart() {
        stop
        start
}
case &quot;$1&quot; in
  start)
        start
        ;;
  stop)
        stop
        ;;
  restart)
        restart
        ;;
  condrestart)
        [ -e /var/lock/subsys/$prog ] &amp;amp;&amp;amp; restart
        RETVAL=$?
        ;;
  status)
        status $prog
        RETVAL=$?
        ;;
   *)
        echo $&quot;Usage: $0 {start|stop|restart|condrestart|status}&quot;
        RETVAL=1
esac
exit $RETVAL
</pre>
<p>（3）启动服务和关闭<br />
/usr/local/redis/bin/redis-server<br />
如图：<a href="http://www.yunda51.com/wp-content/uploads/2015/08/20150813161557.png"><img class="alignnone size-full wp-image-1594" src="http://www.yunda51.com/wp-content/uploads/2015/08/20150813161557.png" alt="20150813161557" width="1416" height="710" /></a><br />
表示启动成功！</p>
<p><strong>启动之后最好重新打开个窗口运行redsi-cli进入控制台</strong></p>
<p>5、使用redis</p>
<pre class="wp-code-highlight prettyprint">[root@localhost /]# cd /usr/local/redis/bin/
[root@localhost bin]# redis-cli 
127.0.0.1:6379&amp;gt; set foo ceshi
OK
127.0.0.1:6379&amp;gt; get foo
&quot;ceshi&quot;
127.0.0.1:6379&amp;gt; 
</pre>
<p>如图：<a href="http://www.yunda51.com/wp-content/uploads/2015/08/redis.png"><img class="alignnone size-full wp-image-1595" src="http://www.yunda51.com/wp-content/uploads/2015/08/redis.png" alt="redis" width="1023" height="194" /></a></p>
<p>6、停止redis实例：<br />
/usr/local/redis/bin/rdis-cli shutdown 或者 pkill redis-server</p>
<p>到此为止你的redis完成，下面我们来添加phpredis安装和配置~~</p>
<p><strong>phpredis安装和配置步骤如下：</strong><br />
1、首先下载phpredis包 <a style="background: transparent none repeat scroll 0% 0%;" href="http://pan.baidu.com/s/1sjoSdLN" target=""><img class="alignnone size-full wp-image-1075" title="btn_load" src="http://www.yunda51.com/wp-content/uploads/2013/11/btn_load3.png" alt="" width="86" height="28" /></a><br />
2、解压：unzip phpredis-develop.zip<br />
3、cd phpredis-develop<br />
4、执行 /usr/local/php5/bin/phpize 会在phpredis-develop目录下生成一个configure<br />
5、./configure --with-php-config=/usr/local/php5/bin/php-config<br />
6、make<br />
7、make install<br />
如图：<a href="http://www.yunda51.com/wp-content/uploads/2015/08/redis1919.png"><img class="alignnone size-full wp-image-1600" src="http://www.yunda51.com/wp-content/uploads/2015/08/redis1919.png" alt="redis1919" width="894" height="66" /></a><br />
8、执行 cd /usr/local/php5/lib/php/extensions/no-debug-non-zts-20100525/ 目录下会有redis.so<br />
如图：<a href="http://www.yunda51.com/wp-content/uploads/2015/08/redis-so.png"><img class="alignnone size-full wp-image-1601" src="http://www.yunda51.com/wp-content/uploads/2015/08/redis-so.png" alt="redis-so" width="894" height="117" /></a><br />
9、vi /usr/local/php5/etc/php.ini 在php.ini添加redis.so扩展<br />
如图：<a href="http://www.yunda51.com/wp-content/uploads/2015/08/redis6.png"><img class="alignnone size-full wp-image-1602" src="http://www.yunda51.com/wp-content/uploads/2015/08/redis6.png" alt="redis6" width="279" height="78" /></a><br />
10、/etc/init.d/nginx restart 重启nginx（注：如果你们是Apache，也一样重启）。<br />
最后结果如图：<br />
<a href="http://www.yunda51.com/wp-content/uploads/2015/08/redis-success.png"><img class="alignnone size-full wp-image-1603" src="http://www.yunda51.com/wp-content/uploads/2015/08/redis-success.png" alt="redis-success" width="711" height="240" /></a><br />
这样就大功告成了，开启你得redis之旅吧，骚年~~~</p>
<p>转载请注明转自:<a href="http://www.yunda51.com">运达's blog</a> 原文地址：<a href="http://www.yunda51.com/1470.html">http://www.yunda51.com/1593.html</a></p>
]]></content:encoded>
			<wfw:commentRss>https://www.yunda51.com/?feed=rss2&#038;p=1593</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>CentOs编译安装LNMP环境(nginx+mysql+php)</title>
		<link>https://www.yunda51.com/?p=1583</link>
		<comments>https://www.yunda51.com/?p=1583#comments</comments>
		<pubDate>Wed, 12 Aug 2015 08:45:03 +0000</pubDate>
		<dc:creator><![CDATA[运达]]></dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[centos]]></category>
		<category><![CDATA[Mysql]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.yunda51.com/?p=1583</guid>
		<description><![CDATA[准备工作：1、配置好IP、DNS 、网关，确保使用远程连接工具能够连接服务器 2、配置防火墙，开启80端口、3<a href="https://www.yunda51.com/?p=1583" class="read-more">Continue Reading</a>]]></description>
				<content:encoded><![CDATA[<p>准备工作：1、配置好IP、DNS 、网关，确保使用远程连接工具能够连接服务器<br />
2、配置防火墙，开启80端口、3306端口<br />
vi /etc/sysconfig/iptables #编辑防火墙配置文件</p>
<pre class="wp-code-highlight prettyprint">    
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT（允许80端口通过防火墙）    
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT（允许3306端口通过防火墙）    
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT    
</pre>
<p><strong>下载软件包</strong></p>
<p>1.下载nginx</p>
<p>http://nginx.org/download/nginx-1.2.0.tar.gz</p>
<p>2、下载pcre （支持nginx伪静态）<br />
ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.30.tar.gz</p>
<p>3、下载MySQL（目前稳定版）</p>
<p>http://mysql.mirror.kangaroot.net/Downloads/MySQL-5.5/mysql-5.5.25.tar.gz</p>
<p>由于版本更新可能以前版本已不存在，可http://mysql.mirror.kangaroot.net/Downloads下载相应版本。</p>
<p>4、下载php</p>
<p>http://www.php.net/releases/</p>
<p>5、下载cmake（MySQL编译工具）</p>
<p>http://www.cmake.org/files/v2.8/cmake-2.8.8.tar.gz</p>
<p>6、下载libmcrypt（PHPlibmcrypt模块）<br />
ftp://mcrypt.hellug.gr/pub/crypto/mcrypt/libmcrypt/libmcrypt-2.5.7.tar.gz</p>
<p>安装编译工具及库文件（使用CentOS yum命令安装）</p>
<pre class="wp-code-highlight prettyprint">yum install make apr* autoconf automake curl-devel gcc gcc-c++ zlib-devel openssl openssl-devel pcre
-devel gd  kernel keyutils  patch  perl kernel-headers compat* mpfrcpp glibc libgomp libstdc++-devel
 ppl cloog-ppl keyutils-libs-devel libcom_err-devellibsepol-devel libselinux-devel krb5-devel zlib-devel 
libXpm* freetype libjpeg* libpng* php-common php-gd ncurses* libtool* libxml2 libxml2-devel patch
freetype-devel
</pre>
<p><strong>安装cmake</strong></p>
<p>cd /usr/local/src</p>
<p>tar zxvf cmake-2.8.8.tar.gz</p>
<p>cd cmake-2.8.8</p>
<p>./configure make #编译</p>
<p>make install #安装</p>
<p><strong>安装MySQL</strong></p>
<p>groupadd mysql #添加mysql组</p>
<p>useradd -g mysql mysql -s /bin/false #创建用户mysql并加入到mysql组，不允许mysql用户直接登录系统</p>
<p>mkdir -p /data/mysql #创建MySQL数据库存放目录</p>
<p>chown -R mysql:mysql /data/mysql #设置MySQL数据库目录权限</p>
<p>mkdir -p /usr/local/mysql #创建MySQL安装目录</p>
<p>cd /usr/local/src</p>
<p>tar zxvf mysql-5.5.25.tar.gz #解压</p>
<p>cd mysql-5.5.25</p>
<p>cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data/mysql -DSYSCONFDIR=/etc #配置</p>
<p>make #编译</p>
<p>make install #安装</p>
<p>cd /usr/local/mysql</p>
<p>cp ./support-files/my-huge.cnf /etc/my.cnf #拷贝配置文件（注意：如果/etc目录下面默认有一个my.cnf，直接覆盖即可）</p>
<p>vi /etc/my.cnf #编辑配置文件,在 [mysqld] 部分增加下面一行</p>
<p>datadir = /data/mysql #添加MySQL数据库路径</p>
<p>:wq! #保存退出</p>
<p>./scripts/mysql_install_db --user=mysql #生成mysql系统数据库</p>
<p>cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld #把Mysql加入系统启动</p>
<p>chmod 755 /etc/init.d/mysqld #增加执行权限</p>
<p>chkconfig mysqld on #设置开机启动</p>
<p>vi /etc/rc.d/init.d/mysqld #编辑</p>
<p>basedir = /usr/local/mysql #MySQL程序安装路径</p>
<p>datadir = /data/mysql #MySQl数据库存放目录</p>
<p>service mysqld start #启动</p>
<p>vi /etc/profile #把mysql服务加入系统环境变量：在最后添加下面这一行</p>
<p>export PATH=$PATH:/usr/local/mysql/bin</p>
<p>:wq! #保存退出</p>
<p>下面这两行把myslq的库文件链接到系统默认的位置，在编译类似PHP等软件时可以不用指定mysql的库文件地址。</p>
<p>ln -s /usr/local/mysql/lib/mysql /usr/lib/mysql</p>
<p>ln -s /usr/local/mysql/include/mysql /usr/include/mysql</p>
<p>shutdown -r now #需要重启系统，等待系统重新启动之后继续在终端命令行下面操作</p>
<p>mysql_secure_installation #设置Mysql密码</p>
<p>根据提示按Y 回车（默认密码为空）</p>
<p>然后输入2次密码</p>
<p>继续按Y 回车，直到设置完成</p>
<p>或者直接修改密码/usr/local/mysql/bin/mysqladmin -u root -p password "123456" #修改密码</p>
<p>service mysqld restart #重启</p>
<p>到此，mysql安装完成！</p>
<p><strong>安装pcre</strong></p>
<p>cd /usr/local/src</p>
<p>mkdir /usr/local/pcre #创建安装目录</p>
<p>tar zxvf pcre-8.30.tar.gz</p>
<p>cd pcre-8.30</p>
<p>./configure --prefix=/usr/local/pcre #配置</p>
<p>make</p>
<p>make install</p>
<p><strong>安装libmcrypt</strong></p>
<p>cd /usr/local/src</p>
<p>tar zxvf libmcrypt-2.5.7.tar.gz #解压</p>
<p>cd libmcrypt-2.5.7 #进入目录</p>
<p>./configure #配置</p>
<p>make #编译</p>
<p>make install #安装</p>
<p><strong>安装 nginx</strong></p>
<p>cd /usr/local/src</p>
<p>groupadd www #添加www组</p>
<p>useradd -g www www -s /bin/false #创建nginx运行账户www并加入到www组，不允许www用户直接登录系统</p>
<p>tar zxvf nginx-1.9.3.tar.gz</p>
<p>cd nginx-1.9.3</p>
<p>./configure --prefix=/usr/local/nginx --without-http_memcached_module --user=www --group=www --with-http_stub_status_module --with-openssl=/usr/ --with-pcre=/usr/local/src/pcre-8.37</p>
<p>#注意:--with-pcre=/usr/local/src/pcre-8.37指向的是源码包解压的路径，而不是安装的路径，否则会报错</p>
<p>make</p>
<p>make install</p>
<p>/usr/local/nginx/sbin/nginx #启动nginx</p>
<p>vi /etc/rc.d/init.d/nginx #设置nginx开启启动，编辑启动文件添加下面内容</p>
<pre class="wp-code-highlight prettyprint">    ##############################################
        #!/bin/sh  
    #  
    # nginx - this script starts and stops the nginx daemin  
    #  
    # chkconfig:   - 85 15  
    # description:  Nginx is an HTTP(S) server, HTTP(S) reverse \  
    #               proxy and IMAP/POP3 proxy server  
    # processname: nginx  
    # config:      /usr/local/nginx/conf/nginx.conf  
    # pidfile:     /usr/local/nginx/logs/nginx.pid  
      
    # Source function library.  
    . /etc/rc.d/init.d/functions  
      
    # Source networking configuration.  
    . /etc/sysconfig/network  
      
    # Check that networking is up.  
    [ &quot;$NETWORKING&quot; = &quot;no&quot; ] &amp;amp;&amp;amp; exit 0  
      
    nginx=&quot;/usr/local/nginx/sbin/nginx&quot;  
    prog=$(basename $nginx)  
      
    NGINX_CONF_FILE=&quot;/usr/local/nginx/conf/nginx.conf&quot;  
      
    lockfile=/var/lock/subsys/nginx  
      
    start() {  
        [ -x $nginx ] || exit 5  
        [ -f $NGINX_CONF_FILE ] || exit 6  
        echo -n $&quot;Starting $prog: &quot;  
        daemon $nginx -c $NGINX_CONF_FILE  
        retval=$?  
        echo  
        [ $retval -eq 0 ] &amp;amp;&amp;amp; touch $lockfile  
        return $retval  
    }  
      
    stop() {  
        echo -n $&quot;Stopping $prog: &quot;  
        killproc $prog -QUIT  
        retval=$?  
        echo  
        [ $retval -eq 0 ] &amp;amp;&amp;amp; rm -f $lockfile  
        return $retval  
    }  
      
    restart() {  
        configtest || return $?  
        stop  
        start  
    }  
      
    reload() {  
        configtest || return $?  
        echo -n $&quot;Reloading $prog: &quot;  
        killproc $nginx -HUP  
        RETVAL=$?  
        echo  
    }  
      
    force_reload() {  
        restart  
    }  
      
    configtest() {  
      $nginx -t -c $NGINX_CONF_FILE  
    }  
      
    rh_status() {  
        status $prog  
    }  
      
    rh_status_q() {  
        rh_status &amp;gt;/dev/null 2&amp;gt;&amp;amp;1  
    }  
      
    case &quot;$1&quot; in  
        start)  
            rh_status_q &amp;amp;&amp;amp; exit 0  
            $1  
            ;;  
        stop)  
            rh_status_q || exit 0  
            $1  
            ;;  
        restart|configtest)  
            $1  
            ;;  
        reload)  
            rh_status_q || exit 7  
            $1  
            ;;  
        force-reload)  
            force_reload  
            ;;  
        status)  
            rh_status  
            ;;  
        condrestart|try-restart)  
            rh_status_q || exit 0  
                ;;  
        *)  
            echo $&quot;Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}&quot;  
            exit 2  
    esac  
   ###############################################
</pre>
<p>:wq! #保存退出</p>
<p>chmod 775 /etc/rc.d/init.d/nginx #赋予文件执行权限</p>
<p>chkconfig nginx on #设置开机启动<br />
/sbin/chkconfig nginx on<br />
检查一下： sudo /sbin/chkconfig --list nginx<br />
nginx 0:off 1:off 2:on 3:on 4:on 5:on 6:off<br />
完成！ /etc/rc.d/init.d/nginx restart #重启</p>
<p><strong>安装php</strong></p>
<p>cd /usr/local/src</p>
<p>tar -zvxf php-5.3.13.tar.gz</p>
<p>cd php-5.3.13</p>
<p>mkdir -p /usr/local/php5 #建立php安装目录</p>
<p>./configure --prefix=/usr/local/php5 --with-config-file-path=/usr/local/php5/etc --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-mysql-sock=/tmp/mysql.sock --with-gd --with-iconv --with-zlib --enable-xml --enable-magic-quotes --enable-safe-mode --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curlwrappers --enable-mbregex --enable-fpm --enable-mbstring --enable-ftp --enable-gd-native-ttf --with-openssl --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --without-pear --with-gettext --enable-session --with-mcrypt --with-curl --with-jpeg-dir --with-freetype-dir #配置</p>
<p>make #编译</p>
<p>make install #安装</p>
<p>cp php.ini-production /usr/local/php5/etc/php.ini #复制php配置文件到安装目录</p>
<p>rm -rf /etc/php.ini #删除系统自带配置文件</p>
<p>ln -s /usr/local/php5/etc/php.ini /etc/php.ini #添加软链接</p>
<p>cp /usr/local/php5/etc/php-fpm.conf.default /usr/local/php5/etc/php-fpm.conf #拷贝模板文件为php-fpm配置文件</p>
<p>vi /usr/local/php5/etc/php-fpm.conf #编辑</p>
<p>user = www #设置php-fpm运行账号为www</p>
<p>group = www #设置php-fpm运行组为www</p>
<p>pid = run/php-fpm.pid #取消前面的分号</p>
<p>cp /usr/local/src/php-5.3.13/sapi/fpm/init.d.php-fpm /etc/rc.d/init.d/php-fpm #设置 php-fpm开机启动，拷贝php-fpm到启动目录</p>
<p>chmod +x /etc/rc.d/init.d/php-fpm #添加执行权限</p>
<p>chkconfig php-fpm on #设置开机启动</p>
<p>vi /usr/local/php5/etc/php.ini #编辑配置文件</p>
<p>找到：disable_functions =</p>
<p>修改为：disable_functions = passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,escapeshellcmd,dll,popen,disk_free_space,checkdnsrr,checkdnsrr,getservbyname,getservbyport,disk_total_space,posix_ctermid,posix_get_last_error,posix_getcwd, posix_getegid,posix_geteuid,posix_getgid, posix_getgrgid,posix_getgrnam,posix_getgroups,posix_getlogin,posix_getpgid,posix_getpgrp,posix_getpid, posix_getppid,posix_getpwnam,posix_getpwuid, posix_getrlimit, posix_getsid,posix_getuid,posix_isatty, posix_kill,posix_mkfifo,posix_setegid,posix_seteuid,posix_setgid, posix_setpgid,posix_setsid,posix_setuid,posix_strerror,posix_times,posix_ttyname,posix_uname</p>
<p>#列出PHP可以禁用的函数，如果某些程序需要用到这个函数，可以删除，取消禁用。</p>
<p>找到：;date.timezone =</p>
<p>修改为：date.timezone = PRC #设置时区</p>
<p>找到：expose_php = On</p>
<p>修改为：expose_php = OFF #禁止显示php版本的信息</p>
<p>PS：在编译PHP的过程中可能会报UNDEFINED REFERENCE TO `LIBICONV_OPEN 无法编译PHP LIBICONV错误.</p>
<p>配置nginx支持php</p>
<p>vi /usr/local/nginx/conf/nginx.conf #编辑配置文件</p>
<p>user www www; #首行user去掉注释,修改Nginx运行组为www www；必须与/usr/local/php5/etc/php-fpm.conf中的user,group配置相同，否则php运行出错</p>
<p>index index.php index.html index.htm; #添加index.php</p>
<p># pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000</p>
<p>#</p>
<p>location ~ \.php$ {</p>
<p>root html;#此处和server下面root保持一致,默认为html</p>
<p>fastcgi_pass 127.0.0.1:9000;</p>
<p>fastcgi_index index.php;</p>
<p>fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html/$fastcgi_script_name;</p>
<p>include fastcgi_params;</p>
<p>注意：取消FastCGI server部分location的注释,并要注意fastcgi_param行的参数,改为/data/webroot/(此为网站根目录绝对路径)$fastcgi_script_name</p>
<p><strong>/etc/init.d/nginx restart #重启nginx</strong></p>
<p>访问http://ip地址 出现欢迎使用nginx，说明配置成功。默认web目录 /usr/local/nginx/html/可以自己写程序测试PHP是否可用</p>
<p>转载请注明转自:<a href="http://www.yunda51.com">运达's blog</a> 原文地址：<a href="http://www.yunda51.com/1470.html">http://www.yunda51.com/1583.html</a></p>
]]></content:encoded>
			<wfw:commentRss>https://www.yunda51.com/?feed=rss2&#038;p=1583</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
