﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-Alpha-随笔分类-Linux Nginx</title><link>http://www.blogjava.net/Alpha/category/10062.html</link><description>多少春秋风雨改 多少崎岖不变爱</description><language>zh-cn</language><lastBuildDate>Fri, 13 Sep 2019 12:28:57 GMT</lastBuildDate><pubDate>Fri, 13 Sep 2019 12:28:57 GMT</pubDate><ttl>60</ttl><item><title>Centos7安装Nginx+PHP+MySQL</title><link>http://www.blogjava.net/Alpha/archive/2019/08/13/434429.html</link><dc:creator>Alpha</dc:creator><author>Alpha</author><pubDate>Tue, 13 Aug 2019 09:37:00 GMT</pubDate><guid>http://www.blogjava.net/Alpha/archive/2019/08/13/434429.html</guid><wfw:comment>http://www.blogjava.net/Alpha/comments/434429.html</wfw:comment><comments>http://www.blogjava.net/Alpha/archive/2019/08/13/434429.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Alpha/comments/commentRss/434429.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Alpha/services/trackbacks/434429.html</trackback:ping><description><![CDATA[一、准备

正式开始前，编译环境gcc、g++等开发库需要提前安装。<br />nginx依赖以下模块：

gzip模块需要 zlib 库

rewrite模块需要 pcre 库

ssl 功能需要openssl库
<br />
源码目录为：/usr/local/src
<br />
1、安装make

yum -y install gcc automake autoconf libtool make
<br />
2、安装g++

yum install gcc gcc-c++
<br />
3、安装PCRE库

cd /usr/local/src

wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.42.tar.gz

tar -zxvf pcre-8.42.tar.gz

cd pcre-8.42/

./configure

make &amp;&amp; make install

出现如下报错：

make[2]: *** [install-libLTLIBRARIES] Error 1
make[2]: Leaving directory `/usr/local/src/pcre-8.42'
make[1]: *** [install-am] Error 2
make[1]: Leaving directory `/usr/local/src/pcre-8.42'
make: *** [install] Error 2
权限不够，切换到root，重新make install即可。
<br />4、安装zlib库
cd /usr/local/src
wget http://zlib.net/zlib-1.2.11.tar.gz
tar -zxvf zlib-1.2.11.tar.gz
cd zlib-1.2.11/
./configure
make &amp;&amp; make install
<br />5、安装OpenSSL库
cd /usr/local/src
wget http://www.openssl.org/source/openssl-1.1.0h.tar.gz
tar -zxvf openssl-fips-2.0.16.tar.gz
cd openssl-fips-2.0.16/
./config
make &amp;&amp; make install

编译安装 Openssl 1.1.1 支持国密标准
https://blog.51cto.com/1012682/2380553

6、创建用户及用户组
一般为了服务器安全，会指定一个普通用户权限的账号做为Nginx的运行角色，这里使用www用户做为Nginx工作进程的用户。后续安装的PHP也以www用户作为工作进程用户。
groupadd -r www
useradd -r -g www www
 
二、NGINX
1、下载
cd /usr/local/src
wget http://nginx.org/download/nginx-1.14.0.tar.gz
tar &#8211;zxvf nginx-1.14.0.tar.gz
cd nginx-1.14.0
2、配置
./configure --prefix=/usr/local/nginx --sbin-path=/usr/local/nginx/sbin/nginx --conf-path=/usr/local/nginx/conf/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx/nginx.pid --lock-path=/var/lock/nginx.lock --user=www --group=www --with-http_ssl_module --with-http_stub_status_module --with-http_gzip_static_module --with-http_flv_module --with-http_mp4_module  --http-client-body-temp-path=/var/tmp/nginx/client/ --http-proxy-temp-path=/var/tmp/nginx/proxy/ --http-fastcgi-temp-path=/var/tmp/nginx/fcgi/ --http-uwsgi-temp-path=/var/tmp/nginx/uwsgi --http-scgi-temp-path=/var/tmp/nginx/scgi

make &amp;&amp; make install
nginx编译选项说明：
--prefix表示nginx要安装到哪个路径下，这里指定刚才新建好的/alidata/server目录下的nginx-1.12.2；
--sbin-path表示nginx的可执行文件存放路径
--conf-path表示nginx的主配置文件存放路径，nginx允许使用不同的配置文件启动，通过命令行中的-c选项
--pid-path表示nginx.pid文件的存放路径，将存储的主进程的进程号。安装完成后，可以随时改变的文件名 ， 在nginx.conf配置文件中使用 PID指令。默认情况下，文件名 为prefix/logs/nginx.pid
--error-log-path表示nginx的主错误、警告、和诊断文件存放路径
--http-log-path表示nginx的主请求的HTTP服务器的日志文件的存放路径
--user表示nginx工作进程的用户
--group表示nginx工作进程的用户组
--with-select_module或--without-select_module表示启用或禁用构建一个模块来允许服务器使用select()方法
--with-poll_module或--without-poll_module表示启用或禁用构建一个模块来允许服务器使用poll()方法
--with-http_ssl_module表示使用https协议模块。默认情况下，该模块没有被构建。建立并运行此模块的OpenSSL库是必需的
--with-pcre表示pcre的源码路径，因为解压后的pcre是放在root目录下的，所以是/root/pcre-8.41；
--with-zlib表示zlib的源码路径，这里因为解压后的zlib是放在root目录下的，所以是/root/zlib-1.2.11
--with-openssl表示openssl库的源码路径
配置OK：
Configuration summary
  + using PCRE library: /usr/local/src/pcre-8.42
  + using OpenSSL library: /usr/local/src/openssl-1.1.0h
  + using zlib library: /usr/local/src/zlib-1.2.11
 
  nginx path prefix: "/usr/local/nginx"
  nginx binary file: "/usr/local/nginx/sbin/nginx"
  nginx modules path: "/usr/local/nginx/modules"
  nginx configuration prefix: "/usr/local/nginx"
  nginx configuration file: "/usr/local/nginx/nginx.conf"
  nginx pid file: "/usr/local/nginx/nginx.pid"
  nginx error log file: "/usr/local/nginx/logs/error.log"
  nginx http access log file: "/usr/local/nginx/logs/access.log"
  nginx http client request body temporary files: "/var/tmp/nginx/client/"
  nginx http proxy temporary files: "/var/tmp/nginx/proxy/"
  nginx http fastcgi temporary files: "/var/tmp/nginx/fcgi/"
  nginx http uwsgi temporary files: "/var/tmp/nginx/uwsgi"
  nginx http scgi temporary files: "/var/tmp/nginx/scgi"
3、安装
make &amp;&amp; make install
4、启动
/usr/local/nginx/sbin/nginx
启动时报错：
nginx: [emerg] mkdir() "/var/tmp/nginx/client/" failed (2: No such file or directory)
手动创建该目录即可：mkdir -p /var/tmp/nginx/client
再次启动，打开浏览器访问此机器的IP，浏览器出现Welcome to nginx! 则表示 Nginx 已经安装并运行成功。
<br />5、设置软连接
ln -sf /usr/local/nginx/sbin/nginx /usr/sbin
这样就可以直接执行nginx来启动了。
<br />6、检测nginx
nginx -t
显示：
nginx: the configuration file /usr/local/nginx/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/nginx.conf test is successful 
 
三、PHP
1、安装PHP需要的常用库
yum -y install libmcrypt-devel mhash-devel libxslt-devel 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 krb5 krb5-devel libidn libidn-devel openssl openssl-devel
2、下载
cd /usr/local/src
wget http://cn2.php.net/downloads.php/php-7.2.5.tar.gz
tar -zxvf php-7.2.5.tar.gz
3、配置
./configure  --prefix=/usr/local/php \
--with-mysql=mysqlnd \
--enable-mysqlnd \
--with-gd \
--enable-gd-jis-conv \
--enable-fpm  
4、安装
make &amp;&amp; make install
安装信息如下：
Installing shared extensions:     /usr/local/php/lib/php/extensions/no-debug-non-zts-20170718/
Installing PHP CLI binary:        /usr/local/php/bin/
Installing PHP CLI man page:      /usr/local/php/php/man/man1/
Installing PHP FPM binary:        /usr/local/php/sbin/
Installing PHP FPM defconfig:     /usr/local/php/etc/
Installing PHP FPM man page:      /usr/local/php/php/man/man8/
Installing PHP FPM status page:   /usr/local/php/php/php/fpm/
Installing phpdbg binary:         /usr/local/php/bin/
Installing phpdbg man page:       /usr/local/php/php/man/man1/
Installing PHP CGI binary:        /usr/local/php/bin/
Installing PHP CGI man page:      /usr/local/php/php/man/man1/
Installing build environment:     /usr/local/php/lib/php/build/
Installing header files:          /usr/local/php/include/php/
Installing helper programs:       /usr/local/php/bin/
  program: phpize
  program: php-config
Installing man pages:             /usr/local/php/php/man/man1/
  page: phpize.1
  page: php-config.1
Installing PEAR environment:      /usr/local/php/lib/php/
[PEAR] Archive_Tar: upgrade to a newer version (1.4.3 is not newer than 1.4.3)
[PEAR] Console_Getopt: upgrade to a newer version (1.4.1 is not newer than 1.4.1)
[PEAR] Structures_Graph: upgrade to a newer version (1.1.1 is not newer than 1.1.1)
[PEAR] XML_Util: upgrade to a newer version (1.4.2 is not newer than 1.4.2)
[PEAR] PEAR: upgrade to a newer version (1.10.5 is not newer than 1.10.5)
/usr/local/src/php-7.2.5/build/shtool install -c ext/phar/phar.phar /usr/local/php/bin
ln -s -f phar.phar /usr/local/php/bin/phar
Installing PDO headers:           /usr/local/php/include/php/ext/pdo/
5、添加环境变量
vim /etc/profile  
在末尾加入  
export PHP_HOME=/usr/local/php
export PATH=/bin:/usr/bin:/usr/sbin:/sbin:$PATH:PHP_HOME/bin:$PHP_HOME/sbin
保存修改后，使用source命令重新加载配置文件：
source /etc/profile  
查看环境变量：
echo $PATH
6、配置php-fpm
cd /usr/local/php/etc
cp php-fpm.conf.default php-fpm.conf
cd php-fpm.d/
cp www.conf.default www.conf
使用vim命令对php-fpm.conf的内容进行如下修改:
pid = /usr/local/php/var/run/php-fpm.pid
使用vim命令对php-fpm.conf的内容进行如下修改：
user = www
group = www
其他配置可根据需求进行修改，比如pm.max_children（php-fpm 能启动的子进程的最大数量）、pm.start_servers（php启动时，开启的子进程的数量）、pm.min_spare_servers（动态方式空闲状态下的最小php-fpm进程数量）、pm.max_spare_servers（动态方式空闲状态下的最大php-fpm进程数量）等。
7、启动php-fpm
/usr/local/php/sbin/php-fpm
可以通过ps aux | grep php查看php进程。

 https://www.cnblogs.com/sunshineliulu/p/8991957.html

三、MySQL 


https://blog.csdn.net/weixin_33859844/article/details/90948191

https://www.cnblogs.com/yangchunlong/p/8477743.html<img src ="http://www.blogjava.net/Alpha/aggbug/434429.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Alpha/" target="_blank">Alpha</a> 2019-08-13 17:37 <a href="http://www.blogjava.net/Alpha/archive/2019/08/13/434429.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Git本地服务器搭建及使用详解</title><link>http://www.blogjava.net/Alpha/archive/2018/03/08/433086.html</link><dc:creator>Alpha</dc:creator><author>Alpha</author><pubDate>Thu, 08 Mar 2018 02:44:00 GMT</pubDate><guid>http://www.blogjava.net/Alpha/archive/2018/03/08/433086.html</guid><wfw:comment>http://www.blogjava.net/Alpha/comments/433086.html</wfw:comment><comments>http://www.blogjava.net/Alpha/archive/2018/03/08/433086.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Alpha/comments/commentRss/433086.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Alpha/services/trackbacks/433086.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: Git 教程http://www.runoob.com/git/git-tutorial.htmlGit本地服务器搭建及使用Git是一款免费、开源的分布式版本控制系统。众所周知的Github便是基于Git的开源代码库以及版本控制系统，由于其远程托管服务仅对开源免费，所以搭建本地Git服务器也是个较好的选择，本文将对此进行详细讲解。（推荐一家提供私有源代码免费托管的网站：Bitbucket，目前支持...&nbsp;&nbsp;<a href='http://www.blogjava.net/Alpha/archive/2018/03/08/433086.html'>阅读全文</a><img src ="http://www.blogjava.net/Alpha/aggbug/433086.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Alpha/" target="_blank">Alpha</a> 2018-03-08 10:44 <a href="http://www.blogjava.net/Alpha/archive/2018/03/08/433086.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Linux怎样恢复误删除的数据</title><link>http://www.blogjava.net/Alpha/archive/2017/12/23/432972.html</link><dc:creator>Alpha</dc:creator><author>Alpha</author><pubDate>Sat, 23 Dec 2017 08:11:00 GMT</pubDate><guid>http://www.blogjava.net/Alpha/archive/2017/12/23/432972.html</guid><wfw:comment>http://www.blogjava.net/Alpha/comments/432972.html</wfw:comment><comments>http://www.blogjava.net/Alpha/archive/2017/12/23/432972.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Alpha/comments/commentRss/432972.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Alpha/services/trackbacks/432972.html</trackback:ping><description><![CDATA[<p style="box-sizing: inherit; border: 0px; font-family: &quot;Microsoft YaHei&quot;, Helvetica, Arial, &quot;Lucida Grande&quot;, Tahoma, sans-serif; font-size: 15px; margin-top: 0px; margin-right: 0px; margin-left: 0px; outline: 0px; padding: 0px; vertical-align: baseline; word-wrap: break-word; word-break: break-all; text-indent: 2em; color: #444444; line-height: 27px; widows: 1; background-color: #ffffff;"><span style="box-sizing: inherit; border: 0px; font-family: inherit; font-size: 14pt; font-style: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"><strong style="box-sizing: inherit; border: 0px; font-family: inherit; font-size: 18.6666660308838px; font-style: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">一、背景</strong></span></p>
<p style="box-sizing: inherit; border: 0px; font-family: &quot;Microsoft YaHei&quot;, Helvetica, Arial, &quot;Lucida Grande&quot;, Tahoma, sans-serif; font-size: 15px; margin-top: 0px; margin-right: 0px; margin-left: 0px; outline: 0px; padding: 0px; vertical-align: baseline; word-wrap: break-word; word-break: break-all; text-indent: 2em; color: #444444; line-height: 27px; widows: 1; background-color: #ffffff;">系统管理员，最谨慎的linux就是rm命令了，一不小心数据就没干掉，最恐怖的是数据没有备份，没法还原了，此类事情发生的太多了，针对于此，我们经过多次尝试演练，终于成功的把大部分删除的数据找回来了，下面我把演练过程给大家介绍一下。</p>
<p style="box-sizing: inherit; border: 0px; font-family: &quot;Microsoft YaHei&quot;, Helvetica, Arial, &quot;Lucida Grande&quot;, Tahoma, sans-serif; font-size: 15px; margin-top: 0px; margin-right: 0px; margin-left: 0px; outline: 0px; padding: 0px; vertical-align: baseline; word-wrap: break-word; word-break: break-all; text-indent: 2em; color: #444444; line-height: 27px; widows: 1; background-color: #ffffff;"><span style="box-sizing: inherit; border: 0px; font-family: inherit; font-size: 14pt; font-style: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"><strong style="box-sizing: inherit; border: 0px; font-family: inherit; font-size: 18.6666660308838px; font-style: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">二、安装恢复软件</strong></span></p>
<p style="box-sizing: inherit; border: 0px; font-family: &quot;Microsoft YaHei&quot;, Helvetica, Arial, &quot;Lucida Grande&quot;, Tahoma, sans-serif; font-size: 15px; margin-top: 0px; margin-right: 0px; margin-left: 0px; outline: 0px; padding: 0px; vertical-align: baseline; word-wrap: break-word; word-break: break-all; text-indent: 2em; color: #444444; line-height: 27px; widows: 1; background-color: #ffffff;">extundelete,该工具官方给出的是可以恢复ext3或者ext4文件系统被删除的文件。</p>
<p style="box-sizing: inherit; border: 0px; font-family: &quot;Microsoft YaHei&quot;, Helvetica, Arial, &quot;Lucida Grande&quot;, Tahoma, sans-serif; font-size: 15px; margin-top: 0px; margin-right: 0px; margin-left: 0px; outline: 0px; padding: 0px; vertical-align: baseline; word-wrap: break-word; word-break: break-all; text-indent: 2em; color: #444444; line-height: 27px; widows: 1; background-color: #ffffff;">1：通过命令安装</p>
<pre style="box-sizing: inherit; border: 1px solid #d1d1d1; font-family: inherit; font-size: 15px; margin-top: 0px; margin-bottom: 5px; outline: 0px; padding: 15px; vertical-align: baseline; line-height: 28.5px; max-width: 100%; overflow: auto; white-space: pre-wrap; word-wrap: break-word; word-break: break-all; color: #444444; widows: 1; background-color: #ffffff;"><span style="box-sizing: inherit; border: 0px; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">#yum install extundelete </span><span style="box-sizing: inherit; border: 0px; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">-</span><span style="box-sizing: inherit; border: 0px; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">y</span></pre>
<p style="box-sizing: inherit; border: 0px; font-family: &quot;Microsoft YaHei&quot;, Helvetica, Arial, &quot;Lucida Grande&quot;, Tahoma, sans-serif; font-size: 15px; margin-top: 0px; margin-right: 0px; margin-left: 0px; outline: 0px; padding: 0px; vertical-align: baseline; word-wrap: break-word; word-break: break-all; text-indent: 2em; color: #444444; line-height: 27px; widows: 1; background-color: #ffffff;">2：通过源码编译安装</p>
<pre style="box-sizing: inherit; border: 1px solid #d1d1d1; font-family: inherit; font-size: 15px; margin-top: 0px; margin-bottom: 5px; outline: 0px; padding: 15px; vertical-align: baseline; line-height: 28.5px; max-width: 100%; overflow: auto; white-space: pre-wrap; word-wrap: break-word; word-break: break-all; color: #444444; widows: 1; background-color: #ffffff;"><span style="box-sizing: inherit; border: 0px; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">#yum </span><span style="box-sizing: inherit; border: 0px; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">-</span><span style="box-sizing: inherit; border: 0px; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">y install e2fsprogs</span><span style="box-sizing: inherit; border: 0px; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">-</span><span style="box-sizing: inherit; border: 0px; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">devel e2fsprogs&nbsp;</span> <span style="box-sizing: inherit; border: 0px; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">#wget http</span><span style="box-sizing: inherit; border: 0px; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">:</span><span style="box-sizing: inherit; border: 0px; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">//zy-res.oss-cn-hangzhou.aliyuncs.com/server/extundelete-0.2.4.tar.bz2</span> <span style="box-sizing: inherit; border: 0px; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">#tar </span><span style="box-sizing: inherit; border: 0px; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">-</span><span style="box-sizing: inherit; border: 0px; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">xvjf extundelete</span><span style="box-sizing: inherit; border: 0px; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">-</span><span style="box-sizing: inherit; border: 0px; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">0.2</span><span style="box-sizing: inherit; border: 0px; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">.</span><span style="box-sizing: inherit; border: 0px; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">4.tar</span><span style="box-sizing: inherit; border: 0px; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">.</span><span style="box-sizing: inherit; border: 0px; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">bz2</span> <span style="box-sizing: inherit; border: 0px; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">#cd extundelete</span><span style="box-sizing: inherit; border: 0px; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">-</span><span style="box-sizing: inherit; border: 0px; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">0.2</span><span style="box-sizing: inherit; border: 0px; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">.</span><span style="box-sizing: inherit; border: 0px; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">4</span> <span style="box-sizing: inherit; border: 0px; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">#./</span><span style="box-sizing: inherit; border: 0px; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">configure</span> <span style="box-sizing: inherit; border: 0px; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">#make </span><span style="box-sizing: inherit; border: 0px; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">&amp;</span><span style="box-sizing: inherit; border: 0px; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">&amp;</span><span style="box-sizing: inherit; border: 0px; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">make install</span></pre>
<p style="box-sizing: inherit; border: 0px; font-family: &quot;Microsoft YaHei&quot;, Helvetica, Arial, &quot;Lucida Grande&quot;, Tahoma, sans-serif; font-size: 15px; margin-top: 0px; margin-right: 0px; margin-left: 0px; outline: 0px; padding: 0px; vertical-align: baseline; word-wrap: break-word; word-break: break-all; text-indent: 2em; color: #444444; line-height: 27px; widows: 1; background-color: #ffffff;"><span style="box-sizing: inherit; border: 0px; font-family: inherit; font-size: 14pt; font-style: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"><strong style="box-sizing: inherit; border: 0px; font-family: inherit; font-size: 18.6666660308838px; font-style: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">三、删除数据查找</strong></span></p>
<p style="box-sizing: inherit; border: 0px; font-family: &quot;Microsoft YaHei&quot;, Helvetica, Arial, &quot;Lucida Grande&quot;, Tahoma, sans-serif; font-size: 15px; margin-top: 0px; margin-right: 0px; margin-left: 0px; outline: 0px; padding: 0px; vertical-align: baseline; word-wrap: break-word; word-break: break-all; text-indent: 2em; color: #444444; line-height: 27px; widows: 1; background-color: #ffffff;">首先，我们先删除一个文件，如图：</p>
<p style="box-sizing: inherit; border: 0px; font-family: &quot;Microsoft YaHei&quot;, Helvetica, Arial, &quot;Lucida Grande&quot;, Tahoma, sans-serif; font-size: 15px; margin-top: 0px; margin-right: 0px; margin-left: 0px; outline: 0px; padding: 0px; vertical-align: baseline; word-wrap: break-word; word-break: break-all; text-indent: 2em; color: #444444; line-height: 27px; widows: 1; background-color: #ffffff;"><img aligncenter"="" src="http://it.baiked.com/wp-content/uploads/2017/12/rm2-300x96.png" alt="Linux怎样恢复误删除的数据" width="619" height="198" srcset="http://it.baiked.com/wp-content/uploads/2017/12/rm2-300x96.png 300w, http://it.baiked.com/wp-content/uploads/2017/12/rm2.png 647w" sizes="(max-width: 619px) 100vw, 619px" style="box-sizing: inherit; border: 0px; font-family: inherit; font-style: inherit; margin: 0px auto 10px; outline: 0px; padding: 0px; vertical-align: middle; display: block; max-width: 100%; height: auto;" /></p>
<p style="box-sizing: inherit; border: 0px; font-family: &quot;Microsoft YaHei&quot;, Helvetica, Arial, &quot;Lucida Grande&quot;, Tahoma, sans-serif; font-size: 15px; margin-top: 0px; margin-right: 0px; margin-left: 0px; outline: 0px; padding: 0px; vertical-align: baseline; word-wrap: break-word; word-break: break-all; text-indent: 2em; color: #444444; line-height: 27px; widows: 1; background-color: #ffffff;">如上图，我们刚才在/boot目录下删除了个symvers-2.6.32-431.el6.x86_64.gz文件，/boot是落到/dev/sda1下</p>
<p style="box-sizing: inherit; border: 0px; font-family: &quot;Microsoft YaHei&quot;, Helvetica, Arial, &quot;Lucida Grande&quot;, Tahoma, sans-serif; font-size: 15px; margin-top: 0px; margin-right: 0px; margin-left: 0px; outline: 0px; padding: 0px; vertical-align: baseline; word-wrap: break-word; word-break: break-all; text-indent: 2em; color: #444444; line-height: 27px; widows: 1; background-color: #ffffff;">在Linux下可以通过&#8220;ls -id&#8221;命令来查看某个文件或者目录的inode值，例如查看根目录的inode值，可以输入：</p>
<pre style="box-sizing: inherit; border: 1px solid #d1d1d1; font-family: inherit; font-size: 15px; margin-top: 0px; margin-bottom: 5px; outline: 0px; padding: 15px; vertical-align: baseline; line-height: 28.5px; max-width: 100%; overflow: auto; white-space: pre-wrap; word-wrap: break-word; word-break: break-all; color: #444444; widows: 1; background-color: #ffffff;">[root@cloud boot]<span style="box-sizing: inherit; border: 0px; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"># ls -id /boot</span> <span style="box-sizing: inherit; border: 0px; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">2</span> /boot</pre>
<p style="box-sizing: inherit; border: 0px; font-family: &quot;Microsoft YaHei&quot;, Helvetica, Arial, &quot;Lucida Grande&quot;, Tahoma, sans-serif; font-size: 15px; margin-top: 0px; margin-right: 0px; margin-left: 0px; outline: 0px; padding: 0px; vertical-align: baseline; word-wrap: break-word; word-break: break-all; text-indent: 2em; color: #444444; line-height: 27px; widows: 1; background-color: #ffffff;"><span style="box-sizing: inherit; border: 0px; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline; color: #ff0000;">注：根目录的inode一般为2</span></p>
<p style="box-sizing: inherit; border: 0px; font-family: &quot;Microsoft YaHei&quot;, Helvetica, Arial, &quot;Lucida Grande&quot;, Tahoma, sans-serif; font-size: 15px; margin-top: 0px; margin-right: 0px; margin-left: 0px; outline: 0px; padding: 0px; vertical-align: baseline; word-wrap: break-word; word-break: break-all; text-indent: 2em; color: #444444; line-height: 27px; widows: 1; background-color: #ffffff;">然后我们开始查找被删除的文件，需要根据分区inode查找，命令如下：</p>
<pre style="box-sizing: inherit; border: 1px solid #d1d1d1; font-family: inherit; font-size: 15px; margin-top: 0px; margin-bottom: 5px; outline: 0px; padding: 15px; vertical-align: baseline; line-height: 28.5px; max-width: 100%; overflow: auto; white-space: pre-wrap; word-wrap: break-word; word-break: break-all; color: #444444; widows: 1; background-color: #ffffff;">#extundelete /dev/sda1 --inode 2</pre>
<p style="box-sizing: inherit; border: 0px; font-family: &quot;Microsoft YaHei&quot;, Helvetica, Arial, &quot;Lucida Grande&quot;, Tahoma, sans-serif; font-size: 15px; margin-top: 0px; margin-right: 0px; margin-left: 0px; outline: 0px; padding: 0px; vertical-align: baseline; word-wrap: break-word; word-break: break-all; text-indent: 2em; color: #444444; line-height: 27px; widows: 1; background-color: #ffffff;">结果如下图：</p>
<p style="box-sizing: inherit; border: 0px; font-family: &quot;Microsoft YaHei&quot;, Helvetica, Arial, &quot;Lucida Grande&quot;, Tahoma, sans-serif; font-size: 15px; margin-top: 0px; margin-right: 0px; margin-left: 0px; outline: 0px; padding: 0px; vertical-align: baseline; word-wrap: break-word; word-break: break-all; text-indent: 2em; color: #444444; line-height: 27px; widows: 1; background-color: #ffffff;"><img aligncenter"="" src="http://it.baiked.com/wp-content/uploads/2017/12/rm3-252x300.png" alt="Linux怎样恢复误删除的数据" width="602" height="717" srcset="http://it.baiked.com/wp-content/uploads/2017/12/rm3-252x300.png 252w, http://it.baiked.com/wp-content/uploads/2017/12/rm3.png 641w" sizes="(max-width: 602px) 100vw, 602px" style="box-sizing: inherit; border: 0px; font-family: inherit; font-style: inherit; margin: 0px auto 10px; outline: 0px; padding: 0px; vertical-align: middle; display: block; max-width: 100%; height: auto;" /></p>
<p style="box-sizing: inherit; border: 0px; font-family: &quot;Microsoft YaHei&quot;, Helvetica, Arial, &quot;Lucida Grande&quot;, Tahoma, sans-serif; font-size: 15px; margin-top: 0px; margin-right: 0px; margin-left: 0px; outline: 0px; padding: 0px; vertical-align: baseline; word-wrap: break-word; word-break: break-all; text-indent: 2em; color: #444444; line-height: 27px; widows: 1; background-color: #ffffff;">我们就可以看到标识为Deleted的被删除数据了。</p>
<p style="box-sizing: inherit; border: 0px; font-family: &quot;Microsoft YaHei&quot;, Helvetica, Arial, &quot;Lucida Grande&quot;, Tahoma, sans-serif; font-size: 15px; margin-top: 0px; margin-right: 0px; margin-left: 0px; outline: 0px; padding: 0px; vertical-align: baseline; word-wrap: break-word; word-break: break-all; text-indent: 2em; color: #444444; line-height: 27px; widows: 1; background-color: #ffffff;"><span style="box-sizing: inherit; border: 0px; font-family: inherit; font-size: 14pt; font-style: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"><strong style="box-sizing: inherit; border: 0px; font-family: inherit; font-size: 18.6666660308838px; font-style: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">四、数据恢复</strong></span></p>
<p style="box-sizing: inherit; border: 0px; font-family: &quot;Microsoft YaHei&quot;, Helvetica, Arial, &quot;Lucida Grande&quot;, Tahoma, sans-serif; font-size: 15px; margin-top: 0px; margin-right: 0px; margin-left: 0px; outline: 0px; padding: 0px; vertical-align: baseline; word-wrap: break-word; word-break: break-all; text-indent: 2em; color: #444444; line-height: 27px; widows: 1; background-color: #ffffff;">我们就开始恢复，命令如下：</p>
<pre style="box-sizing: inherit; border: 1px solid #d1d1d1; font-family: inherit; font-size: 15px; margin-top: 0px; margin-bottom: 5px; outline: 0px; padding: 15px; vertical-align: baseline; line-height: 28.5px; max-width: 100%; overflow: auto; white-space: pre-wrap; word-wrap: break-word; word-break: break-all; color: #444444; widows: 1; background-color: #ffffff;"><span style="box-sizing: inherit; border: 0px; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">#extundelete /dev/sda1 --restore-file symvers-2.6.32-431.el6.x86_64.gz</span></pre>
<p style="box-sizing: inherit; border: 0px; font-family: &quot;Microsoft YaHei&quot;, Helvetica, Arial, &quot;Lucida Grande&quot;, Tahoma, sans-serif; font-size: 15px; margin-top: 0px; margin-right: 0px; margin-left: 0px; outline: 0px; padding: 0px; vertical-align: baseline; word-wrap: break-word; word-break: break-all; text-indent: 2em; color: #444444; line-height: 27px; widows: 1; background-color: #ffffff;">如图：</p>
<p style="box-sizing: inherit; border: 0px; font-family: &quot;Microsoft YaHei&quot;, Helvetica, Arial, &quot;Lucida Grande&quot;, Tahoma, sans-serif; font-size: 15px; margin-top: 0px; margin-right: 0px; margin-left: 0px; outline: 0px; padding: 0px; vertical-align: baseline; word-wrap: break-word; word-break: break-all; text-indent: 2em; color: #444444; line-height: 27px; widows: 1; background-color: #ffffff;"><img aligncenter"="" src="http://it.baiked.com/wp-content/uploads/2017/12/rm4-300x98.png" alt="Linux怎样恢复误删除的数据" width="655" height="214" srcset="http://it.baiked.com/wp-content/uploads/2017/12/rm4-300x98.png 300w, http://it.baiked.com/wp-content/uploads/2017/12/rm4.png 643w" sizes="(max-width: 655px) 100vw, 655px" style="box-sizing: inherit; border: 0px; font-family: inherit; font-style: inherit; margin: 0px auto 10px; outline: 0px; padding: 0px; vertical-align: middle; display: block; max-width: 100%; height: auto;" /></p>
<p style="box-sizing: inherit; border: 0px; font-family: &quot;Microsoft YaHei&quot;, Helvetica, Arial, &quot;Lucida Grande&quot;, Tahoma, sans-serif; font-size: 15px; margin-top: 0px; margin-right: 0px; margin-left: 0px; outline: 0px; padding: 0px; vertical-align: baseline; word-wrap: break-word; word-break: break-all; text-indent: 2em; color: #444444; line-height: 27px; widows: 1; background-color: #ffffff;"><img aligncenter"="" src="http://it.baiked.com/wp-content/uploads/2017/12/rm5-300x49.png" alt="Linux怎样恢复误删除的数据" width="667" height="109" srcset="http://it.baiked.com/wp-content/uploads/2017/12/rm5-300x49.png 300w, http://it.baiked.com/wp-content/uploads/2017/12/rm5.png 641w" sizes="(max-width: 667px) 100vw, 667px" style="box-sizing: inherit; border: 0px; font-family: inherit; font-style: inherit; margin: 0px auto 10px; outline: 0px; padding: 0px; vertical-align: middle; display: block; max-width: 100%; height: auto;" /></p>
<p style="box-sizing: inherit; border: 0px; font-family: &quot;Microsoft YaHei&quot;, Helvetica, Arial, &quot;Lucida Grande&quot;, Tahoma, sans-serif; font-size: 15px; margin-top: 0px; margin-right: 0px; margin-left: 0px; outline: 0px; padding: 0px; vertical-align: baseline; word-wrap: break-word; word-break: break-all; text-indent: 2em; color: #444444; line-height: 27px; widows: 1; background-color: #ffffff;">还原成功</p>
<p style="box-sizing: inherit; border: 0px; font-family: &quot;Microsoft YaHei&quot;, Helvetica, Arial, &quot;Lucida Grande&quot;, Tahoma, sans-serif; font-size: 15px; margin-top: 0px; margin-right: 0px; margin-left: 0px; outline: 0px; padding: 0px; vertical-align: baseline; word-wrap: break-word; word-break: break-all; text-indent: 2em; color: #444444; line-height: 27px; widows: 1; background-color: #ffffff;">当然，还有可能删除整个文件夹，我们也举个例子，如下：</p>
<pre style="box-sizing: inherit; border: 1px solid #d1d1d1; font-family: inherit; font-size: 15px; margin-top: 0px; margin-bottom: 5px; outline: 0px; padding: 15px; vertical-align: baseline; line-height: 28.5px; max-width: 100%; overflow: auto; white-space: pre-wrap; word-wrap: break-word; word-break: break-all; color: #444444; widows: 1; background-color: #ffffff;"><span style="box-sizing: inherit; border: 0px; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">#extundelete /dev/sda1 --restore-directory test</span></pre>
<p style="box-sizing: inherit; border: 0px; font-family: &quot;Microsoft YaHei&quot;, Helvetica, Arial, &quot;Lucida Grande&quot;, Tahoma, sans-serif; font-size: 15px; margin-top: 0px; margin-right: 0px; margin-left: 0px; outline: 0px; padding: 0px; vertical-align: baseline; word-wrap: break-word; word-break: break-all; text-indent: 2em; color: #444444; line-height: 27px; widows: 1; background-color: #ffffff;">恢复全部删除数据，如下：</p>
<pre style="box-sizing: inherit; border: 1px solid #d1d1d1; font-family: inherit; font-size: 15px; margin-top: 0px; margin-bottom: 5px; outline: 0px; padding: 15px; vertical-align: baseline; line-height: 28.5px; max-width: 100%; overflow: auto; white-space: pre-wrap; word-wrap: break-word; word-break: break-all; color: #444444; widows: 1; background-color: #ffffff;">#extundelete /dev/sdb1 --restore-all</pre>
<p style="box-sizing: inherit; border: 0px; font-family: &quot;Microsoft YaHei&quot;, Helvetica, Arial, &quot;Lucida Grande&quot;, Tahoma, sans-serif; font-size: 15px; margin-top: 0px; margin-right: 0px; margin-left: 0px; outline: 0px; padding: 0px; vertical-align: baseline; word-wrap: break-word; word-break: break-all; text-indent: 2em; color: #444444; line-height: 27px; widows: 1; background-color: #ffffff;">也可以通过时间段恢复，这里就不说了，参数如下：</p>
<pre style="box-sizing: inherit; border: 1px solid #d1d1d1; font-family: inherit; font-size: 15px; margin-top: 0px; margin-bottom: 5px; outline: 0px; padding: 15px; vertical-align: baseline; line-height: 28.5px; max-width: 100%; overflow: auto; white-space: pre-wrap; word-wrap: break-word; word-break: break-all; color: #444444; widows: 1; background-color: #ffffff;">--version, -[vV]，显示软件版本号。 --help，显示软件帮助信息。 --superblock，显示超级块信息。 --journal，显示日志信息。 --after dtime，时间参数，表示在某段时间之后被删的文件或目录。 --before dtime，时间参数，表示在某段时间之前被删的文件或目录。 动作（action）有： --inode ino，显示节点&#8220;ino&#8221;的信息。 --block blk，显示数据块&#8220;blk&#8221;的信息。 --restore-inode ino[,ino,...]，恢复命令参数，表示恢复节点&#8220;ino&#8221;的文件，恢复的文件会自动放在当前目录下的RESTORED_FILES文件夹中，使用节点编号作为扩展名。 --restore-file 'path'，恢复命令参数，表示将恢复指定路径的文件，并把恢复的文件放在当前目录下的RECOVERED_FILES目录中。 --restore-files 'path'，恢复命令参数，表示将恢复在路径中已列出的所有文件。 --restore-all，恢复命令参数，表示将尝试恢复所有目录和文件。 -j journal，表示从已经命名的文件中读取扩展日志。 -b blocknumber，表示使用之前备份的超级块来打开文件系统，一般用于查看现有超级块是不是当前所要的文件。 -B blocksize，通过指定数据块大小来打开文件系统，一般用于查看已经知道大小的文件。</pre>
<p style="box-sizing: inherit; border: 0px; font-family: &quot;Microsoft YaHei&quot;, Helvetica, Arial, &quot;Lucida Grande&quot;, Tahoma, sans-serif; font-size: 15px; margin-top: 0px; margin-right: 0px; margin-left: 0px; outline: 0px; padding: 0px; vertical-align: baseline; word-wrap: break-word; word-break: break-all; text-indent: 2em; color: #444444; line-height: 27px; widows: 1; background-color: #ffffff;"><span style="box-sizing: inherit; border: 0px; font-family: inherit; font-size: 14pt; font-style: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"><strong style="box-sizing: inherit; border: 0px; font-family: inherit; font-size: 18.6666660308838px; font-style: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">五、总结</strong></span></p>
<p style="box-sizing: inherit; border: 0px; font-family: &quot;Microsoft YaHei&quot;, Helvetica, Arial, &quot;Lucida Grande&quot;, Tahoma, sans-serif; font-size: 15px; margin-top: 0px; margin-right: 0px; margin-left: 0px; outline: 0px; padding: 0px; vertical-align: baseline; word-wrap: break-word; word-break: break-all; text-indent: 2em; color: #444444; line-height: 27px; widows: 1; background-color: #ffffff;">数据恢复，不一定能全部将数据恢复回来，还是一句话，操作要谨慎。万一操作失误，也不要慌，将损失减少到最小，首先停止所有操作，其次让专业人员去处理。<br />
<br />
<a href="https://promotion.aliyun.com/ntms/act/ambassador/sharetouser.html?userCode=dmb0rzcj&amp;amp;utm_source=dmb0rzcj" target="_blank"><img src="http://www.blogjava.net/images/blogjava_net/alpha/760-130.jpg" alt="阿里云服务器优惠券" /></a>
</p><img src ="http://www.blogjava.net/Alpha/aggbug/432972.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Alpha/" target="_blank">Alpha</a> 2017-12-23 16:11 <a href="http://www.blogjava.net/Alpha/archive/2017/12/23/432972.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title> CentOS 7 安裝 Nginx、PHP7、PHP-FPM</title><link>http://www.blogjava.net/Alpha/archive/2016/08/10/431515.html</link><dc:creator>Alpha</dc:creator><author>Alpha</author><pubDate>Wed, 10 Aug 2016 05:44:00 GMT</pubDate><guid>http://www.blogjava.net/Alpha/archive/2016/08/10/431515.html</guid><wfw:comment>http://www.blogjava.net/Alpha/comments/431515.html</wfw:comment><comments>http://www.blogjava.net/Alpha/archive/2016/08/10/431515.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Alpha/comments/commentRss/431515.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Alpha/services/trackbacks/431515.html</trackback:ping><description><![CDATA[<a href="https://promotion.aliyun.com/ntms/act/ambassador/sharetouser.html?userCode=dmb0rzcj&amp;amp;utm_source=dmb0rzcj" target="_blank"><img src="http://www.blogjava.net/images/blogjava_net/alpha/760-130.jpg" alt="阿里云服务器优惠券" /></a>
<br />
<ol style="padding: 0px; margin: 0px 0px 0.75em 25px; font-size: 16px; line-height: 27.2px; color: #333333; font-family: &quot;Helvetica Neue&quot;, Helvetica, Tahoma, Arial, STXihei, &quot;Microsoft YaHei&quot;, 微软雅黑, sans-serif; background-color: #fefefe;">
     <li style="line-height: 1.7em;">安裝 nginx&nbsp;<br />
     CentOS 7 沒有內建的 nginx，所以先到 nginx 官網&nbsp;&nbsp;<a href="http://nginx.org/en/linux_packages.html#stable" target="_blank" rel="nofollow,noindex" style="color: #949494; text-decoration: none; transition: 0.25s; outline: none 0px; border-bottom: 1px dashed #949494; font-style: italic; font-weight: bold;">http://nginx.org/en/linux_packages.html#stable</a>&nbsp;，找到 CentOS 7 的 nginx-release package 檔案連結，然後如下安裝
     <pre ruby"="" style="padding: 0.3em; font-family: Monaco, Menlo, Consolas, &quot;Courier New&quot;, monospace; border-radius: 4px; margin-top: 0px; margin-bottom: 1.5em; font-size: 12px; line-height: 1.5em; word-break: break-all; word-wrap: break-word; white-space: pre-wrap; border: 1px solid rgba(0, 0, 0, 0.14902); overflow-y: auto; background-color: #f6f6f6;">rpm -Uvh <span style="color: #990073;">http:</span>/<span style="color: #009926;">/nginx.org/packages</span><span style="color: #009926;">/centos/</span><span style="color: #009999;">7</span>/noarch/RPMS/nginx-release-centos-<span style="color: #009999;">7</span>-<span style="color: #009999;">0</span>.el7.ngx.noarch.rpm</pre>
     安裝後，會自動產生 yum 的 repository 設定(在 /etc/yum.repos.d/nginx.repo)，&nbsp;<br />
     接下來便可以使用 yum 指令安裝 nginx
     <pre style="padding: 0.3em; font-family: Monaco, Menlo, Consolas, &quot;Courier New&quot;, monospace; border-radius: 4px; margin-top: 0px; margin-bottom: 0.75em; font-size: 12px; line-height: 1.5em; word-break: break-all; word-wrap: break-word; white-space: pre-wrap; border: 1px solid rgba(0, 0, 0, 0.14902); overflow-y: auto; background-color: #f6f6f6;">yum install nginx</pre>
     </li>
     <li style="line-height: 1.7em;">啟動&nbsp;nginx&nbsp;<br />
     以前用 chkconfig 管理服務，CentOS 7 改用&nbsp;systemctl 管理系統服務&nbsp;<br />
     立即啟動
     <pre style="padding: 0.3em; font-family: Monaco, Menlo, Consolas, &quot;Courier New&quot;, monospace; border-radius: 4px; margin-top: 0px; margin-bottom: 0.75em; font-size: 12px; line-height: 1.5em; word-break: break-all; word-wrap: break-word; white-space: pre-wrap; border: 1px solid rgba(0, 0, 0, 0.14902); overflow-y: auto; background-color: #f6f6f6;">systemctl <span style="font-weight: bold;">start nginx</span></pre>
     查看目前運作狀態
     <pre style="padding: 0.3em; font-family: Monaco, Menlo, Consolas, &quot;Courier New&quot;, monospace; border-radius: 4px; margin-top: 0px; margin-bottom: 0.75em; font-size: 12px; line-height: 1.5em; word-break: break-all; word-wrap: break-word; white-space: pre-wrap; border: 1px solid rgba(0, 0, 0, 0.14902); overflow-y: auto; background-color: #f6f6f6;">systemctl status nginx</pre>
     查看 nginx 服務目前的啟動設定
     <pre style="padding: 0.3em; font-family: Monaco, Menlo, Consolas, &quot;Courier New&quot;, monospace; border-radius: 4px; margin-top: 0px; margin-bottom: 0.75em; font-size: 12px; line-height: 1.5em; word-break: break-all; word-wrap: break-word; white-space: pre-wrap; border: 1px solid rgba(0, 0, 0, 0.14902); overflow-y: auto; background-color: #f6f6f6;">systemctl <span style="font-weight: bold;">list</span>-unit-files | grep nginx</pre>
     若是 disabled，可以改成開機自動啟動
     <pre style="padding: 0.3em; font-family: Monaco, Menlo, Consolas, &quot;Courier New&quot;, monospace; border-radius: 4px; margin-top: 0px; margin-bottom: 0.75em; font-size: 12px; line-height: 1.5em; word-break: break-all; word-wrap: break-word; white-space: pre-wrap; border: 1px solid rgba(0, 0, 0, 0.14902); overflow-y: auto; background-color: #f6f6f6;">systemctl enable nginx</pre>
     若有設定防火牆，查看防火牆運行狀態，看是否有開啟 nginx 使用的 port
     <pre style="padding: 0.3em; font-family: Monaco, Menlo, Consolas, &quot;Courier New&quot;, monospace; border-radius: 4px; margin-top: 0px; margin-bottom: 0.75em; font-size: 12px; line-height: 1.5em; word-break: break-all; word-wrap: break-word; white-space: pre-wrap; border: 1px solid rgba(0, 0, 0, 0.14902); overflow-y: auto; background-color: #f6f6f6;">firewall-cmd <span style="color: #999988; font-style: italic;">--state</span></pre>
     永久開放開啟防火牆的 http 服務
     <pre style="padding: 0.3em; font-family: Monaco, Menlo, Consolas, &quot;Courier New&quot;, monospace; border-radius: 4px; margin-top: 0px; margin-bottom: 0.75em; font-size: 12px; line-height: 1.5em; word-break: break-all; word-wrap: break-word; white-space: pre-wrap; border: 1px solid rgba(0, 0, 0, 0.14902); overflow-y: auto; background-color: #f6f6f6;">firewall-cmd --permanent --zone=<span style="font-weight: bold;">public</span> --add-service=http</pre>
     <pre style="padding: 0.3em; font-family: Monaco, Menlo, Consolas, &quot;Courier New&quot;, monospace; border-radius: 4px; margin-top: 0px; margin-bottom: 0.75em; font-size: 12px; line-height: 1.5em; word-break: break-all; word-wrap: break-word; white-space: pre-wrap; border: 1px solid rgba(0, 0, 0, 0.14902); overflow-y: auto; background-color: #f6f6f6;">firewall-cmd <span style="color: #999988; font-style: italic;">--reload</span></pre>
     列出防火牆 public 的設定
     <pre style="padding: 0.3em; font-family: Monaco, Menlo, Consolas, &quot;Courier New&quot;, monospace; border-radius: 4px; margin-top: 0px; margin-bottom: 0.75em; font-size: 12px; line-height: 1.5em; word-break: break-all; word-wrap: break-word; white-space: pre-wrap; border: 1px solid rgba(0, 0, 0, 0.14902); overflow-y: auto; background-color: #f6f6f6;">firewall-cmd --<span style="font-weight: bold;">list</span>-all --zone=<span style="font-weight: bold;">public</span></pre>
     經過以上設定，應該就可以使用瀏覽器訪問 nginx 的預設頁面。</li>
     <li style="line-height: 1.7em;">安裝 PHP-FPM&nbsp;<br />
     使用 yum 安裝 php、php-fpm、php-mysql
     <pre style="padding: 0.3em; font-family: Monaco, Menlo, Consolas, &quot;Courier New&quot;, monospace; border-radius: 4px; margin-top: 0px; margin-bottom: 0.75em; font-size: 12px; line-height: 1.5em; word-break: break-all; word-wrap: break-word; white-space: pre-wrap; border: 1px solid rgba(0, 0, 0, 0.14902); overflow-y: auto; background-color: #f6f6f6;">yum install php php-fpm php-mysql</pre>
     查看 php-fpm 服務目前的啟動設定&nbsp;<br />
     <pre style="padding: 0.3em; font-family: Monaco, Menlo, Consolas, &quot;Courier New&quot;, monospace; border-radius: 4px; margin-top: 0px; margin-bottom: 0.75em; font-size: 12px; line-height: 1.5em; word-break: break-all; word-wrap: break-word; white-space: pre-wrap; border: 1px solid rgba(0, 0, 0, 0.14902); overflow-y: auto; background-color: #f6f6f6;">systemctl <span style="font-weight: bold;">list</span>-unit-files | grep php-fpm</pre>
     改成開機自動啟動
     <pre style="padding: 0.3em; font-family: Monaco, Menlo, Consolas, &quot;Courier New&quot;, monospace; border-radius: 4px; margin-top: 0px; margin-bottom: 0.75em; font-size: 12px; line-height: 1.5em; word-break: break-all; word-wrap: break-word; white-space: pre-wrap; border: 1px solid rgba(0, 0, 0, 0.14902); overflow-y: auto; background-color: #f6f6f6;">systemctl enable php-fpm</pre>
     立即啟動
     <pre style="padding: 0.3em; font-family: Monaco, Menlo, Consolas, &quot;Courier New&quot;, monospace; border-radius: 4px; margin-top: 0px; margin-bottom: 0.75em; font-size: 12px; line-height: 1.5em; word-break: break-all; word-wrap: break-word; white-space: pre-wrap; border: 1px solid rgba(0, 0, 0, 0.14902); overflow-y: auto; background-color: #f6f6f6;">systemctl <span style="font-weight: bold;">start php-fpm</span></pre>
     查看目前運作狀態
     <pre style="padding: 0.3em; font-family: Monaco, Menlo, Consolas, &quot;Courier New&quot;, monospace; border-radius: 4px; margin-top: 0px; margin-bottom: 0.75em; font-size: 12px; line-height: 1.5em; word-break: break-all; word-wrap: break-word; white-space: pre-wrap; border: 1px solid rgba(0, 0, 0, 0.14902); overflow-y: auto; background-color: #f6f6f6;">systemctl status php-fpm</pre>
     </li>
     <li style="line-height: 1.7em;">修改&nbsp;PHP-FPM listen 的方式&nbsp;<br />
     若想將&nbsp;PHP-FPM listen 的方式，改成 unix socket，可以編輯 /etc/php-fpm.d/www.conf&nbsp;<br />
     將
     <pre style="padding: 0.3em; font-family: Monaco, Menlo, Consolas, &quot;Courier New&quot;, monospace; border-radius: 4px; margin-top: 0px; margin-bottom: 0.75em; font-size: 12px; line-height: 1.5em; word-break: break-all; word-wrap: break-word; white-space: pre-wrap; border: 1px solid rgba(0, 0, 0, 0.14902); overflow-y: auto; background-color: #f6f6f6;">listen = <span style="color: #009999;">127.0.0.1:9000</span></pre>
     改成
     <pre style="padding: 0.3em; font-family: Monaco, Menlo, Consolas, &quot;Courier New&quot;, monospace; border-radius: 4px; margin-top: 0px; margin-bottom: 0.75em; font-size: 12px; line-height: 1.5em; word-break: break-all; word-wrap: break-word; white-space: pre-wrap; border: 1px solid rgba(0, 0, 0, 0.14902); overflow-y: auto; background-color: #f6f6f6;">listen = <span style="color: #009926;">/var/run</span><span style="color: #009926;">/php-fpm/php</span>-fpm.sock</pre>
     然後重新啟動 php-fpm
     <pre style="padding: 0.3em; font-family: Monaco, Menlo, Consolas, &quot;Courier New&quot;, monospace; border-radius: 4px; margin-top: 0px; margin-bottom: 0.75em; font-size: 12px; line-height: 1.5em; word-break: break-all; word-wrap: break-word; white-space: pre-wrap; border: 1px solid rgba(0, 0, 0, 0.14902); overflow-y: auto; background-color: #f6f6f6;">systemctl re<span style="font-weight: bold;">start php-fpm</span></pre>
     註：不要改成 listen = /tmp/php-fcgi.sock (將 php-fcgi.sock 設定在 /tmp 底下)， 因為系統產生 php-fcgi.sock 時，會放在 /tmp/systemd-private-*/tmp/php-fpm.sock 隨機私有目錄下， 除非把 /usr/lib/systemd/system/ 裡面的 PrivateTmp=true 設定改成 PrivateTmp=false， 但還是會產生其他問題，所以還是換個位置最方便&nbsp;<br />
     <br />
     <br />
     <h2>删除之前的版本</h2>
     <p style="margin-top: 10px; margin-bottom: 10px; padding: 0px; color: #000000; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 21.6px; background-color: #ffffff;"><code style="margin: 1px 5px; height: 20px; line-height: 1.8; vertical-align: middle; display: inline-block; padding: 0px 5px !important; font-family: &quot;Courier New&quot;, sans-serif !important; border: 1px solid #cccccc !important; border-radius: 3px !important; background-color: #f5f5f5 !important;"># yum remove php*</code></p>
     <h2>rpm 安装 Php7 相应的 yum源</h2>
     <p style="margin-top: 10px; margin-bottom: 10px; padding: 0px; color: #000000; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 21.6px; background-color: #ffffff;">CentOS/RHEL 7.x:</p>
     <pre style="margin-top: 10px; margin-bottom: 10px; padding: 0px; white-space: pre-wrap; word-wrap: break-word; color: #000000; font-size: 12px; line-height: 21.6px; background-color: #ffffff;"><code cpp"="" style="margin: auto; height: auto; vertical-align: middle; display: block; overflow-x: auto; padding: 5px !important; line-height: 1.5 !important; font-family: &quot;Courier New&quot;, sans-serif !important; border: 1px solid #cccccc !important; border-radius: 3px !important; background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;"><span style="margin: 0px; padding: 0px; color: #2b91af;"># rpm -Uvh https:<span style="margin: 0px; padding: 0px; color: green;">//dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm</span></span> <span style="margin: 0px; padding: 0px; color: #2b91af;"># rpm -Uvh https:<span style="margin: 0px; padding: 0px; color: green;">//mirror.webtatic.com/yum/el7/webtatic-release.rpm</span></span></code></pre>
     <p style="margin-top: 10px; margin-bottom: 10px; padding: 0px; color: #000000; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 21.6px; background-color: #ffffff;">CentOS/RHEL 6.x:<br style="margin: 0px; padding: 0px;" />
     <code style="margin: 1px 5px; height: 20px; line-height: 1.8; vertical-align: middle; display: inline-block; padding: 0px 5px !important; font-family: &quot;Courier New&quot;, sans-serif !important; border: 1px solid #cccccc !important; border-radius: 3px !important; background-color: #f5f5f5 !important;"># rpm -Uvh https://mirror.webtatic.com/yum/el6/latest.rpm</code></p>
     <h2>yum安装php7</h2>
     <p style="margin-top: 10px; margin-bottom: 10px; padding: 0px; color: #000000; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 21.6px; background-color: #ffffff;"><code style="margin: 1px 5px; height: 20px; line-height: 1.8; vertical-align: middle; display: inline-block; padding: 0px 5px !important; font-family: &quot;Courier New&quot;, sans-serif !important; border: 1px solid #cccccc !important; border-radius: 3px !important; background-color: #f5f5f5 !important;">yum install php70w php70w-opcache</code><br style="margin: 0px; padding: 0px;" />
     安装其他插件（选装）<br style="margin: 0px; padding: 0px;" />
     注：如果安装pear，需要安装php70w-devel<br style="margin: 0px; padding: 0px;" />
     php70w<br style="margin: 0px; padding: 0px;" />
     php70w-bcmath<br style="margin: 0px; padding: 0px;" />
     php70w-cli<br style="margin: 0px; padding: 0px;" />
     php70w-common<br style="margin: 0px; padding: 0px;" />
     php70w-dba<br style="margin: 0px; padding: 0px;" />
     php70w-devel<br style="margin: 0px; padding: 0px;" />
     php70w-embedded<br style="margin: 0px; padding: 0px;" />
     php70w-enchant<br style="margin: 0px; padding: 0px;" />
     php70w-fpm<br style="margin: 0px; padding: 0px;" />
     php70w-gd<br style="margin: 0px; padding: 0px;" />
     php70w-imap<br style="margin: 0px; padding: 0px;" />
     php70w-interbase<br style="margin: 0px; padding: 0px;" />
     php70w-intl<br style="margin: 0px; padding: 0px;" />
     php70w-ldap<br style="margin: 0px; padding: 0px;" />
     php70w-mbstring<br style="margin: 0px; padding: 0px;" />
     php70w-mcrypt<br style="margin: 0px; padding: 0px;" />
     php70w-mysql<br style="margin: 0px; padding: 0px;" />
     php70w-mysqlnd<br style="margin: 0px; padding: 0px;" />
     php70w-odbc<br style="margin: 0px; padding: 0px;" />
     php70w-opcache<br style="margin: 0px; padding: 0px;" />
     php70w-pdo<br style="margin: 0px; padding: 0px;" />
     php70w-pdo_dblib<br style="margin: 0px; padding: 0px;" />
     php70w-pear<br style="margin: 0px; padding: 0px;" />
     php70w-pecl-apcu<br style="margin: 0px; padding: 0px;" />
     php70w-pecl-imagick<br style="margin: 0px; padding: 0px;" />
     php70w-pecl-xdebug<br style="margin: 0px; padding: 0px;" />
     php70w-pgsql<br style="margin: 0px; padding: 0px;" />
     php70w-phpdbg<br style="margin: 0px; padding: 0px;" />
     php70w-process<br style="margin: 0px; padding: 0px;" />
     php70w-pspell<br style="margin: 0px; padding: 0px;" />
     php70w-recode<br style="margin: 0px; padding: 0px;" />
     php70w-snmp<br style="margin: 0px; padding: 0px;" />
     php70w-soap<br style="margin: 0px; padding: 0px;" />
     php70w-tidy<br style="margin: 0px; padding: 0px;" />
     php70w-xml<br style="margin: 0px; padding: 0px;" />
     php70w-xmlrp</p>
     <h1>编译安装php7</h1>
     <p style="margin-top: 10px; margin-bottom: 10px; padding: 0px; color: #000000; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 21.6px; background-color: #ffffff;">配置（configure）、编译（make）、安装（make install）</p>
     <h2>使用configure --help</h2>
     <p style="margin-top: 10px; margin-bottom: 10px; padding: 0px; color: #000000; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 21.6px; background-color: #ffffff;">编译安装一定要指定定prefix，这是安装目录，会把所有文件限制在这个目录，卸载时只需要删除那个目录就可以，如果不指定会安装到很多地方，后边删除不方便。</p>
     <pre style="margin-top: 10px; margin-bottom: 10px; padding: 0px; white-space: pre-wrap; word-wrap: break-word; color: #000000; font-size: 12px; line-height: 21.6px; background-color: #ffffff;"><code swift"="" style="margin: auto; height: auto; vertical-align: middle; display: block; overflow-x: auto; padding: 5px !important; line-height: 1.5 !important; font-family: &quot;Courier New&quot;, sans-serif !important; border: 1px solid #cccccc !important; border-radius: 3px !important; background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;"><span style="margin: 0px; padding: 0px; color: #a31515;">Configuration</span>: --cache-file=<span style="margin: 0px; padding: 0px; color: #a31515;">FILE</span> cache test results <span style="margin: 0px; padding: 0px; color: #0000ff;">in</span> <span style="margin: 0px; padding: 0px; color: #a31515;">FILE</span> --help <span style="margin: 0px; padding: 0px; color: #0000ff;">print</span> this message --no-create <span style="margin: 0px; padding: 0px; color: #0000ff;">do</span> not create output files --quiet, --silent <span style="margin: 0px; padding: 0px; color: #0000ff;">do</span> not <span style="margin: 0px; padding: 0px; color: #0000ff;">print</span> `checking...' messages --version <span style="margin: 0px; padding: 0px; color: #0000ff;">print</span> the version of autoconf that created configure <span style="margin: 0px; padding: 0px; color: #a31515;">Directory</span> and file names: --<span style="margin: 0px; padding: 0px; color: #0000ff;">prefix</span>=<span style="margin: 0px; padding: 0px; color: #a31515;">PREFIX</span> install architecture-independent files <span style="margin: 0px; padding: 0px; color: #0000ff;">in</span> <span style="margin: 0px; padding: 0px; color: #a31515;">PREFIX</span> [/usr/local] --exec-<span style="margin: 0px; padding: 0px; color: #0000ff;">prefix</span>=<span style="margin: 0px; padding: 0px; color: #a31515;">EPREFIX</span> install architecture-dependent files <span style="margin: 0px; padding: 0px; color: #0000ff;">in</span> <span style="margin: 0px; padding: 0px; color: #a31515;">EPREFIX</span></code></pre>
     <p style="margin-top: 10px; margin-bottom: 10px; padding: 0px; color: #000000; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 21.6px; background-color: #ffffff;"><strong style="margin: 0px; padding: 0px;">注意</strong><br style="margin: 0px; padding: 0px;" />
     内存小于1G安装往往会出错，在编译参数后面加上一行内容<code style="margin: 1px 5px; height: 20px; line-height: 1.8; vertical-align: middle; display: inline-block; padding: 0px 5px !important; font-family: &quot;Courier New&quot;, sans-serif !important; border: 1px solid #cccccc !important; border-radius: 3px !important; background-color: #f5f5f5 !important;">--disable-fileinfo</code></p>
     <h2>其他配置参数</h2>
     <p style="margin-top: 10px; margin-bottom: 10px; padding: 0px; color: #000000; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 21.6px; background-color: #ffffff;">--exec-prefix=EXEC-PREFIX<br style="margin: 0px; padding: 0px;" />
     可以把体系相关的文件安装到一个不同的位置，而不是PREFIX设置的地方．这样做可以比较方便地在不同主机之间共享体系相关的文件<br style="margin: 0px; padding: 0px;" />
     --bindir=DIRECTORY<br style="margin: 0px; padding: 0px;" />
     为可执行程序声明目录，缺省是 EXEC-PREFIX/bin<br style="margin: 0px; padding: 0px;" />
     --datadir=DIRECTORY<br style="margin: 0px; padding: 0px;" />
     设置所安装的程序需要的只读文件的目录．缺省是 PREFIX/share<br style="margin: 0px; padding: 0px;" />
     --sysconfdir=DIRECTORY<br style="margin: 0px; padding: 0px;" />
     用于各种各样配置文件的目录，缺省为 PREFIX/etc<br style="margin: 0px; padding: 0px;" />
     --libdir=DIRECTORY<br style="margin: 0px; padding: 0px;" />
     库文件和动态装载模块的目录．缺省是 EXEC-PREFIX/lib<br style="margin: 0px; padding: 0px;" />
     --includedir=DIRECTORY<br style="margin: 0px; padding: 0px;" />
     C 和 C++ 头文件的目录．缺省是 PREFIX/include<br style="margin: 0px; padding: 0px;" />
     --docdir=DIRECTORY<br style="margin: 0px; padding: 0px;" />
     文档文件，（除 &#8220;man（手册页）&#8221;以外， 将被安装到这个目录．缺省是 PREFIX/doc<br style="margin: 0px; padding: 0px;" />
     --mandir=DIRECTORY<br style="margin: 0px; padding: 0px;" />
     随着程序一起带的手册页 将安装到这个目录．在它们相应的manx子目录里． 缺省是PREFIX/man<br style="margin: 0px; padding: 0px;" />
     <strong style="margin: 0px; padding: 0px;">注意</strong>: 为了减少对共享安装位置（比如 /usr/local/include） 的污染，configure 自动在 datadir， sysconfdir，includedir， 和 docdir 上附加一个 &#8220;/postgresql&#8221; 字串， 除非完全展开以后的目录名字已经包含字串 &#8220;postgres&#8221; 或者 &#8220;pgsql&#8221;．比如，如果你选择 /usr/local 做前缀，那么 C 的头文件将安装到 /usr/local/include/postgresql， 但是如果前缀是 /opt/postgres，那么它们将 被放进 /opt/postgres/include<br style="margin: 0px; padding: 0px;" />
     --with-includes=DIRECTORIES<br style="margin: 0px; padding: 0px;" />
     DIRECTORIES 是一系列冒号分隔的目录，这些目录将被加入编译器的头文件 搜索列表中．如果你有一些可选的包（比如 GNU Readline）安装在 非标准位置，你就必须使用这个选项，以及可能还有相应的 --with-libraries 选项．<br style="margin: 0px; padding: 0px;" />
     --with-libraries=DIRECTORIES<br style="margin: 0px; padding: 0px;" />
     DIRECTORIES 是一系列冒号分隔的目录，这些目录是用于查找库文件的． 如果你有一些包安装在非标准位置，你可能就需要使用这个选项 （以及对应的--with-includes选项）<br style="margin: 0px; padding: 0px;" />
     --enable-XXX<br style="margin: 0px; padding: 0px;" />
     打开XXX支持<br style="margin: 0px; padding: 0px;" />
     --with-XXX<br style="margin: 0px; padding: 0px;" />
     制作XXX模块<br />
     <br />
     </p>
     <ul style="padding: 0px; margin: 0px 0px 0.75em 25px; list-style-type: none; line-height: 27.2px;">
         <li style="line-height: 1.7em; list-style-type: disc;">PHP FPM設定參考
         <pre class="prettyprint ruby" style="padding: 0.3em; font-family: Monaco, Menlo, Consolas, &quot;Courier New&quot;, monospace; border-radius: 4px; margin-top: 0px; margin-bottom: 1.5em; font-size: 12px; line-height: 1.5em; word-break: break-all; word-wrap: break-word; white-space: pre-wrap; border: 1px solid rgba(0, 0, 0, 0.14902); overflow-y: auto; background-color: #f6f6f6;">[global]
         pid = <span class="regexp" style="color: #009926;">/usr/local</span><span class="regexp" style="color: #009926;">/php/var</span><span class="regexp" style="color: #009926;">/run/php</span>-fpm.pid
         error_log = <span class="regexp" style="color: #009926;">/usr/local</span><span class="regexp" style="color: #009926;">/php/var</span><span class="regexp" style="color: #009926;">/log/php</span>-fpm.log
         [www]
         listen = <span class="regexp" style="color: #009926;">/var/run</span><span class="regexp" style="color: #009926;">/php-fpm/php</span>-fpm.sock
         user = www
         group = www
         pm = dynamic
         pm.max_children = <span class="number" style="color: #009999;">800</span>
         pm.start_servers = <span class="number" style="color: #009999;">200</span>
         pm.min_spare_servers = <span class="number" style="color: #009999;">100</span>
         pm.max_spare_servers = <span class="number" style="color: #009999;">800</span>
         pm.max_requests = <span class="number" style="color: #009999;">4000</span>
         rlimit_files = <span class="number" style="color: #009999;">51200</span>
         listen.backlog = <span class="number" style="color: #009999;">65536</span>
         ;設 <span class="number" style="color: #009999;">65536</span> 的原因是-<span class="number" style="color: #009999;">1</span> 可能不是unlimited
         ;說明 <span class="symbol" style="color: #990073;">http:</span>/<span class="regexp" style="color: #009926;">/php.net/manual</span><span class="regexp" style="color: #009926;">/en/install</span>.fpm.configuration.php<span class="comment" style="color: #999988; font-style: italic;">#104172</span>
         slowlog = <span class="regexp" style="color: #009926;">/usr/local</span><span class="regexp" style="color: #009926;">/php/var</span><span class="regexp" style="color: #009926;">/log/slow</span>.log
         request_slowlog_timeout = <span class="number" style="color: #009999;">10</span></pre>
         </li>
         <li style="line-height: 1.7em; list-style-type: disc;">nginx.conf 設定參考&nbsp;<br />
         <pre class="prettyprint php" style="padding: 0.3em; font-family: Monaco, Menlo, Consolas, &quot;Courier New&quot;, monospace; border-radius: 4px; margin-top: 0px; margin-bottom: 1.5em; font-size: 12px; line-height: 1.5em; word-break: break-all; word-wrap: break-word; white-space: pre-wrap; border: 1px solid rgba(0, 0, 0, 0.14902); overflow-y: auto; background-color: #f6f6f6;">user nginx;
         worker_processes <span class="number" style="color: #009999;">8</span>;
         error_log /<span class="keyword" style="font-weight: bold;">var</span>/log/nginx/error.log warn;
         pid /<span class="keyword" style="font-weight: bold;">var</span>/run/nginx.pid;
         events {
         <span class="indent"> </span><span class="keyword" style="font-weight: bold;">use</span> epoll;
         <span class="indent"> </span>worker_connections <span class="number" style="color: #009999;">65535</span>;
         }
         worker_rlimit_nofile <span class="number" style="color: #009999;">65535</span>;
         <span class="comment" style="color: #999988; font-style: italic;">#若沒設定，可能出現錯誤:65535 worker_connections exceed open file resource limit: 1024</span>
         http {
         <span class="indent"> </span><span class="keyword" style="font-weight: bold;">include</span> /etc/nginx/mime.types;
         <span class="indent"> </span>default_type application/octet-stream;
         <span class="indent"> </span>log_format main <span class="string" style="color: #dd1144;">'$remote_addr - $remote_user [$time_local] "$request" '</span>
         <span class="indent"> </span><span class="indent"> </span><span class="indent"> </span><span class="indent"> </span><span class="indent"> </span> <span class="string" style="color: #dd1144;">'$status $body_bytes_sent "$http_referer" '</span>
         <span class="indent"> </span><span class="indent"> </span><span class="indent"> </span><span class="indent"> </span><span class="indent"> </span> <span class="string" style="color: #dd1144;">'"$http_user_agent" "$http_x_forwarded_for"'</span>;
         <span class="indent"> </span>access_log /<span class="keyword" style="font-weight: bold;">var</span>/log/nginx/access.log main;
         <span class="indent"> </span>sendfile on;
         <span class="indent"> </span>tcp_nopush on;
         <span class="indent"> </span>keepalive_timeout <span class="number" style="color: #009999;">65</span>;
         <span class="indent"> </span>server_names_hash_bucket_size <span class="number" style="color: #009999;">128</span>;
         <span class="indent"> </span>client_header_buffer_size <span class="number" style="color: #009999;">32</span>k;
         <span class="indent"> </span>large_client_header_buffers <span class="number" style="color: #009999;">4</span> <span class="number" style="color: #009999;">32</span>k;
         <span class="indent"> </span>client_max_body_size <span class="number" style="color: #009999;">8</span>m;
         <span class="indent"> </span>server_tokens off;
         <span class="indent"> </span>client_body_buffer_size <span class="number" style="color: #009999;">512</span>k;
         <span class="indent"> </span><span class="comment" style="color: #999988; font-style: italic;"># fastcgi</span>
         <span class="indent"> </span>fastcgi_connect_timeout <span class="number" style="color: #009999;">300</span>;
         <span class="indent"> </span>fastcgi_send_timeout <span class="number" style="color: #009999;">300</span>;
         <span class="indent"> </span>fastcgi_read_timeout <span class="number" style="color: #009999;">300</span>;
         <span class="indent"> </span>fastcgi_buffer_size <span class="number" style="color: #009999;">64</span>k;
         <span class="indent"> </span>fastcgi_buffers <span class="number" style="color: #009999;">4</span> <span class="number" style="color: #009999;">64</span>k;
         <span class="indent"> </span>fastcgi_busy_buffers_size <span class="number" style="color: #009999;">128</span>k;
         <span class="indent"> </span>fastcgi_temp_file_write_size <span class="number" style="color: #009999;">128</span>k;
         <span class="indent"> </span>fastcgi_intercept_errors on;
         <span class="indent"> </span><span class="comment" style="color: #999988; font-style: italic;">#gzip (說明 http://nginx.org/en/docs/http/ngx_http_gzip_module.html)</span>
         <span class="indent"> </span>gzip off;
         <span class="indent"> </span>gzip_min_length <span class="number" style="color: #009999;">1</span>k;<span class="comment" style="color: #999988; font-style: italic;">#1k以上才壓縮</span>
         <span class="indent"> </span>gzip_buffers <span class="number" style="color: #009999;">32</span> <span class="number" style="color: #009999;">4</span>k;
         <span class="indent"> </span> <span class="comment" style="color: #999988; font-style: italic;">#http://stackoverflow.com/questions/4888067/how-to-get-linux-kernel-page-size-programatically</span>
         <span class="indent"> </span> <span class="comment" style="color: #999988; font-style: italic;">#使用 getconf PAGESIZE 取得系統 one memory page size，</span>
         <span class="indent"> </span>gzip_http_version <span class="number" style="color: #009999;">1.0</span>;
         <span class="indent"> </span>gzip_comp_level <span class="number" style="color: #009999;">2</span>;
         <span class="indent"> </span>gzip_types text/css text/xml application/javascript application/atom+xml application/rss+xml text/plain application/json;
         <span class="indent"> </span> <span class="comment" style="color: #999988; font-style: italic;">#查看 nginx 的 mime.types 檔案(/etc/nginx/mime.types),裡面有各種類型的定義</span>
         <span class="indent"> </span>gzip_vary on;
         <span class="indent"> </span><span class="keyword" style="font-weight: bold;">include</span> /etc/nginx/conf.d<span class="comment" style="color: #999988; font-style: italic;">/*.conf;
         }
         </span></pre>
         若出現出現錯誤:setrlimit(RLIMIT_NOFILE, 65535) failed (1: Operation not permitted)&nbsp;<br />
         先查看目前系統的設定值
         <pre class="undefined" style="padding: 0.3em; font-family: Monaco, Menlo, Consolas, &quot;Courier New&quot;, monospace; border-radius: 4px; margin-top: 0px; margin-bottom: 0.75em; font-size: 12px; line-height: 1.5em; word-break: break-all; word-wrap: break-word; white-space: pre-wrap; border: 1px solid rgba(0, 0, 0, 0.14902); overflow-y: auto; background-color: #f6f6f6;">ulimit -n</pre>
         若設定值太小，修改 /etc/security/limits.conf
         <pre class="undefined" style="padding: 0.3em; font-family: Monaco, Menlo, Consolas, &quot;Courier New&quot;, monospace; border-radius: 4px; margin-top: 0px; margin-bottom: 0.75em; font-size: 12px; line-height: 1.5em; word-break: break-all; word-wrap: break-word; white-space: pre-wrap; border: 1px solid rgba(0, 0, 0, 0.14902); overflow-y: auto; background-color: #f6f6f6;">vi /etc/security/limits.conf</pre>
         加上或修改以下兩行設定
         <pre class="undefined" style="padding: 0.3em; font-family: Monaco, Menlo, Consolas, &quot;Courier New&quot;, monospace; border-radius: 4px; margin-top: 0px; margin-bottom: 0.75em; font-size: 12px; line-height: 1.5em; word-break: break-all; word-wrap: break-word; white-space: pre-wrap; border: 1px solid rgba(0, 0, 0, 0.14902); overflow-y: auto; background-color: #f6f6f6;">* soft nofile 65535
         * hard nofile 65535</pre>
         </li>
     </ul>
     <p style="margin-top: 10px; margin-bottom: 10px; padding: 0px; color: #000000; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 21.6px; background-color: #ffffff;"><br />
     <br />
     </p>
     </li>
</ol>
<a href="https://promotion.aliyun.com/ntms/act/ambassador/sharetouser.html?userCode=dmb0rzcj&amp;amp;utm_source=dmb0rzcj" target="_blank"><img src="http://www.blogjava.net/images/blogjava_net/alpha/760-130.jpg" alt="阿里云服务器优惠券" /></a><img src ="http://www.blogjava.net/Alpha/aggbug/431515.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Alpha/" target="_blank">Alpha</a> 2016-08-10 13:44 <a href="http://www.blogjava.net/Alpha/archive/2016/08/10/431515.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>CentOS 6.4 配置VPN服务教程</title><link>http://www.blogjava.net/Alpha/archive/2016/02/25/429437.html</link><dc:creator>Alpha</dc:creator><author>Alpha</author><pubDate>Thu, 25 Feb 2016 14:31:00 GMT</pubDate><guid>http://www.blogjava.net/Alpha/archive/2016/02/25/429437.html</guid><wfw:comment>http://www.blogjava.net/Alpha/comments/429437.html</wfw:comment><comments>http://www.blogjava.net/Alpha/archive/2016/02/25/429437.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Alpha/comments/commentRss/429437.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Alpha/services/trackbacks/429437.html</trackback:ping><description><![CDATA[<div style="word-wrap: break-word; word-break: break-all; widows: auto; font-family: 'Microsoft YaHei UI', 'Microsoft YaHei', SimSun, 'Segoe UI', Tahoma, Helvetica, sans-serif, 'Microsoft YaHei', Georgia, Helvetica, Arial, sans-serif, 宋体, PMingLiU, serif; background-color: #ffffff;">1.#&nbsp;rpm&nbsp;-Uvh&nbsp;http://poptop.sourceforge.net/yum/stable/rhel6/pptp-release-current.noarch.rpm&nbsp;<br /></div><div style="word-wrap: break-word; word-break: break-all; widows: auto; font-family: 'Microsoft YaHei UI', 'Microsoft YaHei', SimSun, 'Segoe UI', Tahoma, Helvetica, sans-serif, 'Microsoft YaHei', Georgia, Helvetica, Arial, sans-serif, 宋体, PMingLiU, serif; background-color: #ffffff;"><div style="word-wrap: break-word; word-break: break-all;">2. yum&nbsp;install&nbsp;pptpd&nbsp;<br /></div></div><div style="word-wrap: break-word; word-break: break-all; widows: auto; font-family: 'Microsoft YaHei UI', 'Microsoft YaHei', SimSun, 'Segoe UI', Tahoma, Helvetica, sans-serif, 'Microsoft YaHei', Georgia, Helvetica, Arial, sans-serif, 宋体, PMingLiU, serif; background-color: #ffffff;"><p style="word-wrap: break-word; margin: 0pt; padding: 0px; border: 0px; line-height: 15.74pt; text-indent: 0pt; page-break-before: auto; page-break-after: auto; direction: ltr;"><span style="word-wrap: break-word; color: #454545; font-family: Tahoma; vertical-align: baseline;">3.配置pptp.首先我们要编辑/etc/pptpd.conf文件:</span></p><p style="word-wrap: break-word; margin: 0pt; padding: 0px; border: 0px; line-height: 15.74pt; text-indent: 0pt; page-break-before: auto; page-break-after: auto; direction: ltr;"><span style="word-wrap: break-word; color: #454545; font-family: Tahoma; vertical-align: baseline;">#vim /etc/pptpd.conf</span></p><p style="word-wrap: break-word; margin: 0pt; padding: 0px; border: 0px; line-height: 15.74pt; text-indent: 0pt; page-break-before: auto; page-break-after: auto; direction: ltr;"><span style="word-wrap: break-word; color: #454545; font-family: Tahoma; vertical-align: baseline;">找到&#8221;locapip&#8221;和&#8221;remoteip&#8221;这两个配置项,将前面的&#8221;;&#8221;注释符去掉,更改为你期望的IP段值.localip表示服务器的IP,remoteip表示分配给客户端的IP地址,可以设置为区间.这里我们使用pptp默认的配置:</span></p><p style="word-wrap: break-word; margin: 0pt; padding: 0px; border: 0px; line-height: 15.74pt; text-indent: 0pt; page-break-before: auto; page-break-after: auto; direction: ltr;"><span style="word-wrap: break-word; color: #454545; font-family: Tahoma; vertical-align: baseline;">localip 192.168.0.1</span></p><p style="word-wrap: break-word; margin: 0pt; padding: 0px; border: 0px; line-height: 15.74pt; text-indent: 0pt; page-break-before: auto; page-break-after: auto; direction: ltr;"><span style="word-wrap: break-word; color: #454545; font-family: Tahoma; vertical-align: baseline;">remoteip 192.168.0.234-238,192.168.0.245</span></p><p style="word-wrap: break-word; margin: 0pt; padding: 0px; border: 0px; line-height: 15.74pt; text-indent: 0pt; page-break-before: auto; page-break-after: auto; direction: ltr;"><span style="word-wrap: break-word; color: #454545; font-family: Tahoma; vertical-align: baseline;">注意,这里的IP段设置,将直接影响后面的iptables规则添加命令.请注意匹配的正确性,如果你嫌麻烦,建议就用本文的配置,就可以一直复制命令和文本使用了.<br /><br /></span></p><p style="word-wrap: break-word; margin: 0pt; padding: 0px; border: 0px; line-height: 15.74pt; text-indent: 0pt; page-break-before: auto; page-break-after: auto; direction: ltr;"><span style="word-wrap: break-word; color: #454545; font-family: Tahoma; vertical-align: baseline;">4.接下来我们再编辑/etc/ppp/options.pptpd文件,为VPN添加Google DNS：</span></p><p style="word-wrap: break-word; margin: 0pt; padding: 0px; border: 0px; line-height: 15.74pt; text-indent: 0pt; page-break-before: auto; page-break-after: auto; direction: ltr;"><span style="word-wrap: break-word; color: #454545; font-family: Tahoma; vertical-align: baseline;">#vim /etc/ppp/options.pptpd</span></p><p style="word-wrap: break-word; margin: 0pt; padding: 0px; border: 0px; line-height: 15.74pt; text-indent: 0pt; page-break-before: auto; page-break-after: auto; direction: ltr;"><span style="word-wrap: break-word; color: #454545; font-family: Tahoma; vertical-align: baseline;">在末尾添加下面两行:</span></p><p style="word-wrap: break-word; margin: 0pt; padding: 0px; border: 0px; line-height: 15.74pt; text-indent: 0pt; page-break-before: auto; page-break-after: auto; direction: ltr;"><span style="word-wrap: break-word; color: #454545; font-family: Tahoma; vertical-align: baseline;">ms-dns 8.8.8.8</span></p><p style="word-wrap: break-word; margin: 0pt; padding: 0px; border: 0px; line-height: 15.74pt; text-indent: 0pt; page-break-before: auto; page-break-after: auto; direction: ltr;"><span style="word-wrap: break-word; color: #454545; font-family: Tahoma; vertical-align: baseline;">ms-dns 8.8.4.4<br /><br /></span></p><p style="word-wrap: break-word; margin: 0pt; padding: 0px; border: 0px; line-height: 15.74pt; text-indent: 0pt; page-break-before: auto; page-break-after: auto; direction: ltr;"><span style="word-wrap: break-word; color: #454545; font-family: Tahoma; vertical-align: baseline;">5、设置pptp VPN账号密码.我们需要编辑/etc/ppp/chap-secrets这个文件:</span></p><p style="word-wrap: break-word; margin: 0pt; padding: 0px; border: 0px; line-height: 15.74pt; text-indent: 0pt; page-break-before: auto; page-break-after: auto; direction: ltr;"><span style="word-wrap: break-word; color: #454545; font-family: Tahoma; vertical-align: baseline;">#vim /etc/ppp/chap-secrets</span></p><p style="word-wrap: break-word; margin: 0pt; padding: 0px; border: 0px; line-height: 15.74pt; text-indent: 0pt; page-break-before: auto; page-break-after: auto; direction: ltr;"><span style="word-wrap: break-word; color: #454545; font-family: Tahoma; vertical-align: baseline;">在这个文件里面,按照&#8221;用户名 pptpd 密码 *&#8221;的形式编写,一行一个账号和密码.比如添加用户名为test,密码为1234的用户,则编辑如下内容:</span></p><p style="word-wrap: break-word; margin: 0pt; padding: 0px; border: 0px; line-height: 15.74pt; text-indent: 0pt; page-break-before: auto; page-break-after: auto; direction: ltr;"><span style="word-wrap: break-word; color: #454545; font-family: Tahoma; vertical-align: baseline;">test pptpd 1234 *<br /><br /></span></p><p style="word-wrap: break-word; margin: 0pt; padding: 0px; border: 0px; line-height: 15.74pt; text-indent: 0pt; page-break-before: auto; page-break-after: auto; direction: ltr;"><span style="word-wrap: break-word; color: #454545; font-family: Tahoma; vertical-align: baseline;">6、修改内核设置,使其支持转发.编辑/etc/sysctl.conf文件:</span></p><p style="word-wrap: break-word; margin: 0pt; padding: 0px; border: 0px; line-height: 15.74pt; text-indent: 0pt; page-break-before: auto; page-break-after: auto; direction: ltr;"><span style="word-wrap: break-word; color: #454545; font-family: Tahoma; vertical-align: baseline;">#vim /etc/sysctl.conf</span></p><p style="word-wrap: break-word; margin: 0pt; padding: 0px; border: 0px; line-height: 15.74pt; text-indent: 0pt; page-break-before: auto; page-break-after: auto; direction: ltr;"><span style="word-wrap: break-word; color: #454545; font-family: Tahoma; vertical-align: baseline;">将&#8221;net.ipv4.ip_forward&#8221;改为1,变成下面的形式.</span></p><p style="word-wrap: break-word; margin: 0pt; padding: 0px; border: 0px; line-height: 15.74pt; text-indent: 0pt; page-break-before: auto; page-break-after: auto; direction: ltr;"><span style="word-wrap: break-word; color: #454545; font-family: Tahoma; vertical-align: baseline;">net.ipv4.ip_forward=1</span></p><p style="word-wrap: break-word; margin: 0pt; padding: 0px; border: 0px; line-height: 15.74pt; text-indent: 0pt; page-break-before: auto; page-break-after: auto; direction: ltr;"><span style="word-wrap: break-word; color: #454545; font-family: Tahoma; vertical-align: baseline;">保存退出,并执行下面的命令来生效它:</span></p><p style="word-wrap: break-word; margin: 0pt; padding: 0px; border: 0px; line-height: 15.74pt; text-indent: 0pt; page-break-before: auto; page-break-after: auto; direction: ltr;"><span style="word-wrap: break-word; color: #454545; font-family: Tahoma; vertical-align: baseline;">#sysctl -p<br /><br /></span></p><p style="word-wrap: break-word; margin: 0pt; padding: 0px; border: 0px; line-height: 15.74pt; text-indent: 0pt; page-break-before: auto; page-break-after: auto; direction: ltr;"><span style="word-wrap: break-word; color: #454545; font-family: Tahoma; vertical-align: baseline;">7、添加iptables转发规则.经过前面的6个步骤,我们的VPN已经可以拨号了,但是还不能访问任何网页.最后一步就是添加iptables转发规则了,输入下面的指令:</span></p><p style="word-wrap: break-word; margin: 0pt; padding: 0px; border: 0px; line-height: 15.74pt; text-indent: 0pt; page-break-before: auto; page-break-after: auto; direction: ltr;"><span style="word-wrap: break-word; color: #454545; font-family: Tahoma; vertical-align: baseline;">#iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE</span></p><p style="word-wrap: break-word; margin: 0pt; padding: 0px; border: 0px; line-height: 15.74pt; text-indent: 0pt; page-break-before: auto; page-break-after: auto; direction: ltr;"><span style="word-wrap: break-word; color: #454545; font-family: Tahoma; vertical-align: baseline;">需要注意的是,这个指令中的&#8221;192.168.0.0/24&#8243;是根据之前的配置文件中的&#8221;localip&#8221;网段来改变的,比如你设置的&#8221;10.0.0.1&#8243;网段,则应该改为&#8221;10.0.0.0/24&#8243;.此外还有一点需要注意的是eth0,如果你的外网网卡不是eth0,而是eth1(比如SoftLayer的服务器就是这样的情况),那么请记得将eth0也更改为对应的网卡编号,不然是上不了网的.</span></p><p style="word-wrap: break-word; margin: 0pt; padding: 0px; border: 0px; line-height: 15.74pt; text-indent: 0pt; page-break-before: auto; page-break-after: auto; direction: ltr;"><span style="word-wrap: break-word; color: #454545; font-family: Tahoma; vertical-align: baseline;">然后我们输入下面的指令让iptables保存我们刚才的转发规则,以便重启系统后不需要再次添加:</span></p><p style="word-wrap: break-word; margin: 0pt; padding: 0px; border: 0px; line-height: 15.74pt; text-indent: 0pt; page-break-before: auto; page-break-after: auto; direction: ltr;"><span style="word-wrap: break-word; color: #454545; font-family: Tahoma; vertical-align: baseline;">#/etc/init.d/iptables save</span></p><p style="word-wrap: break-word; margin: 0pt; padding: 0px; border: 0px; line-height: 15.74pt; text-indent: 0pt; page-break-before: auto; page-break-after: auto; direction: ltr;"><span style="word-wrap: break-word; color: #454545; font-family: Tahoma; vertical-align: baseline;">然后我们重启iptables：</span></p><p style="word-wrap: break-word; margin: 0pt; padding: 0px; border: 0px; line-height: 15.74pt; text-indent: 0pt; page-break-before: auto; page-break-after: auto; direction: ltr;"><span style="word-wrap: break-word; color: #454545; font-family: Tahoma; vertical-align: baseline;">#/etc/init.d/iptables restart<br /><br /></span></p><p style="word-wrap: break-word; margin: 0pt; padding: 0px; border: 0px; line-height: 15.74pt; text-indent: 0pt; page-break-before: auto; page-break-after: auto; direction: ltr;"><span style="word-wrap: break-word; color: #454545; font-family: Tahoma; vertical-align: baseline;">8、重启pptp服务.输入下面的指令重启pptp:</span></p><p style="word-wrap: break-word; margin: 0pt; padding: 0px; border: 0px; line-height: 15.74pt; text-indent: 0pt; page-break-before: auto; page-break-after: auto; direction: ltr;"><span style="word-wrap: break-word; color: #454545; font-family: Tahoma; vertical-align: baseline;">#/etc/init.d/pptpd restart</span></p><p style="word-wrap: break-word; margin: 0pt; padding: 0px; border: 0px; line-height: 15.74pt; text-indent: 0pt; page-break-before: auto; page-break-after: auto; direction: ltr;"><span style="word-wrap: break-word; color: #454545; font-family: Tahoma; vertical-align: baseline;">现在你已经可以连接自己的VPN并浏览网页了.不过我们还需要做最后的一步.<br /><br /></span></p><p style="word-wrap: break-word; margin: 0pt; padding: 0px; border: 0px; line-height: 15.74pt; text-indent: 0pt; page-break-before: auto; page-break-after: auto; direction: ltr;"><span style="word-wrap: break-word; color: #454545; font-family: Tahoma; vertical-align: baseline;">9、设置开机自动运行服务.我们最后一步是将pptp和iptables设置为开机自动运行,这样就不需要每次重启服务器后手动启动服务了,当然你不需要自动启动服务的话可以忽略这一步,输入指令:</span></p><p style="word-wrap: break-word; margin: 0pt; padding: 0px; border: 0px; line-height: 15.74pt; text-indent: 0pt; page-break-before: auto; page-break-after: auto; direction: ltr;"><span style="word-wrap: break-word; color: #454545; font-family: Tahoma; vertical-align: baseline;">#chkconfig pptpd on</span></p><p style="word-wrap: break-word; margin: 0pt; padding: 0px; border: 0px; line-height: 15.74pt; text-indent: 0pt; page-break-before: auto; page-break-after: auto; direction: ltr;"><span style="word-wrap: break-word; color: #454545; font-family: Tahoma; vertical-align: baseline;">#chkconfig iptables on</span></p><p style="word-wrap: break-word; margin: 0pt; padding: 0px; border: 0px; line-height: 15.74pt; text-indent: 0pt; page-break-before: auto; page-break-after: auto; direction: ltr;"><span style="word-wrap: break-word; color: #454545; font-family: Tahoma; vertical-align: baseline;">这样就大功告成了,赶快到Windows下建立一个VPN连接,IP填写自己的服务器IP,用户名和密码填写自己设置好的用户名和密码,点击&#8221;连接&#8221;,成功后就可以使用服务器去浏览网页啦.</span></p><p style="word-wrap: break-word; margin: 0pt; padding: 0px; border: 0px; line-height: 15.74pt; text-indent: 0pt; page-break-before: auto; page-break-after: auto; direction: ltr;"><span style="word-wrap: break-word; color: #454545; font-family: Tahoma; vertical-align: baseline;"><br clear="all" style="word-wrap: break-word;" /></span></p><p style="word-wrap: break-word; margin: 0pt; padding: 0px; border: 0px; line-height: 15.74pt; text-indent: 0pt; page-break-before: auto; page-break-after: auto; direction: ltr;"><span style="word-wrap: break-word; color: #454545; font-family: Tahoma; vertical-align: baseline;">备注：</span></p><p style="word-wrap: break-word; margin: 0pt; padding: 0px; border: 0px; line-height: 15.74pt; text-indent: 0pt; page-break-before: auto; page-break-after: auto; direction: ltr;"><span style="word-wrap: break-word; color: #454545; font-family: Tahoma; vertical-align: baseline;">多ip服务器转发指定规则</span></p><p style="word-wrap: break-word; margin: 0pt; padding: 0px; border: 0px; line-height: 15.74pt; text-indent: 0pt; page-break-before: auto; page-break-after: auto; direction: ltr;"><span style="word-wrap: break-word; color: #454545; font-family: Tahoma; vertical-align: baseline;">iptables -t nat -A POSTROUTING -s 192.168.8.0/24 -j SNAT --to-source 192.168.8.1</span></p><p style="word-wrap: break-word; margin: 0pt; padding: 0px; border: 0px; line-height: 15.74pt; text-indent: 0pt; page-break-before: auto; page-break-after: auto; direction: ltr;"><span style="word-wrap: break-word; color: #454545; font-family: Tahoma; vertical-align: baseline;">or</span></p><p style="word-wrap: break-word; margin: 0pt; padding: 0px; border: 0px; line-height: 15.74pt; text-indent: 0pt; page-break-before: auto; page-break-after: auto; direction: ltr;"><span style="word-wrap: break-word; color: #454545; font-family: Tahoma; vertical-align: baseline;">iptables -t nat -A POSTROUTING -s 192.168.8.0/24 -j SNAT --to-source 服务器外网ip</span></p><p style="word-wrap: break-word; margin: 0pt; padding: 0px; border: 0px; line-height: 15.74pt; text-indent: 0pt; page-break-before: auto; page-break-after: auto; direction: ltr;"><span style="word-wrap: break-word; color: #454545; font-family: Tahoma; vertical-align: baseline;">如果iphone之类的设备能连上，访问网页或者youtube特别慢，需要做如下修改：</span></p><p style="word-wrap: break-word; margin: 0pt; padding: 0px; border: 0px; line-height: 15.74pt; text-indent: 0pt; page-break-before: auto; page-break-after: auto; direction: ltr;"><span style="word-wrap: break-word; color: #454545; font-family: Tahoma; vertical-align: baseline;">vi /etc/ppp/ip-up</span></p><p style="word-wrap: break-word; margin: 0pt; padding: 0px; border: 0px; line-height: 15.74pt; text-indent: 0pt; page-break-before: auto; page-break-after: auto; direction: ltr;"><span style="word-wrap: break-word; color: #454545; font-family: Tahoma; vertical-align: baseline;">增加一行</span></p><p style="word-wrap: break-word; margin: 0pt; padding: 0px; border: 0px; line-height: 15.74pt; text-indent: 0pt; page-break-before: auto; page-break-after: auto; direction: ltr;"><span style="word-wrap: break-word; color: #454545; font-family: Tahoma; vertical-align: baseline;">/sbin/ifconfig $1 mtu 1400</span></p><p style="word-wrap: break-word; margin: 0pt; padding: 0px; border: 0px; line-height: 15.74pt; text-indent: 0pt; page-break-before: auto; page-break-after: auto; direction: ltr;"><span style="word-wrap: break-word; color: #454545; font-family: Tahoma; vertical-align: baseline;">或者修改iptables规则</span></p><p style="word-wrap: break-word; margin: 0pt; padding: 0px; border: 0px; line-height: 15.74pt; text-indent: 0pt; page-break-before: auto; page-break-after: auto; direction: ltr;"><span style="word-wrap: break-word; color: #454545; font-family: Tahoma; vertical-align: baseline;">iptables -A FORWARD -p tcp --syn -s 192.168.8.0/24 -j TCPMSS --set-mss 1356</span></p><p style="word-wrap: break-word; margin: 0pt; padding: 0px; border: 0px; line-height: 15.74pt; text-indent: 0pt; page-break-before: auto; page-break-after: auto; direction: ltr;"><span style="word-wrap: break-word; color: #454545; font-family: Tahoma; font-size: 10.5pt; vertical-align: baseline;">1356的值可能需要自己调整，调节到能保证网络正常使用情况下的最大值<br /><br /><br /><br /><br /></span></p></div><img src ="http://www.blogjava.net/Alpha/aggbug/429437.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Alpha/" target="_blank">Alpha</a> 2016-02-25 22:31 <a href="http://www.blogjava.net/Alpha/archive/2016/02/25/429437.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在Ubuntu 12.04上利用IP Tables来设置防火墙</title><link>http://www.blogjava.net/Alpha/archive/2015/10/31/428001.html</link><dc:creator>Alpha</dc:creator><author>Alpha</author><pubDate>Sat, 31 Oct 2015 07:51:00 GMT</pubDate><guid>http://www.blogjava.net/Alpha/archive/2015/10/31/428001.html</guid><wfw:comment>http://www.blogjava.net/Alpha/comments/428001.html</wfw:comment><comments>http://www.blogjava.net/Alpha/archive/2015/10/31/428001.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Alpha/comments/commentRss/428001.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Alpha/services/trackbacks/428001.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 关于IP Tables在初始化设置系统后，为了让系统更安全，Ubuntu把Iptabls作为发行版的默认防火墙。起初，尽管Ubuntu防火墙已经被配置了，但是它设置为通过一个虚拟主机允许所有的进入与流出流量。要打开服务器上某些更强的保护功能，我们需要在IP Table山增加一些基础的规则。IP Table 规则来自于一系列可以组合起来创建各自的特定的处理方法的选项。每一个通过防火墙的包被所有的规则...&nbsp;&nbsp;<a href='http://www.blogjava.net/Alpha/archive/2015/10/31/428001.html'>阅读全文</a><img src ="http://www.blogjava.net/Alpha/aggbug/428001.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Alpha/" target="_blank">Alpha</a> 2015-10-31 15:51 <a href="http://www.blogjava.net/Alpha/archive/2015/10/31/428001.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Ubuntu 14.04 安装 php nginx mysql JDK 8 svn</title><link>http://www.blogjava.net/Alpha/archive/2015/10/07/427653.html</link><dc:creator>Alpha</dc:creator><author>Alpha</author><pubDate>Wed, 07 Oct 2015 07:28:00 GMT</pubDate><guid>http://www.blogjava.net/Alpha/archive/2015/10/07/427653.html</guid><wfw:comment>http://www.blogjava.net/Alpha/comments/427653.html</wfw:comment><comments>http://www.blogjava.net/Alpha/archive/2015/10/07/427653.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Alpha/comments/commentRss/427653.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Alpha/services/trackbacks/427653.html</trackback:ping><description><![CDATA[<h4>安装 MySQL 5 数据库</h4>
<p style="text-align: justify; line-height: 22px; background-color: #fafafc; font-family: tahoma, 宋体">安装 MySQL 运行命令：</p>
sudo&nbsp;<span style="text-align: justify; background-color: #fafafc"><font face="tahoma, 宋体"><span style="line-height: 22px"><em>apt-get install mysql-server mysql-client</em></span></font><br />
<br />
</span>
<div><span style="line-height: 22px"><em>将mysql的datadir从默认的/var/lib/mysql 移到/app/data/mysql下，操作如下：</em></span></div>
<div></div>
<div><span style="line-height: 22px"><em>1.修改了/etc/mysql/my.cnf，改为：datadir = /app/data/mysql</em></span></div>
<div><span style="line-height: 22px"><em>2.cp -a /var/lib/mysql /app/data/</em></span></div>
<div><span style="line-height: 22px"><em>3./etc/init.d/mysql start</em></span></div>
<div><span style="line-height: 22px"><em><br />
</em></span></div>
<div><span style="line-height: 22px"><em><br />
</em></span></div>
<div><span style="line-height: 22px"><em>如果出现系统报错，无法启动mysql，日志显示为：Can't find file: "./mysql/plugin.frm'(errno:13)</em></span></div>
<div><span style="line-height: 22px"><em>[ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.</em></span></div>
<div><span style="line-height: 22px"><em><br />
</em></span></div>
<div><span style="line-height: 22px"><em>修改系统的chroot，需要修改/etc/apparmor.d下的相关文件，这里以mysql为例，需要修改：usr.sbin.mysqld和abstractions/mysql两个文件。</em></span></div>
<div><span style="line-height: 22px"><em><br />
</em></span></div>
<div><span style="line-height: 22px"><em>1.修改usr.sbin.mysqld里面的两行内容：/var/lib/mysql/ r,改为：/app/data/mysql/ r,/var/lib/mysql/** rwk,改为：/app/data/mysql/** rwk,</em></span></div>
<div><span style="line-height: 22px"><em>2.修改abstractions/mysql中一行：/var/lib/mysql/mysql.sock rw,改为：/app/data/mysql/mysql.sock rw,</em></span></div>
<div><span style="line-height: 22px"><em>3.重新加载apparmor服务：/etc/init.d/apparmor reload</em></span></div>
<p style="line-height: 26px; background-color: #ffffff; font-family: Arial; color: #333333"></p>
<h4>安装 Nginx</h4>
<p style="text-align: justify; line-height: 22px; background-color: #fafafc; font-family: tahoma, 宋体">在安装 Nginx 之前，如果你已经安装 Apache2 先删除在安装 nginx：</p>
<p style="text-align: justify; line-height: 22px; background-color: #fafafc; font-style: italic; font-family: tahoma, 宋体">service apache2 stop<br />
update-rc.d -f apache2 remove<br />
<span style="line-height: 21px; font-style: normal; font-family: verdana, 'courier new'">sudo&nbsp;</span>apt-get remove apache2</p>
sudo&nbsp;<span style="text-align: justify; line-height: 22px; background-color: #fafafc; font-style: italic; font-family: tahoma, 宋体">apt-get install nginx</span>
<h4 style="text-align: justify; line-height: 22px; background-color: #fafafc; font-family: tahoma, 宋体">安装 PHP5</h4>
<p style="text-align: justify; line-height: 22px; background-color: #fafafc; font-family: tahoma, 宋体">我们必须通过&nbsp;<a style="color: #003399" href="http://php-fpm.org/" target="_blank">PHP-FPM</a>&nbsp;才能让PHP5正常工作，安装命令：</p>
sudo&nbsp;<span style="text-align: justify; line-height: 22px; background-color: #fafafc; font-style: italic; font-family: tahoma, 宋体">apt-get install php5-fpm</span>
<p style="text-align: justify; line-height: 22px; background-color: #fafafc; font-family: tahoma, 宋体">php-fpm是一个守护进程。<br />
<br />
安装mysql和GD扩展</p>
<div>sudo apt-get install php5-gd libapache2-mod-auth-mysql php5-mysql openssl&nbsp;<span style="line-height: 17px; background-color: #ffffff; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace; white-space: pre; font-size: 16px">libssl-dev<br />
</span></div>
<p style="text-align: justify; line-height: 22px; background-color: #fafafc; font-family: tahoma, 宋体"><span style="text-align: left; line-height: 26px; background-color: #ffffff; font-family: Arial">sudo apt-get install curl libcurl3 libcurl3-dev php5-curl</span><br />
</p>
<h4 style="text-align: justify; line-height: 22px; background-color: #fafafc; font-family: tahoma, 宋体">安装 JDK8<br />
<p style="text-align: left; padding-bottom: 0px; line-height: 2em; background-color: #ffffff; margin: 8px 0px; padding-left: 0px; padding-right: 0px; font-family: 'Open Sans', sans-serif; word-wrap: break-word; letter-spacing: 0px; color: #373737; word-break: break-all; font-weight: normal; padding-top: 0px; font-stretch: normal">可以通过访问Oracle官网下载，或者直接通过命令行下载。</p>
<pre style="border-bottom: #dddddd 1px solid; text-align: left; border-left: #dddddd 1px solid; padding-bottom: 5px; line-height: 18px; margin-top: 0px; padding-left: 5px; padding-right: 5px; font-family: 'Courier New', Arial; margin-bottom: 0px;background: #f6f6f6; color: #333333; font-size: 9pt; border-top: #dddddd 1px solid; font-weight: normal; border-right: #dddddd 1px solid; padding-top: 5px">lxh@ubuntu:~$&nbsp;wget&nbsp;-c&nbsp;http://download.oracle.com/otn-pub/java/jdk/8u11-b12/<span style="text-align: justify; line-height: 22px; background-color: #fafafc; font-family: tahoma, 宋体; font-size: 14px">jdk-8u25-linux-x64.tar.gz</span></pre>
</h4>
<h1 style="padding-bottom: 0px; line-height: 43px; background-color: #ffffff; margin: 20px 0px 10px; padding-left: 0px; padding-right: 0px; font-family: 'Microsoft YaHei', Verdana, sans-serif, 宋体; color: #333333; font-size: 24px; padding-top: 0px">解压安装</h1>
<pre style="border-bottom: #dddddd 1px solid; border-left: #dddddd 1px solid; padding-bottom: 5px; line-height: 18px; margin-top: 0px; padding-left: 5px; padding-right: 5px; font-family: 'Courier New', Arial; margin-bottom: 0px;background: #f6f6f6; color: #333333; font-size: 9pt; border-top: #dddddd 1px solid; border-right: #dddddd 1px solid; padding-top: 5px">lxh@ubuntu:~$&nbsp;mkdir&nbsp;-p&nbsp;/usr/lib/jvm <br />
lxh@ubuntu:~$&nbsp;sudo&nbsp;mv&nbsp;<span style="font-size: 9pt">jdk-8u25-linux-x64.tar.gz</span><span style="font-size: 9pt">&nbsp;/usr/lib/jvm </span><br />
lxh@ubuntu:~$&nbsp;cd&nbsp;/usr/lib/jvm <br />
lxh@ubuntu:~$&nbsp;sudo&nbsp;tar&nbsp;xzvf&nbsp;<span style="font-size: 9pt">jdk-8u25-linux-x64.tar.gz</span><span style="font-size: 9pt"> </span><br />
</pre>
<h1 style="padding-bottom: 0px; line-height: 43px; background-color: #ffffff; margin: 20px 0px 10px; padding-left: 0px; padding-right: 0px; font-family: 'Microsoft YaHei', Verdana, sans-serif, 宋体; color: #333333; font-size: 24px; padding-top: 0px"></h1>
<p style="padding-bottom: 0px; line-height: 2em; background-color: #ffffff; margin: 8px 0px; padding-left: 0px; padding-right: 0px; font-family: 'Open Sans', sans-serif; word-wrap: break-word; letter-spacing: 0px; color: #373737; word-break: break-all; padding-top: 0px; font-stretch: normal">在系统中添加环境变量，主要是PATH、CLASSPATH和JAVA_HOME。</p>
<pre style="border-bottom: #dddddd 1px solid; border-left: #dddddd 1px solid; padding-bottom: 5px; line-height: 18px; margin-top: 0px; padding-left: 5px; padding-right: 5px; font-family: 'Courier New', Arial; margin-bottom: 0px;background: #f6f6f6; color: #333333; font-size: 9pt; border-top: #dddddd 1px solid; border-right: #dddddd 1px solid; padding-top: 5px">lxh@ubuntu:~$&nbsp;<span style="text-align: justify; line-height: 22px; background-color: #fafafc; font-family: tahoma, 宋体; white-space: normal; font-size: 14px">sudo vim ~/.profile</span></pre>
<p style="padding-bottom: 0px; line-height: 2em; background-color: #ffffff; margin: 8px 0px; padding-left: 0px; padding-right: 0px; font-family: 'Open Sans', sans-serif; word-wrap: break-word; letter-spacing: 0px; color: #373737; word-break: break-all; padding-top: 0px; font-stretch: normal">在文件最后加入</p>
<pre style="border-bottom: #dddddd 1px solid; border-left: #dddddd 1px solid; padding-bottom: 5px; line-height: 18px; margin-top: 0px; padding-left: 5px; padding-right: 5px; font-family: 'Courier New', Arial; margin-bottom: 0px;background: #f6f6f6; color: #333333; font-size: 9pt; border-top: #dddddd 1px solid; border-right: #dddddd 1px solid; padding-top: 5px"><div>
<div>export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_25/</div>
export JRE_HOME=/usr/lib/jvm/jdk1.8.0_25/jre <br />
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH <br />
export PATH=$JAVA_HOME/bin:$PATH</div>
</pre>
<p style="padding-bottom: 0px; line-height: 2em; background-color: #ffffff; margin: 8px 0px; padding-left: 0px; padding-right: 0px; font-family: 'Open Sans', sans-serif; word-wrap: break-word; letter-spacing: 0px; color: #373737; word-break: break-all; padding-top: 0px; font-stretch: normal">保存退出，并通过命令使脚本生效：</p>
<pre style="border-bottom: #dddddd 1px solid; border-left: #dddddd 1px solid; padding-bottom: 5px; line-height: 18px; margin-top: 0px; padding-left: 5px; padding-right: 5px; font-family: 'Courier New', Arial; margin-bottom: 0px;background: #f6f6f6; color: #333333; font-size: 9pt; border-top: #dddddd 1px solid; border-right: #dddddd 1px solid; padding-top: 5px">lxh@ubuntu:~$&nbsp;<span style="text-align: justify; line-height: 22px; background-color: #fafafc; font-family: tahoma, 宋体; white-space: normal; font-size: 14px">$source ~/.profile</span></pre>
<h1>配置默认JDK版本</h1>
<p style="padding-bottom: 0px; line-height: 2em; background-color: #ffffff; margin: 8px 0px; padding-left: 0px; padding-right: 0px; font-family: 'Open Sans', sans-serif; word-wrap: break-word; letter-spacing: 0px; color: #373737; word-break: break-all; padding-top: 0px; font-stretch: normal">在有的系统中会预装OpenJDK，系统默认使用的是这个，而不是刚才装的。所以这一步是通知系统使用Oracle的JDK，非OpenJDK。</p>
<pre style="border-bottom: #dddddd 1px solid; border-left: #dddddd 1px solid; padding-bottom: 5px; line-height: 18px; margin-top: 0px; padding-left: 5px; padding-right: 5px; font-family: 'Courier New', Arial; margin-bottom: 0px;background: #f6f6f6; color: #333333; font-size: 9pt; border-top: #dddddd 1px solid; border-right: #dddddd 1px solid; padding-top: 5px"><div>sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.8.0_25/bin/java 300 <br />
sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk1.8.0_25/bin/javac 300 <br />
sudo update-alternatives --config java</div>
</pre>
<p style="padding-bottom: 0px; line-height: 2em; background-color: #ffffff; margin: 8px 0px; padding-left: 0px; padding-right: 0px; font-family: 'Open Sans', sans-serif; word-wrap: break-word; letter-spacing: 0px; color: #373737; word-break: break-all; padding-top: 0px; font-stretch: normal">因为我是在虚拟机中安装的Ubuntu 14.04，默认不安装OpenJDK，所以没有需要选择的JDK版本。如果是在物理机上安装的Ubuntu版本，会出现几个候选项，可用于替换 java (提供 /usr/bin/java)。</p>
<p style="text-align: justify; line-height: 22px; background-color: #fafafc; font-family: tahoma, 宋体">====================================<br />
</p>
<h1 style="border-bottom: #dddddd 1px solid; padding-bottom: 0px; background-color: #ffffff; margin: 20px 0px 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px" class="postTitle"><font face="Verdana, Arial, Helvetica, sans-serif"><span style="font-size: 14px">编译安装nginx&nbsp;</span></font><br />
<font face="Verdana, Arial, Helvetica, sans-serif"><span style="font-size: 14px">1. 下载最新版nginx</span></font><br />
<font face="Verdana, Arial, Helvetica, sans-serif"><span style="font-size: 14px">2.解压</span></font><br />
<font face="Verdana, Arial, Helvetica, sans-serif"><span style="font-size: 14px">3. 安装</span></font><br />
<span style="padding-bottom: 0px; line-height: 1.5; margin: 0px; padding-left: 0px; padding-right: 0px; font-family: 'Courier New'; white-space: pre-wrap; font-size: 12px; font-weight: normal; padding-top: 0px">
<div><span style="font-size: 14px">$ ./configure &nbsp;#检查编译前置条件</span></div>
<div><span style="font-size: 14px">$ make &nbsp;#编译</span></div>
<div><span style="font-size: 14px">$ sudo make install &nbsp;#使用sudo权限进行安装</span></div>
<div style="font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 14px"><span style="line-height: 35px; font-family: 'microsoft yahei'; white-space: normal; color: #555555; font-size: 15px">安装后路径在&nbsp;/usr/local/<br /></span><pre style="padding: 0px; margin-top: 0px; word-wrap: break-word; margin-bottom: 0px;"><strong>启动nginx <br /></strong>/usr/local/nginx/sbin/nginx</pre>
<span style="line-height: 35px; font-family: 'microsoft yahei'; white-space: normal; color: #555555; font-size: 15px">1)使用在 /etc/init.d/ 目录下创建名为 nginx 文件，注意没有后缀名，将以下内容复制到该文件中（感谢提供脚本的兄弟）。</span></div>
</span>
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #008080">&nbsp;1</span><span style="font-weight: normal;">&nbsp;#!&nbsp;/bin/sh<br />
<span style="color: #008080">&nbsp;2</span>&nbsp;#用来将Nginx注册为系统服务的脚本<br />
<span style="color: #008080">&nbsp;3</span>&nbsp;#Author&nbsp;CplusHua<br />
<span style="color: #008080">&nbsp;4</span>&nbsp;#http://www.219.me<br />
<span style="color: #008080">&nbsp;5</span>&nbsp;#chkconfig:&nbsp;-&nbsp;85&nbsp;15<br />
<span style="color: #008080">&nbsp;6</span>&nbsp;set&nbsp;-e<br />
<span style="color: #008080">&nbsp;7</span>&nbsp;PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin<br />
<span style="color: #008080">&nbsp;8</span>&nbsp;DESC="Nginx&nbsp;Daemon"<br />
<span style="color: #008080">&nbsp;9</span>&nbsp;NAME=nginx<br />
<span style="color: #008080">10</span>&nbsp;DAEMON=/usr/local/nginx/sbin/$NAME<br />
<span style="color: #008080">11</span>&nbsp;SCRIPTNAME=/etc/init.d/$NAME<br />
<span style="color: #008080">12</span>&nbsp;#守护进程不存在就退出<br />
<span style="color: #008080">13</span>&nbsp;test&nbsp;-x&nbsp;$DAEMON&nbsp;||exit&nbsp;0<br />
<span style="color: #008080">14</span>&nbsp;d_start(){<br />
<span style="color: #008080">15</span>&nbsp;&nbsp;&nbsp;$DAEMON&nbsp;||echo&nbsp;-n&nbsp;"aready&nbsp;running"<br />
<span style="color: #008080">16</span>&nbsp;}<br />
<span style="color: #008080">17</span>&nbsp;d_stop(){<br />
<span style="color: #008080">18</span>&nbsp;&nbsp;&nbsp;$DAEMON&nbsp;-s&nbsp;quit&nbsp;||&nbsp;echo&nbsp;-n&nbsp;"not&nbsp;running"<br />
<span style="color: #008080">19</span>&nbsp;}<br />
<span style="color: #008080">20</span>&nbsp;d_reload(){<br />
<span style="color: #008080">21</span>&nbsp;&nbsp;&nbsp;$DAEMON&nbsp;-s&nbsp;reload&nbsp;||&nbsp;echo&nbsp;-n&nbsp;"could&nbsp;not&nbsp;reload"<br />
<span style="color: #008080">22</span>&nbsp;}<br />
<span style="color: #008080">23</span>&nbsp;case&nbsp;"$1"&nbsp;in<br />
<span style="color: #008080">24</span>&nbsp;&nbsp;&nbsp;start)<br />
<span style="color: #008080">25</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;-n&nbsp;"Starting&nbsp;$DESC:&nbsp;$NAME"<br />
<span style="color: #008080">26</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;d_start<br />
<span style="color: #008080">27</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;"."<br />
<span style="color: #008080">28</span>&nbsp;&nbsp;&nbsp;;;<br />
<span style="color: #008080">29</span>&nbsp;&nbsp;&nbsp;stop)<br />
<span style="color: #008080">30</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;-n&nbsp;"Stopping&nbsp;$DESC:&nbsp;$NAME"<br />
<span style="color: #008080">31</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;d_stop<br />
<span style="color: #008080">32</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;"."<br />
<span style="color: #008080">33</span>&nbsp;&nbsp;&nbsp;;;<br />
<span style="color: #008080">34</span>&nbsp;&nbsp;&nbsp;reload)<br />
<span style="color: #008080">35</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;-n&nbsp;"Reloading&nbsp;$DESC:&nbsp;configurationg<img alt="" src="http://www.blogjava.net/Images/dot.gif" />.."<br />
<span style="color: #008080">36</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;d_reload<br />
<span style="color: #008080">37</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;"reloaded."<br />
<span style="color: #008080">38</span>&nbsp;&nbsp;&nbsp;;;<br />
<span style="color: #008080">39</span>&nbsp;&nbsp;&nbsp;restart)<br />
<span style="color: #008080">40</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;-n&nbsp;"Restarting&nbsp;$DESC:&nbsp;$NAME"<br />
<span style="color: #008080">41</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;d_stop<br />
<span style="color: #008080">42</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sleep&nbsp;3<br />
<span style="color: #008080">43</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;d_start<br />
<span style="color: #008080">44</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;"."<br />
<span style="color: #008080">45</span>&nbsp;&nbsp;&nbsp;;;<br />
<span style="color: #008080">46</span>&nbsp;&nbsp;&nbsp;*)<br />
<span style="color: #008080">47</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;"Usage:&nbsp;$SCRIPTNAME&nbsp;{start|stop|restart|reload}"&nbsp;&gt;<span style="color: #ff0000">&amp;2</span><br />
<span style="color: #008080">48</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exit&nbsp;3<br />
<span style="color: #008080">49</span>&nbsp;&nbsp;&nbsp;;;<br />
<span style="color: #008080">50</span>&nbsp;esac<br />
<span style="color: #008080">51</span>&nbsp;<br />
<span style="color: #008080">52</span>&nbsp;exit&nbsp;0</span></div>
</h1><div style="margin: 5px 0px;"><pre style="padding: 0px; margin-top: 0px; word-wrap: break-word; margin-bottom: 0px;"><br /> <strong><br /></strong>2)添加权限 <br />&nbsp;&nbsp;&nbsp;&nbsp;$ sudo chmod +x nginx  <br />3)服务方式启动 如果配置服务前已启动，执行以下命令停止Nginx。 <br />&nbsp;&nbsp;&nbsp;&nbsp;$ sudo service nginx stop <br />4)启动Nginx <br />&nbsp;&nbsp;&nbsp;&nbsp;$ sudo service nginx start    <br /><br />pastingnginx出现connect() to unix:/var/run/php5-fpm.sock failed (13: Permission denied)的错误 <br /><br />处理方式是：编辑/etc/php5/fpm/pool.d/www.conf文件，<br /><br />将以下的注释去掉:  <br />&nbsp;&nbsp;&nbsp;&nbsp;listen.owner = www-data   <br />&nbsp;&nbsp;&nbsp;&nbsp;listen.group = www-data   <br />&nbsp;&nbsp;&nbsp;&nbsp;listen.mode = 0660  <br /><br />然后重启php5-fpm  <br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="font-family: verdana, 'courier new';">$ </span>sudo service php5-fpm restart  <br /><strong><br /><br />Ubuntu 14.04快速搭建SVN服务器及日常使用 </strong><br />SVN相关命令了解<br />    svn：命令行客户端   <br />&nbsp;&nbsp;&nbsp;&nbsp;svnadmin：用来创建、调整或修复版本库的工具   <br />&nbsp;&nbsp;&nbsp;&nbsp;svnserve：svn服务程序   <br />&nbsp;&nbsp;&nbsp;&nbsp;svndumpfilter：过滤svn版本库转储数据流的工具   <br />&nbsp;&nbsp;&nbsp;&nbsp;svnsync：svn数据同步工具，实现另外存一份相同的   <br />&nbsp;&nbsp;&nbsp;&nbsp;svnlook：用来查看办本科中不同的修订版和事务   <br /><br /><strong>直接安装</strong>   <br />&nbsp;&nbsp;&nbsp;&nbsp;# apt-get install subversion   <br /><strong>创建版本库</strong>   <br />&nbsp;&nbsp;&nbsp;&nbsp;# sudo mkdir /app/svn     <br />&nbsp;&nbsp;&nbsp;&nbsp;# sudo svnadmin create /app/svn/prj <br /><br /></pre></div>
<p style="line-height: 26px; background-color: #ffffff; font-family: Arial; color: #333333"></p>
<p style="text-align: justify; text-transform: none; text-indent: 0px; font-style: normal; font-variant: normal; font-stretch: normal; font-size: 14px; line-height: 22px; font-family: tahoma, 宋体; white-space: normal; letter-spacing: normal; color: #333333; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: #fafafc;"><strong>配置版本库</strong><br />
&nbsp; # sudo vi svnserve.conf&nbsp; #将以下参数去掉注释<span class="Apple-converted-space" style="font-weight: normal;">&nbsp;</span><br />
&nbsp; [general]<span class="Apple-converted-space" style="font-weight: normal;">&nbsp;</span><br />
&nbsp; anon-access = none&nbsp; &nbsp; #匿名访问权限，默认read，none为不允许访问<span class="Apple-converted-space" style="font-weight: normal;">&nbsp;</span><br />
&nbsp; auth-access = write&nbsp; #认证用户权限&nbsp;<span class="Apple-converted-space" style="font-weight: normal;">&nbsp;</span><br />
&nbsp; password-db = passwd&nbsp; #用户信息存放文件，默认在版本库/conf下面，也可以绝对路径指定文件位置<span class="Apple-converted-space" style="font-weight: normal;">&nbsp;</span><br />
&nbsp; authz-db = authz<br /><br /></p>
<p style="text-align: justify; text-transform: none; background-color: #fafafc; text-indent: 0px; font: 14px/22px tahoma, 宋体; white-space: normal; letter-spacing: normal; color: #333333; word-spacing: 0px; -webkit-text-stroke-width: 0px">&nbsp; # sudo vi passwd&nbsp; &nbsp; #格式是用户名=密码，采用明文密码<span class="Apple-converted-space">&nbsp;</span><br />
&nbsp; [users]<span class="Apple-converted-space">&nbsp;</span><br />
&nbsp; xiaoming = 123<span class="Apple-converted-space">&nbsp;</span><br />
&nbsp; zhangsan = 123<span class="Apple-converted-space">&nbsp;</span><br />
&nbsp;&nbsp; lisi = 123<br />
<br />
<span style="text-align: justify; text-transform: none; background-color: #fafafc; text-indent: 0px; display: inline !important; font: 14px/22px tahoma, 宋体; white-space: normal; float: none; letter-spacing: normal; color: #333333; word-spacing: 0px; -webkit-text-stroke-width: 0px"># sudo vi authz&nbsp;<span class="Apple-converted-space">&nbsp;</span></span><br style="text-align: justify; text-transform: none; background-color: #fafafc; text-indent: 0px; font: 14px/22px tahoma, 宋体; white-space: normal; letter-spacing: normal; color: #333333; word-spacing: 0px; -webkit-text-stroke-width: 0px" />
<span style="text-align: justify; text-transform: none; background-color: #fafafc; text-indent: 0px; display: inline !important; font: 14px/22px tahoma, 宋体; white-space: normal; float: none; letter-spacing: normal; color: #333333; word-spacing: 0px; -webkit-text-stroke-width: 0px">&nbsp; [groups]&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; #定义组的用户<span class="Apple-converted-space">&nbsp;</span></span><br style="text-align: justify; text-transform: none; background-color: #fafafc; text-indent: 0px; font: 14px/22px tahoma, 宋体; white-space: normal; letter-spacing: normal; color: #333333; word-spacing: 0px; -webkit-text-stroke-width: 0px" />
<span style="text-align: justify; text-transform: none; background-color: #fafafc; text-indent: 0px; display: inline !important; font: 14px/22px tahoma, 宋体; white-space: normal; float: none; letter-spacing: normal; color: #333333; word-spacing: 0px; -webkit-text-stroke-width: 0px">&nbsp; manager = xiaoming<span class="Apple-converted-space">&nbsp;</span></span><br style="text-align: justify; text-transform: none; background-color: #fafafc; text-indent: 0px; font: 14px/22px tahoma, 宋体; white-space: normal; letter-spacing: normal; color: #333333; word-spacing: 0px; -webkit-text-stroke-width: 0px" />
<span style="text-align: justify; text-transform: none; background-color: #fafafc; text-indent: 0px; display: inline !important; font: 14px/22px tahoma, 宋体; white-space: normal; float: none; letter-spacing: normal; color: #333333; word-spacing: 0px; -webkit-text-stroke-width: 0px">&nbsp; core_dev = zhangsan,lisi<span class="Apple-converted-space">&nbsp;</span></span><br style="text-align: justify; text-transform: none; background-color: #fafafc; text-indent: 0px; font: 14px/22px tahoma, 宋体; white-space: normal; letter-spacing: normal; color: #333333; word-spacing: 0px; -webkit-text-stroke-width: 0px" />
<span style="text-align: justify; text-transform: none; background-color: #fafafc; text-indent: 0px; display: inline !important; font: 14px/22px tahoma, 宋体; white-space: normal; float: none; letter-spacing: normal; color: #333333; word-spacing: 0px; -webkit-text-stroke-width: 0px">&nbsp; [repos:/]&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; #以根目录起始的repos版本库manager组为读写权限<span class="Apple-converted-space">&nbsp;</span></span><br style="text-align: justify; text-transform: none; background-color: #fafafc; text-indent: 0px; font: 14px/22px tahoma, 宋体; white-space: normal; letter-spacing: normal; color: #333333; word-spacing: 0px; -webkit-text-stroke-width: 0px" />
<span style="text-align: justify; text-transform: none; background-color: #fafafc; text-indent: 0px; display: inline !important; font: 14px/22px tahoma, 宋体; white-space: normal; float: none; letter-spacing: normal; color: #333333; word-spacing: 0px; -webkit-text-stroke-width: 0px">&nbsp; @manager = rw<span class="Apple-converted-space">&nbsp;</span></span><br style="text-align: justify; text-transform: none; background-color: #fafafc; text-indent: 0px; font: 14px/22px tahoma, 宋体; white-space: normal; letter-spacing: normal; color: #333333; word-spacing: 0px; -webkit-text-stroke-width: 0px" />
<span style="text-align: justify; text-transform: none; background-color: #fafafc; text-indent: 0px; display: inline !important; font: 14px/22px tahoma, 宋体; white-space: normal; float: none; letter-spacing: normal; color: #333333; word-spacing: 0px; -webkit-text-stroke-width: 0px">&nbsp; [repos:/media]&nbsp; &nbsp; #core_dev对repos版本库下media目录为读写权限<span class="Apple-converted-space">&nbsp;</span></span><br style="text-align: justify; text-transform: none; background-color: #fafafc; text-indent: 0px; font: 14px/22px tahoma, 宋体; white-space: normal; letter-spacing: normal; color: #333333; word-spacing: 0px; -webkit-text-stroke-width: 0px" />
<span style="text-align: justify; text-transform: none; background-color: #fafafc; text-indent: 0px; display: inline !important; font: 14px/22px tahoma, 宋体; white-space: normal; float: none; letter-spacing: normal; color: #333333; word-spacing: 0px; -webkit-text-stroke-width: 0px">&nbsp; @core_dev = rw</span></p>
<p style="line-height: 26px; background-color: #ffffff; font-family: Arial; color: #333333"></p>
<span style="text-align: justify; text-transform: none; text-indent: 0px; font-style: normal; font-variant: normal; font-stretch: normal; font-size: 14px; line-height: 22px; font-family: tahoma, 宋体; white-space: normal; float: none; letter-spacing: normal; color: #333333; word-spacing: 0px; -webkit-text-stroke-width: 0px; display: inline !important; background-color: #fafafc;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br /><strong>
&nbsp;启动svn服务</strong></span><br style="text-align: justify; text-transform: none; background-color: #fafafc; text-indent: 0px; font: 14px/22px tahoma, 宋体; white-space: normal; letter-spacing: normal; color: #333333; word-spacing: 0px; -webkit-text-stroke-width: 0px" />
<span style="text-align: justify; text-transform: none; background-color: #fafafc; text-indent: 0px; display: inline !important; font: 14px/22px tahoma, 宋体; white-space: normal; float: none; letter-spacing: normal; color: #333333; word-spacing: 0px; -webkit-text-stroke-width: 0px">&nbsp; # sudo svnserve -d -r /app/svn</span><br style="text-align: justify; text-transform: none; background-color: #fafafc; text-indent: 0px; font: 14px/22px tahoma, 宋体; white-space: normal; letter-spacing: normal; color: #333333; word-spacing: 0px; -webkit-text-stroke-width: 0px" />
<span style="text-align: justify; text-transform: none; background-color: #fafafc; text-indent: 0px; display: inline !important; font: 14px/22px tahoma, 宋体; white-space: normal; float: none; letter-spacing: normal; color: #333333; word-spacing: 0px; -webkit-text-stroke-width: 0px">&nbsp; # 查看是否启动成功，可看的监听3690端口</span><br style="text-align: justify; text-transform: none; background-color: #fafafc; text-indent: 0px; font: 14px/22px tahoma, 宋体; white-space: normal; letter-spacing: normal; color: #333333; word-spacing: 0px; -webkit-text-stroke-width: 0px" />
<span style="text-align: justify; text-transform: none; background-color: #fafafc; text-indent: 0px; display: inline !important; font: 14px/22px tahoma, 宋体; white-space: normal; float: none; letter-spacing: normal; color: #333333; word-spacing: 0px; -webkit-text-stroke-width: 0px">&nbsp; # sudo netstat -antp |grep svnserve</span><br style="text-align: justify; text-transform: none; background-color: #fafafc; text-indent: 0px; font: 14px/22px tahoma, 宋体; white-space: normal; letter-spacing: normal; color: #333333; word-spacing: 0px; -webkit-text-stroke-width: 0px" />
<span style="text-align: justify; text-transform: none; background-color: #fafafc; text-indent: 0px; display: inline !important; font: 14px/22px tahoma, 宋体; white-space: normal; float: none; letter-spacing: normal; color: #333333; word-spacing: 0px; -webkit-text-stroke-width: 0px">&nbsp; tcp&nbsp; &nbsp; 0&nbsp; &nbsp; &nbsp; 0 0.0.0.0:3690&nbsp; &nbsp; 0.0.0.0:*&nbsp; &nbsp; &nbsp; LISTEN&nbsp; &nbsp; 28967/svnserve<span class="Apple-converted-space">&nbsp;</span></span><br style="text-align: justify; text-transform: none; background-color: #fafafc; text-indent: 0px; font: 14px/22px tahoma, 宋体; white-space: normal; letter-spacing: normal; color: #333333; word-spacing: 0px; -webkit-text-stroke-width: 0px" />
<span style="text-align: justify; text-transform: none; text-indent: 0px; font-style: normal; font-variant: normal; font-stretch: normal; font-size: 14px; line-height: 22px; font-family: tahoma, 宋体; white-space: normal; float: none; letter-spacing: normal; color: #333333; word-spacing: 0px; -webkit-text-stroke-width: 0px; display: inline !important; background-color: #fafafc;">&nbsp; # 如果想关闭服务，可使用pkill svnserve<br />
<br />
<span style="text-align: justify; text-transform: none; text-indent: 0px; font-style: normal; font-variant: normal; font-stretch: normal; font-size: 14px; line-height: 22px; font-family: tahoma, 宋体; white-space: normal; float: none; letter-spacing: normal; color: #333333; word-spacing: 0px; -webkit-text-stroke-width: 0px; display: inline !important; background-color: #fafafc;"><strong>访问svn</strong></span><br style="text-align: justify; text-transform: none; background-color: #fafafc; text-indent: 0px; font: 14px/22px tahoma, 宋体; white-space: normal; letter-spacing: normal; color: #333333; word-spacing: 0px; -webkit-text-stroke-width: 0px" />
<span style="font-weight: normal; text-align: justify; text-transform: none; text-indent: 0px; font-style: normal; font-variant: normal; font-stretch: normal; font-size: 14px; line-height: 22px; font-family: tahoma, 宋体; white-space: normal; float: none; letter-spacing: normal; color: #333333; word-spacing: 0px; -webkit-text-stroke-width: 0px; display: inline !important; background-color: #fafafc;">&nbsp; # 访问repos版本库地址</span><br style="text-align: justify; text-transform: none; background-color: #fafafc; text-indent: 0px; font: 14px/22px tahoma, 宋体; white-space: normal; letter-spacing: normal; color: #333333; word-spacing: 0px; -webkit-text-stroke-width: 0px" />
<span style="text-align: justify; text-transform: none; text-indent: 0px; font-style: normal; font-variant: normal; font-stretch: normal; font-size: 14px; line-height: 22px; font-family: tahoma, 宋体; white-space: normal; float: none; letter-spacing: normal; color: #333333; word-spacing: 0px; -webkit-text-stroke-width: 0px; display: inline !important; background-color: #fafafc;">&nbsp; svn://192.168.1.100/prj<br />
<br />
<br />
<p style="text-align: justify; text-transform: none; text-indent: 0px; font-style: normal; font-variant: normal; font-stretch: normal; font-size: 14px; line-height: 22px; font-family: tahoma, 宋体; white-space: normal; letter-spacing: normal; color: #333333; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: #fafafc;"><strong>备份与恢复</strong><br />
&nbsp;&nbsp; svnadmin dump备份<br />
&nbsp; # 完整备份<br />
&nbsp; svnadmin dump /app/svn/prj &gt; YYmmdd_fully_backup.svn<br />
&nbsp; # 完整压缩备份<br />
&nbsp; svnadmin dump /app/svn/prj | gzip &gt; YYmmdd_fully_backup.gz<br />
&nbsp; # 备份恢复<br />
&nbsp; svnadmin load /app/svn/prj &lt; YYmmdd_fully_backup.svn<br />
&nbsp; zcat YYmmdd_fully_backup.gz | svnadmin load repos<br />
&nbsp; ### 增量备份 ###<br />
&nbsp; # 先完整备份<br />
&nbsp; svnadmin dump /app/svn/prj -r 0:100 &gt; YYmmdd_incremental_backup.svn<br />
&nbsp; # 再增量备份<br />
&nbsp; svnadmin dump /app/svn/prj -r 101:200 --incremental &gt; YYmmdd_incremental_backup.svn<br />
&nbsp;&nbsp;<br /><strong>
svnadmin hotcopy备份</strong></p>
<p style="font-weight: normal; text-align: justify; text-transform: none; text-indent: 0px; font-style: normal; font-variant: normal; font-stretch: normal; font-size: 14px; line-height: 22px; font-family: tahoma, 宋体; white-space: normal; letter-spacing: normal; color: #333333; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: #fafafc;">&nbsp; # 备份<br />
&nbsp; svnadmin hotcopy /app/svn/prj YYmmdd_fully_backup --clean-logs<br />
&nbsp; # 恢复<br />
&nbsp; svnadmin hotcopy YYmmdd_fully_backup /app/svn/prj <br />
<br />
<br />
Tomcat　内存优化<br />
<br />
</p>
<p style="font-weight: normal; text-align: left; padding: 0px; text-transform: none; text-indent: 0px; margin: 8px 0px; font-style: normal; font-variant: normal; font-stretch: normal; font-size: 13px; line-height: 23px; font-family: 'Microsoft YaHei', Verdana, sans-serif, 宋体; word-wrap: break-word; white-space: normal; letter-spacing: 0px; color: #333333; word-break: break-all; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: #ffffff;">Linux下修改JVM内存大小</p>
<p style="font-weight: normal; text-align: left; padding: 0px; text-transform: none; text-indent: 0px; margin: 8px 0px; font-style: normal; font-variant: normal; font-stretch: normal; font-size: 13px; line-height: 23px; font-family: 'Microsoft YaHei', Verdana, sans-serif, 宋体; word-wrap: break-word; white-space: normal; letter-spacing: 0px; color: #333333; word-break: break-all; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: #ffffff;">要添加在tomcat 的bin 下catalina.sh 里，位置cygwin=false前 。注意引号要带上,红色的为新添加的.</p>
<pre style="font-weight: normal; border: 1px solid #dddddd; text-align: left; padding: 5px; text-transform: none; text-indent: 0px; margin: 0px; font-style: normal; font-variant: normal; font-stretch: normal; font-size: 9pt; line-height: 18px; font-family: 'Courier New', Arial; letter-spacing: normal; color: #333333; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: #f6f6f6;"># OS specific support. $var _must_ be set to either true or false.
JAVA_OPTS="<font style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" color="#ff0000">-</font><font style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" color="#ff0000">server -Xms512M -Xmx512M -Xss256K -Djava.awt.headless=true -Dfile.encoding=utf-8 -XX:PermSize=64M -XX:MaxPermSize=128m</font>"
cygwin=false</pre>
<p style="font-weight: normal; text-align: justify; text-transform: none; text-indent: 0px; font-style: normal; font-variant: normal; font-stretch: normal; font-size: 14px; line-height: 22px; font-family: tahoma, 宋体; white-space: normal; letter-spacing: normal; color: #333333; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: #fafafc;">&nbsp;</p>
</span><br />
</span><img src ="http://www.blogjava.net/Alpha/aggbug/427653.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Alpha/" target="_blank">Alpha</a> 2015-10-07 15:28 <a href="http://www.blogjava.net/Alpha/archive/2015/10/07/427653.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>iptables 开启80端口  </title><link>http://www.blogjava.net/Alpha/archive/2012/09/17/387950.html</link><dc:creator>Alpha</dc:creator><author>Alpha</author><pubDate>Mon, 17 Sep 2012 15:59:00 GMT</pubDate><guid>http://www.blogjava.net/Alpha/archive/2012/09/17/387950.html</guid><wfw:comment>http://www.blogjava.net/Alpha/comments/387950.html</wfw:comment><comments>http://www.blogjava.net/Alpha/archive/2012/09/17/387950.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Alpha/comments/commentRss/387950.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Alpha/services/trackbacks/387950.html</trackback:ping><description><![CDATA[<a href="https://promotion.aliyun.com/ntms/act/ambassador/sharetouser.html?userCode=dmb0rzcj&amp;amp;utm_source=dmb0rzcj" target="_blank"><img src="http://www.blogjava.net/images/blogjava_net/alpha/760-130.jpg" alt="阿里云服务器优惠券" /><br /><br /></a>
经常使用CentOS的朋友，可能会遇到和我一样的问题。开启了防火墙导致80端口无法访问，刚开始学习centos的朋友可以参考下。<br /><br />
经常使用CentOS的朋友，可能会遇到和我一样的问题。最近在Linux CentOS防火墙下安装配置 ORACLE&nbsp; <br />
数据库的时候，总显示因为网络端口而导致的EM安装失败，遂打算先关闭一下CentOS防火墙。偶然看到CentOS防火墙的配置操作说明，感觉不错。执<br />
<br />
行&#8221;setup&#8221;命令启动文字模式配置实用程序,在&#8221;选择一种工具&#8221;中选择&#8221;防火墙配置&#8221;,然后选择&#8221;运行工具&#8221;按钮,出现CentOS防火墙配置界面,<br />
将&#8221;安全级别&#8221;设为&#8221;禁用&#8221;,然后选择&#8221;确定&#8221;即可. <br />
<br />
这样重启计算机后,CentOS防火墙默认已经开放了80和22端口 <br />
<br />
简介：CentOS是Linux家族的一个分支。 <br />
<br />
CentOS防火墙在虚拟机的CENTOS装好APACHE不能用,郁闷,解决方法如下 <br />
<br />
/sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT <br />
/sbin/iptables -I INPUT -p tcp --dport 22 -j ACCEPT <br />
<br />
然后保存： <br />
<br />
/etc/rc.d/init.d/iptables save <br />
centos 5.3，5.4以上的版本需要用 <br />
service iptables save <br />
来实现保存到配置文件。 <br />
这样重启计算机后,CentOS防火墙默认已经开放了80和22端口。 <br />
<br />
这里应该也可以不重启计算机： <br />
<br />
/etc/init.d/iptables restart <br />
<br />
CentOS防火墙的关闭，关闭其服务即可： <br />
<br />
查看CentOS防火墙信息：/etc/init.d/iptables status <br />
<br />
关闭CentOS防火墙服务：/etc/init.d/iptables stop <br />
<br />
永久关闭？不知道怎么个永久法： <br />
<br />
chkconfig &#8211;level 35 iptables off <br />
<br />
<strong>上面的内容是针对老版本的centos，下面的内容是基于新版本。 <br />
</strong><br />
iptables -P INPUT DROP <br />
<br />
这样就拒绝所有访问 CentOS 5.3 本系统数据，除了 Chain RH-Firewall-1-INPUT (2 references) 的规则外 ， 呵呵。 <br />
<br />
用命令配置了 iptables 一定还要 service iptables save 才能保存到配置文件。 <br />
<br />
cat /etc/sysconfig/iptables 可以查看 防火墙 iptables 配置文件内容 <br />
<br />
# Generated by iptables-save v1.3.5 on Sat Apr 14 07:51:07 2001 <br />
*filter <br />
:INPUT DROP [0:0] <br />
:FORWARD ACCEPT [0:0] <br />
:OUTPUT ACCEPT [1513:149055] <br />
:RH-Firewall-1-INPUT - [0:0] <br />
-A INPUT -j RH-Firewall-1-INPUT <br />
-A FORWARD -j RH-Firewall-1-INPUT <br />
-A RH-Firewall-1-INPUT -i lo -j ACCEPT <br />
-A RH-Firewall-1-INPUT -p icmp -m icmp --icmp-type any -j ACCEPT <br />
-A RH-Firewall-1-INPUT -p esp -j ACCEPT <br />
-A RH-Firewall-1-INPUT -p ah -j ACCEPT <br />
-A RH-Firewall-1-INPUT -d 224.0.0.251 -p udp -m udp --dport 5353 -j ACCEPT <br />
-A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT <br />
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT <br />
-A RH-Firewall-1-INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT <br />
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT <br />
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited <br />
COMMIT <br />
# Completed on Sat Apr 14 07:51:07 2001<br />
<br />
另外补充:<br />
<strong>CentOS 防火墙配置 80端口</strong><br />
看了好几个页面内容都有错，下面是正确方法： <br />
#/sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT <br />
#/sbin/iptables -I INPUT -p tcp --dport 22 -j ACCEPT <br />
<br />
然后保存： <br />
#/etc/rc.d/init.d/iptables save <br />
<br />
再查看是否已经有了： <br />
[root@vcentos ~]# /etc/init.d/iptables status <br />
Table: filter <br />
Chain INPUT (policy ACCEPT) <br />
num target prot opt source destination <br />
1 ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:80 <br />
2 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 <br />
3 RH-Firewall-1-INPUT all -- 0.0.0.0/0 0.0.0.0/0 <br />
<br />
Chain FORWARD (policy ACCEPT) <br />
num target prot opt source destination <br />
1 RH-Firewall-1-INPUT all -- 0.0.0.0/0 0.0.0.0/0<br />
<br />
* 设置iptables为自动启动 <br />
chkconfig --level 2345 iptables on <br />
<br />
可能因为大家使用的版本不一，所有使用方法也略有不同。 <br />
<br />
如果需要远程管理mysql，则使用以下指令临时打开，用完后关闭&nbsp;<br />
<br />
*&nbsp;打开指令&nbsp; <br />
iptables&nbsp;-A&nbsp;INPUT&nbsp;-p&nbsp;tcp&nbsp;-s&nbsp;xxx.xxx.xxx.xxx&nbsp;--dport&nbsp;3306&nbsp;-j&nbsp;ACCEPT&nbsp;<br />
<br />
*&nbsp;关闭指令&nbsp; <br />
iptables&nbsp;-D&nbsp;INPUT&nbsp;-p&nbsp;tcp&nbsp;-s&nbsp;xxx.xxx.xxx.xxx&nbsp;--dport&nbsp;3306&nbsp;-j&nbsp;ACCEPT <br />
<br />
<div>nginx 80 端口访问不了？<br />
<div>添加一个本地回路<br />
<div>&nbsp;iptables&nbsp;-A&nbsp;INPUT&nbsp;-i&nbsp;lo&nbsp;-j&nbsp;ACCEPT&nbsp;<br /></div>
</div>
</div>
<a href="https://promotion.aliyun.com/ntms/act/ambassador/sharetouser.html?userCode=dmb0rzcj&amp;amp;utm_source=dmb0rzcj" target="_blank"><img src="http://www.blogjava.net/images/blogjava_net/alpha/760-130.jpg" alt="阿里云服务器优惠券" /></a><img src ="http://www.blogjava.net/Alpha/aggbug/387950.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Alpha/" target="_blank">Alpha</a> 2012-09-17 23:59 <a href="http://www.blogjava.net/Alpha/archive/2012/09/17/387950.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Linux Web服务器网站故障分析常用的命令</title><link>http://www.blogjava.net/Alpha/archive/2012/09/13/387663.html</link><dc:creator>Alpha</dc:creator><author>Alpha</author><pubDate>Thu, 13 Sep 2012 09:47:00 GMT</pubDate><guid>http://www.blogjava.net/Alpha/archive/2012/09/13/387663.html</guid><wfw:comment>http://www.blogjava.net/Alpha/comments/387663.html</wfw:comment><comments>http://www.blogjava.net/Alpha/archive/2012/09/13/387663.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Alpha/comments/commentRss/387663.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Alpha/services/trackbacks/387663.html</trackback:ping><description><![CDATA[<div>系统连接状态篇：<br />&nbsp;1.查看TCP连接状态<br />netstat -nat |awk '{print $6}'|sort|uniq -c|sort -rn<br /><br />netstat -n | awk '/^tcp/ {++S[$NF]};END {for(a in S) print a, S[a]}' 或<br />&nbsp;netstat -n | awk '/^tcp/ {++state[$NF]}; END {for(key in state) print key,"t",state[key]}'<br />&nbsp;netstat -n | awk '/^tcp/ {++arr[$NF]};END {for(k in arr) print k,"t",arr[k]}'<br /><br />netstat -n |awk '/^tcp/ {print $NF}'|sort|uniq -c|sort -rn<br /><br />netstat -ant | awk '{print $NF}' | grep -v '[a-z]' | sort | uniq -c<br /><br />2.查找请求数请20个IP（常用于查找攻来源）：<br /><br />&nbsp;netstat -anlp|grep 80|grep tcp|awk '{print $5}'|awk -F: '{print $1}'|sort|uniq -c|sort -nr|head -n20<br /><br />netstat -ant |awk '/:80/{split($5,ip,":");++A[ip[1]]}END{for(i in A) print A[i],i}' |sort -rn|head -n20<br /><br />&nbsp;3.用tcpdump嗅探80端口的访问看看谁最高<br /><br />&nbsp;tcpdump -i eth0 -tnn dst port 80 -c 1000 | awk -F"." '{print $1"."$2"."$3"."$4}' | sort | uniq -c | sort -nr |head -20<br /><br /><br />&nbsp;4.查找较多time_wait连接<br /><br />&nbsp;netstat -n|grep TIME_WAIT|awk '{print $5}'|sort|uniq -c|sort -rn|head -n20<br /><br />&nbsp;5.找查较多的SYN连接<br /><br />&nbsp;netstat -an | grep SYN | awk '{print $5}' | awk -F: '{print $1}' | sort | uniq -c | sort -nr | more<br /><br />&nbsp;6.根据端口列进程<br /><br />&nbsp;netstat -ntlp | grep 80 | awk '{print $7}' | cut -d/ -f1<br /><br />网站日志分析篇1（Apache）：<br /><br />1.获得访问前10位的ip地址<br /><br />&nbsp;cat access.log|awk '{print $1}'|sort|uniq -c|sort -nr|head -10<br />&nbsp;cat access.log|awk '{counts[$(11)]+=1}; END {for(url in counts) print counts[url], url}'<br /><br />&nbsp;2.访问次数最多的文件或页面,取前20<br /><br />&nbsp;cat access.log|awk '{print $11}'|sort|uniq -c|sort -nr|head -20<br /><br />&nbsp;3.列出传输最大的几个exe文件（分析下载站的时候常用）<br /><br />&nbsp;cat access.log |awk '($7~/.exe/){print $10 " " $1 " " $4 " " $7}'|sort -nr|head -20<br /><br />&nbsp;4.列出输出大于200000byte(约200kb)的exe文件以及对应文件发生次数<br /><br />&nbsp;cat access.log |awk '($10 &gt; 200000 &amp;&amp; $7~/.exe/){print $7}'|sort -n|uniq -c|sort -nr|head -100<br /><br />&nbsp;5.如果日志最后一列记录的是页面文件传输时间，则有列出到客户端最耗时的页面<br /><br />&nbsp;cat access.log |awk&nbsp; '($7~/.php/){print $NF " " $1 " " $4 " " $7}'|sort -nr|head -100<br /><br />&nbsp;6.列出最最耗时的页面(超过60秒的)的以及对应页面发生次数<br /><br />&nbsp;cat access.log |awk '($NF &gt; 60 &amp;&amp; $7~/.php/){print $7}'|sort -n|uniq -c|sort -nr|head -100<br /><br />&nbsp;7.列出传输时间超过 30 秒的文件<br /><br />&nbsp;cat access.log |awk '($NF &gt; 30){print $7}'|sort -n|uniq -c|sort -nr|head -20<br /><br />&nbsp;8.统计网站流量（G)<br /><br />&nbsp;cat access.log |awk '{sum+=$10} END {print sum/1024/1024/1024}'<br /><br />&nbsp;9.统计404的连接<br /><br />&nbsp;awk '($9 ~/404/)' access.log | awk '{print $9,$7}' | sort<br /><br />&nbsp;10. 统计http status<br /><br />&nbsp;cat access.log |awk '{counts[$(9)]+=1}; END {for(code in counts) print code, counts[code]}'<br />&nbsp;cat access.log |awk '{print $9}'|sort|uniq -c|sort -rn<br /><br />&nbsp;10.蜘蛛分析，查看是哪些蜘蛛在抓取内容。<br /><br />&nbsp;/usr/sbin/tcpdump -i eth0 -l -s 0 -w - dst port 80 | strings | grep -i user-agent | grep -i -E 'bot|crawler|slurp|spider'<br /><br />网站日分析2(Squid篇）按域统计流量<br /><br />&nbsp;zcat squid_access.log.tar.gz| awk '{print $10,$7}' |awk 'BEGIN{FS="[ /]"}{trfc[$4]+=$1}END{for(domain in trfc){printf "%st%dn",domain,trfc[domain]}}'<br /><br />数据库篇<br />&nbsp;1.查看数据库执行的sql<br /><br />&nbsp;/usr/sbin/tcpdump -i eth0 -s 0 -l -w - dst port 3306 | strings | egrep -i 'SELECT|UPDATE|DELETE|INSERT|SET|COMMIT|ROLLBACK|CREATE|DROP|ALTER|CALL'<br /><br />系统Debug分析篇<br />&nbsp;1.调试命令<br />strace -p pid<br />&nbsp;2.跟踪指定进程的PID<br />gdb -p pid<br /><br />awk '{ip[$1]+=1} END{for(i in ip){print i," "ip[i]}}' access.log |wc -l<br />其中access.log就是apache的访问日志。这个就可以统计独立ip数据<br /><br />1、把IP数量直接输出显示：<br /><code>cat access_log_2011_06_26.log |awk '{print $1}'|uniq -c|wc -l</code><br /><br /><br />永久链接 : http://www.ha97.com/4392.html</div><img src ="http://www.blogjava.net/Alpha/aggbug/387663.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Alpha/" target="_blank">Alpha</a> 2012-09-13 17:47 <a href="http://www.blogjava.net/Alpha/archive/2012/09/13/387663.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>iptables 开启80端口 </title><link>http://www.blogjava.net/Alpha/archive/2012/09/13/387640.html</link><dc:creator>Alpha</dc:creator><author>Alpha</author><pubDate>Thu, 13 Sep 2012 07:06:00 GMT</pubDate><guid>http://www.blogjava.net/Alpha/archive/2012/09/13/387640.html</guid><wfw:comment>http://www.blogjava.net/Alpha/comments/387640.html</wfw:comment><comments>http://www.blogjava.net/Alpha/archive/2012/09/13/387640.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Alpha/comments/commentRss/387640.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Alpha/services/trackbacks/387640.html</trackback:ping><description><![CDATA[<div>经常使用CentOS的朋友，可能会遇到和我一样的问题。开启了防火墙导致80端口无法访问，刚开始学习centos的朋友可以参考下。<br /> <br />  经常使用CentOS的朋友，可能会遇到和我一样的问题。最近在Linux CentOS防火墙下安装配置 ORACLE   数据库的时候，总显示因为网络端口而导致的EM安装失败，遂打算先关闭一下CentOS防火墙。偶然看到CentOS防火墙的配置操作说明，感觉不错。执   行&#8221;setup&#8221;命令启动文字模式配置实用程序,在&#8221;选择一种工具&#8221;中选择&#8221;防火墙配置&#8221;,然后选择&#8221;运行工具&#8221;按钮,出现CentOS防火墙配置界面,  将&#8221;安全级别&#8221;设为&#8221;禁用&#8221;,然后选择&#8221;确定&#8221;即可. <br /><br />这样重启计算机后,CentOS防火墙默认已经开放了80和22端口 <br /><br />简介：CentOS是Linux家族的一个分支。 <br /><br />CentOS防火墙在虚拟机的CENTOS装好APACHE不能用,郁闷,解决方法如下 <br /><br />/sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT <br />/sbin/iptables -I INPUT -p tcp --dport 22 -j ACCEPT <br /><br />然后保存： <br /><br />/etc/rc.d/init.d/iptables save <br />centos 5.3，5.4以上的版本需要用 <br />service iptables save <br />来实现保存到配置文件。 <br />这样重启计算机后,CentOS防火墙默认已经开放了80和22端口。 <br /><br />这里应该也可以不重启计算机： <br /><br />/etc/init.d/iptables restart <br /><br />CentOS防火墙的关闭，关闭其服务即可： <br /><br />查看CentOS防火墙信息：/etc/init.d/iptables status <br /><br />关闭CentOS防火墙服务：/etc/init.d/iptables stop <br /><br />永久关闭？不知道怎么个永久法： <br /><br />chkconfig &#8211;level 35 iptables off <br /><br /><strong>上面的内容是针对老版本的centos，下面的内容是基于新版本。 <br /></strong><br />iptables -P INPUT DROP <br /><br />这样就拒绝所有访问 CentOS 5.3 本系统数据，除了 Chain RH-Firewall-1-INPUT (2 references) 的规则外 ， 呵呵。 <br /><br />用命令配置了 iptables 一定还要 service iptables save 才能保存到配置文件。 <br /><br />cat /etc/sysconfig/iptables 可以查看 防火墙 iptables 配置文件内容 <br /><br /># Generated by iptables-save v1.3.5 on Sat Apr 14 07:51:07 2001 <br />*filter <br />:INPUT DROP [0:0] <br />:FORWARD ACCEPT [0:0] <br />:OUTPUT ACCEPT [1513:149055] <br />:RH-Firewall-1-INPUT - [0:0] <br />-A INPUT -j RH-Firewall-1-INPUT <br />-A FORWARD -j RH-Firewall-1-INPUT <br />-A RH-Firewall-1-INPUT -i lo -j ACCEPT <br />-A RH-Firewall-1-INPUT -p icmp -m icmp --icmp-type any -j ACCEPT <br />-A RH-Firewall-1-INPUT -p esp -j ACCEPT <br />-A RH-Firewall-1-INPUT -p ah -j ACCEPT <br />-A RH-Firewall-1-INPUT -d 224.0.0.251 -p udp -m udp --dport 5353 -j ACCEPT <br />-A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT <br />-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT <br />-A RH-Firewall-1-INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT <br />-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT <br />-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited <br />COMMIT <br /># Completed on Sat Apr 14 07:51:07 2001<br /><br />另外补充:<br /><strong>CentOS 防火墙配置 80端口</strong><br />看了好几个页面内容都有错，下面是正确方法： <br />#/sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT <br />#/sbin/iptables -I INPUT -p tcp --dport 22 -j ACCEPT <br /><br />然后保存： <br />#/etc/rc.d/init.d/iptables save <br /><br />再查看是否已经有了： <br />[root@vcentos ~]# /etc/init.d/iptables status <br />Table: filter <br />Chain INPUT (policy ACCEPT) <br />num target prot opt source destination <br />1 ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:80 <br />2 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 <br />3 RH-Firewall-1-INPUT all -- 0.0.0.0/0 0.0.0.0/0 <br /><br />Chain FORWARD (policy ACCEPT) <br />num target prot opt source destination <br />1 RH-Firewall-1-INPUT all -- 0.0.0.0/0 0.0.0.0/0<br /><br /> * 设置iptables为自动启动 <br />chkconfig --level 2345 iptables on <br /><br />可能因为大家使用的版本不一，所有使用方法也略有不同。</div><img src ="http://www.blogjava.net/Alpha/aggbug/387640.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Alpha/" target="_blank">Alpha</a> 2012-09-13 15:06 <a href="http://www.blogjava.net/Alpha/archive/2012/09/13/387640.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>yum搭建lnmp环境（CentOS6)</title><link>http://www.blogjava.net/Alpha/archive/2012/09/12/387583.html</link><dc:creator>Alpha</dc:creator><author>Alpha</author><pubDate>Wed, 12 Sep 2012 10:39:00 GMT</pubDate><guid>http://www.blogjava.net/Alpha/archive/2012/09/12/387583.html</guid><wfw:comment>http://www.blogjava.net/Alpha/comments/387583.html</wfw:comment><comments>http://www.blogjava.net/Alpha/archive/2012/09/12/387583.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/Alpha/comments/commentRss/387583.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Alpha/services/trackbacks/387583.html</trackback:ping><description><![CDATA[<div><p>1.关闭防火墙<br />[root@CentOS ~]# chkconfig iptables off</p> <p>2.关闭selinux<br />vi /etc/sysconfig/selinux <br />//将SELINUX=enforcing修改为disabled然后重启生效</p> <p>3、配置CentOS 6.0 第三方yum源（CentOS默认的标准源里没有nginx软件包）<br />[root@CentOS ~]# yum install wget<br />//下载wget工具<br />[root@CentOS ~]# wget http://www.atomicorp.com/installers/atomic<br />//下载atomic yum源<br />[root@CentOS ~]# sh ./atomic<br />//安装提示输入时输yes<br />[root@CentOS ~]# yum check-update<br />//更新yum软件包</p> <p>4.安装开发包和库文件<br />[root@CentOS ~]# yum -y install ntp make openssl openssl-devel pcre pcre-devel libpng  <br />libpng-devel libjpeg-6b libjpeg-devel-6b freetype freetype-devel gd gd-devel zlib zlib-devel  <br />gcc gcc-c++ libXpm libXpm-devel ncurses ncurses-devel libmcrypt libmcrypt-devel libxml2  <br />libxml2-devel imake autoconf automake screen sysstat compat-libstdc++-33 curl curl-devel</p> <p>5.卸载已安装的apache、mysql、php<br />[root@CentOS ~]# yum remove httpd<br />[root@CentOS ~]# yum remove mysql<br />[root@CentOS ~]# yum remove php</p> <p>6.安装nginx<br />[root@CentOS ~]# yum install nginx<br />[root@CentOS ~]# service nginx start<br />[root@CentOS ~]# chkconfig --levels 235 nginx on<br />//设2、3、5级别开机启动</p> <p>7.安装mysql<br />[root@CentOS ~]# yum install mysql mysql-server mysql-devel<br />[root@CentOS ~]# service mysqld start<br />[root@CentOS ~]# chkconfig --levels 235 mysqld on<br />[root@CentOS ~]# mysqladmin -u root password "123456"<br />//为root用户设置密码<br />[root@CentOS ~]# service mysqld restart<br />//重启mysql</p> <p>8.安装php<br />[root@CentOS ~]# yum install php lighttpd-fastcgi php-cli php-mysql php-gd php-imap php-ldap  <br />php-odbc php-pear php-xml php-xmlrpc php-mbstring php-mcrypt php-mssql php-snmp php-soap  <br />php-tidy php-common php-devel php-fpm<br />//安装php和所需组件使PHP支持MySQL、FastCGI模式<br />[root@CentOS ~]# service php-fpm start<br />[root@CentOS ~]# chkconfig --levels 235 php-fpm on</p> <p>9.配置nginx支持php<br />[root@CentOS ~]# mv /etc/nginx/nginx.conf /etc/nginx/nginx.confbak<br />//将配置文件改为备份文件<br />[root@CentOS ~]# cp /etc/nginx/nginx.conf.default /etc/nginx/nginx.conf<br />//由于原配置文件要自己去写因此可以使用默认的配置文件作为配置文件<br />//修改nginx配置文件，添加fastcgi支持<br />[root@CentOS ~]# vi /etc/nginx/nginx.conf<br />index index.php index.html index.htm;<br />//加入index.php<br />location ~ \.php$ {<br />            root           /usr/share/nginx/html;<br />            fastcgi_pass   127.0.0.1:9000;<br />            fastcgi_index  index.php;<br />            fastcgi_param  SCRIPT_FILENAME  /usr/share/nginx/html$fastcgi_script_name;<br />            include        fastcgi_params;<br />        }<br />//将以上代码注释去掉，并修改成nginx默认路径</p> <p>10.配置php<br />//编辑文件php.ini，在文件末尾添加cgi.fix_pathinfo = 1<br />[root@CentOS ~]# vi /etc/php.ini</p> <p>11.重启nginx php-fpm<br />[root@CentOS ~]# service nginx restart<br />[root@CentOS ~]# service php-fpm restart</p> <p>12.建立info.php文件<br />[root@CentOS ~]# vi /usr/share/nginx/html/info.php<br />&lt;?php<br />   phpinfo();<br />?&gt;</p> <p>13.测试nginx是否解析php<br />输入：192.168.1.105/info.php<br />显示php界面说明解析成功</p></div><img src ="http://www.blogjava.net/Alpha/aggbug/387583.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Alpha/" target="_blank">Alpha</a> 2012-09-12 18:39 <a href="http://www.blogjava.net/Alpha/archive/2012/09/12/387583.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>使用日志系统保护Linux安全</title><link>http://www.blogjava.net/Alpha/archive/2012/03/22/372455.html</link><dc:creator>Alpha</dc:creator><author>Alpha</author><pubDate>Thu, 22 Mar 2012 06:12:00 GMT</pubDate><guid>http://www.blogjava.net/Alpha/archive/2012/03/22/372455.html</guid><wfw:comment>http://www.blogjava.net/Alpha/comments/372455.html</wfw:comment><comments>http://www.blogjava.net/Alpha/archive/2012/03/22/372455.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Alpha/comments/commentRss/372455.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Alpha/services/trackbacks/372455.html</trackback:ping><description><![CDATA[<div><p style="text-indent:2em">本文主要讲述如何使用Linux系统中的日志子系统及其命令，来更好地保护系统安全。  </p><p style="text-indent:2em"> </p><p style="text-indent:2em">Linux系统中的日志子系统对于系统安全来说非常重要，它记录了系统每天发生的各种各 样的事情，包括那些用户曾经或者正在使用系统，可以通过日志来检查错误发生的原因，更重要的是在系统受到黑客攻击后，日志可以记录下攻击者留下的痕迹，通 过查看这些痕迹，系统管理员可以发现黑客攻击的某些手段以及特点，从而能够进行处理工作，为抵御下一次攻击做好准备。  </p><p style="text-indent:2em"> </p><p style="text-indent:2em">在Linux系统中，有三类主要的日志子系统:  </p><p style="text-indent:2em"> </p><p style="text-indent:2em">&#9679; 连接时间日志: 由多个程序执行，把记录写入到/var/log/wtmp和/var/run/utmp，login等程序会更新wtmp和utmp文件，使系统管理员能够跟踪谁在何时登录到系统。  </p><p style="text-indent:2em"> </p><p style="text-indent:2em">&#9679; 进程统计: 由系统内核执行，当一个进程终止时，为每个进程往进程统计文件（pacct或acct）中写一个记录。进程统计的目的是为系统中的基本服务提供命令使用统计。  </p><p style="text-indent:2em"> </p><p style="text-indent:2em">&#9679; 错误日志:  由syslogd（8）守护程序执行，各种系统守护进程、用户程序和内核通过syslogd（3）守护程序向文件/var/log/messages报告 值得注意的事件。另外有许多Unix程序创建日志。像HTTP和FTP这样提供网络服务的服务器也保持详细的日志。  </p><p style="text-indent:2em"> </p><p style="text-indent:2em">Linux下日志的使用  </p><p style="text-indent:2em"> </p><p style="text-indent:2em">1．基本日志命令的使用  </p><p style="text-indent:2em"> </p><p style="text-indent:2em">utmp、wtmp日志文件是多数Linux日志子系统的关键，它保存了用户登录进入和 退出的记录。有关当前登录用户的信息记录在文件utmp中; 登录进入和退出记录在文件wtmp中;  数据交换、关机以及重启的机器信息也都记录在wtmp文件中。所有的记录都包含时间戳。时间戳对于日志来说非常重要，因为很多攻击行为分析都是与时间有极 大关系的。这些文件在具有大量用户的系统中增长十分迅速。例如wtmp文件可以无限增长，除非定期截取。许多系统以一天或者一周为单位把wtmp配置成循 环使用。它通常由cron运行的脚本来修改，这些脚本重新命名并循环使用wtmp文件。  </p><p style="text-indent:2em"> </p><p style="text-indent:2em">utmp文件被各种命令文件使用，包括who、w、users和finger。而 wtmp文件被程序last  和ac使用。但它们都是二进制文件，不能被诸如tail命令剪贴或合并（使用cat命令）。用户需要使用who、w、users、last和ac来使用这 两个文件包含的信息。具体用法如下:  </p><p style="text-indent:2em"> </p><p style="text-indent:2em">who命令: who命令查询utmp文件并报告当前登录的每个用户。Who的缺省输出包括用户名、终端类型、登录日期及远程主机。使用该命令，系统管理员可以查看当前系统存在哪些不法用户，从而对其进行审计和处理。例如: 运行who命令显示如下:  </p><p style="text-indent:2em"> </p><p style="text-indent:2em">[root@working]# who  </p><p style="text-indent:2em"> </p><p style="text-indent:2em">root pts/0 May 9 21:11 (10.0.2.128)  </p><p style="text-indent:2em"> </p><p style="text-indent:2em">root pts/1 May 9 21:16 (10.0.2.129)  </p><p style="text-indent:2em"> </p><p style="text-indent:2em">lhwen pts/7 May 9 22:03 (10.0.2.27)  </p><p style="text-indent:2em"> </p><p style="text-indent:2em">如果指明了wtmp文件名，则who命令查询所有以前的记录。例如命令who /var/log/wtmp将报告自从wtmp文件创建或删改以来的每一次登录。  </p><p style="text-indent:2em"> </p><p style="text-indent:2em">日志使用注意事项  </p><p style="text-indent:2em"> </p><p style="text-indent:2em">系统管理人员应该提高警惕，随时注意各种可疑状况，并且按时和随机地检查各种系统日志文件，包括一般信息日志、网络连接日志、文件传输日志以及用户登录日志等。在检查这些日志时，要注意是否有不合常理的时间记载。例如:  </p><p style="text-indent:2em"> </p><p style="text-indent:2em">&#9632; 用户在非常规的时间登录;  </p><p style="text-indent:2em"> </p><p style="text-indent:2em">&#9632; 不正常的日志记录，比如日志的残缺不全或者是诸如wtmp这样的日志文件无故地缺少了中间的记录文件;  </p><p style="text-indent:2em"> </p><p style="text-indent:2em">&#9632; 用户登录系统的IP地址和以往的不一样;  </p><p style="text-indent:2em"> </p><p style="text-indent:2em">&#9632; 用户登录失败的日志记录，尤其是那些一再连续尝试进入失败的日志记录;  </p><p style="text-indent:2em"> </p><p style="text-indent:2em">&#9632; 非法使用或不正当使用超级用户权限su的指令;  </p><p style="text-indent:2em"> </p><p style="text-indent:2em">&#9632; 无故或者非法重新启动各项网络服务的记录。  </p><p style="text-indent:2em"> </p><p style="text-indent:2em">另外, 尤其提醒管理人员注意的是: 日志并不是完全可靠的。高明的黑客在入侵系统后，经常会打扫现场。所以需要综合运用以上的系统命令，全面、综合地进行审查和检测，切忌断章取义，否则很难发现入侵或者做出错误的判断。  </p><p style="text-indent:2em"> </p><p style="text-indent:2em">users命令: users用单独的一行打印出当前登录的用户，每个显示的用户名对应一个登录会话。如果一个用户有不止一个登录会话，那他的用户名将显示相同的次数。运行该命令将如下所示:  </p><p style="text-indent:2em"> </p><p style="text-indent:2em">[root@working]# users  </p><p style="text-indent:2em"> </p><p style="text-indent:2em">root root //只登录了一个Root权限的用户  </p><p style="text-indent:2em"> </p><p style="text-indent:2em">last命令: last命令往回搜索wtmp来显示自从文件第一次创建以来登录过的用户。系统管理员可以周期性地对这些用户的登录情况进行审计和考核，从而发现其中存在的问题，确定不法用户，并进行处理。运行该命令，如下所示:  </p><p style="text-indent:2em"> </p><p style="text-indent:2em">[root@working]# last  </p><p style="text-indent:2em"> </p><p style="text-indent:2em">devin pts/1 10.0.2.221 Mon Jul 21 15:08-down (8+17:46)  </p><p style="text-indent:2em"> </p><p style="text-indent:2em">devin pts/1 10.0.2.221 Mon Jul 21 14:42 - 14:53 (00:11)  </p><p style="text-indent:2em"> </p><p style="text-indent:2em">changyi pts/2 10.0.2.141 Mon Jul 21 14:12 - 14:12 (00:00)  </p><p style="text-indent:2em"> </p><p style="text-indent:2em">devin pts/1 10.0.2.221 Mon Jul 21 12:51 - 14:40 (01:49)  </p><p style="text-indent:2em"> </p><p style="text-indent:2em">reboot system boot 2.4.18 Fri Jul 18 15:42 (11+17:13)  </p><p style="text-indent:2em"> </p><p style="text-indent:2em">reboot system boot 2.4.18 Fri Jul 18 15:34 (00:04)  </p><p style="text-indent:2em"> </p><p style="text-indent:2em">reboot system boot 2.4.18 Fri Jul 18 15:02 (00:36)  </p><p style="text-indent:2em"> </p><p style="text-indent:2em">读者可以看到，使用上述命令显示的信息太多，区分度很小。所以，可以通过指明用户来显示其登录信息即可。例如: 使用last devin来显示devin的历史登录信息，则如下所示:  </p><p style="text-indent:2em"> </p><p style="text-indent:2em">[root@working]# last devin  </p><p style="text-indent:2em"> </p><p style="text-indent:2em">devin pts/1 10.0.2.221 Mon Jul 21 15:08 - down (8+17:46)  </p><p style="text-indent:2em"> </p><p style="text-indent:2em">devin pts/1 10.0.2.221 Mon Jul 21 14:42 - 14:53 (00:11)  </p><p style="text-indent:2em"> </p><p style="text-indent:2em">ac命令:ac命令根据当前的/var/log/wtmp文件中的登录进入和退出来报告用户连接的时间（小时），如果不使用标志，则报告总的时间。另外，可以加一些参数，例如，last -t 7表示显示上一周的报告。  </p><p style="text-indent:2em"> </p><p style="text-indent:2em">lastlog命令  lastlog文件在每次有用户登录时被查询。可以使用lastlog命令检查某特定用户上次登录的时间，并格式化输出上次登录日志  /var/log/lastlog的内容。它根据UID排序显示登录名、端口号（tty）和上次登录时间。如果一个用户从未登录过，lastlog显示  &#8220;**Never logged**&#8221;。注意需要以root身份运行该命令。运行该命令如下所示:  </p><p style="text-indent:2em"> </p><p style="text-indent:2em">[root@working]# lastlog  </p><p style="text-indent:2em"> </p><p style="text-indent:2em">Username Port From Latest  </p><p style="text-indent:2em"> </p><p style="text-indent:2em">root pts/1 10.0.2.129 二 5月 10 10:13:26 +0800 2005  </p><p style="text-indent:2em"> </p><p style="text-indent:2em">opal pts/1 10.0.2.129 二 5月 10 10:13:26 +0800 2005  </p><p style="text-indent:2em"> </p><p style="text-indent:2em">2．使用Syslog设备  </p><p style="text-indent:2em"> </p><p style="text-indent:2em">Syslog已被许多日志函数采纳，被用在许多保护措施中，任何程序都可以通过syslog 记录事件。Syslog可以记录系统事件，可以写到一个文件或设备中，或给用户发送一个信息。它能记录本地事件或通过网络记录另一个主机上的事件。  </p><p style="text-indent:2em"> </p><p style="text-indent:2em">Syslog设备核心包括一个守护进程（/etc/syslogd守护进程）和一个配置 文件（/etc/syslog.conf配置文件）。通常情况下，多数syslog信息被写到/var/adm或/var/log目录下的信息文件中 （messages.*）。一个典型的syslog记录包括生成程序的名字和一个文本信息。它还包括一个设备和一个优先级范围。  </p><p style="text-indent:2em"> </p><p style="text-indent:2em">系统管理员通过使用syslog.conf文件，可以对生成的日志的位置及其相关信息进行灵活配置，满足应用的需要。例如，如果想把所有邮件消息记录到一个文件中，则做如下操作:  </p><p style="text-indent:2em"> </p><p style="text-indent:2em">#Log all the mail messages in one place  </p><p style="text-indent:2em"> </p><p style="text-indent:2em">mail.* /var/log/maillog  </p><p style="text-indent:2em"> </p><p style="text-indent:2em">其他设备也有自己的日志。UUCP和news设备能产生许多外部消息。它把这些消息存到自己的日志（/var/log/spooler）中并把级别限为\"err\"或更高。例如:  </p><p style="text-indent:2em"> </p><p style="text-indent:2em"># Save news errors of level crit and higher in a special file.  </p><p style="text-indent:2em"> </p><p style="text-indent:2em">uucp,news.crit /var/log/spooler  </p><p style="text-indent:2em"> </p><p style="text-indent:2em">当一个紧急消息到来时，可能想让所有的用户都得到。也可能想让自己的日志接收并保存。  </p><p style="text-indent:2em"> </p><p style="text-indent:2em">#Everybody gets emergency messages， plus log them on anther machine  </p><p style="text-indent:2em"> </p><p style="text-indent:2em">*.emerg *  </p><p style="text-indent:2em"> </p><p style="text-indent:2em">*.emerg @linuxaid.com.cn  </p><p style="text-indent:2em"> </p><p style="text-indent:2em">用户可以在一行中指明所有的设备。下面的例子把info或更高级别的消息送到/var/log/messages，除了mail以外。级别\"none\"禁止一个设备:  </p><p style="text-indent:2em"> </p><p style="text-indent:2em">#Log anything（except mail）of level info or higher  </p><p style="text-indent:2em"> </p><p style="text-indent:2em">#Don\'t log private authentication messages!  </p><p style="text-indent:2em"> </p><p style="text-indent:2em">*.info:mail.none;autHPriv.none /var/log/messages  </p><p style="text-indent:2em"> </p><p style="text-indent:2em">在有些情况下，可以把日志送到打印机，这样网络入侵者怎么修改日志都不能清除入侵的痕迹。因此，syslog设备是一个攻击者的显著目标，破坏了它将会使用户很难发现入侵以及入侵的痕迹，因此要特别注意保护其守护进程以及配置文件。  </p><p style="text-indent:2em"> </p><p style="text-indent:2em">3．程序日志的使用  </p><p style="text-indent:2em"> </p><p style="text-indent:2em">许多程序通过维护日志来反映系统的安全状态。su命令允许用户获得另一个用户的权限，所 以它的安全很重要，它的文件为sulog，同样的还有sudolog。另外，诸如Apache等Http的服务器都有两个日志:  access_log（客户端访问日志）以及error_log（服务出错日志）。  FTP服务的日志记录在xferlog文件当中，Linux下邮件传送服务（sendmail）的日志一般存放在maillog文件当中。  </p><p style="text-indent:2em"> </p><p style="text-indent:2em">程序日志的创建和使用在很大程度上依赖于用户的良好编程习惯。对于一个优秀的程序员来 说，任何与系统安全或者网络安全相关的程序的编写，都应该包含日志功能，这样不但便于程序的调试和纠错，而且更重要的是能够给程序的使用方提供日志的分析 功能，从而使系统管理员能够较好地掌握程序乃至系统的运行状况和用户的行为，及时采取行动，排除和阻断意外以及恶意的入侵行为。 				 </p></div><img src ="http://www.blogjava.net/Alpha/aggbug/372455.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Alpha/" target="_blank">Alpha</a> 2012-03-22 14:12 <a href="http://www.blogjava.net/Alpha/archive/2012/03/22/372455.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>CentOS 5.5下FTP安装及配置</title><link>http://www.blogjava.net/Alpha/archive/2012/02/02/369246.html</link><dc:creator>Alpha</dc:creator><author>Alpha</author><pubDate>Thu, 02 Feb 2012 08:49:00 GMT</pubDate><guid>http://www.blogjava.net/Alpha/archive/2012/02/02/369246.html</guid><wfw:comment>http://www.blogjava.net/Alpha/comments/369246.html</wfw:comment><comments>http://www.blogjava.net/Alpha/archive/2012/02/02/369246.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Alpha/comments/commentRss/369246.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Alpha/services/trackbacks/369246.html</trackback:ping><description><![CDATA[<div>CentOS 5.5下FTP安装及配置<br /><br />一、FTP的安装<br /><br />1、检测是否安装了FTP :<br />[root@localhost ~]# rpm -q vsftpd<br />vsftpd-2.0.5-16.el5_5.1<br /><br />否则显示:[root@localhost ~]# package vsftpd is not installed <br />查看ftp运行状态<br />service vsftpd status<br /><br /><br />2、如果没安装FTP，运行yum install vsftpd命令进行安装<br />&nbsp; &nbsp;<br />&nbsp;&nbsp; 如果无法下载，需要设置好yum 如下<br />cd /etc/yum.repos.d<br />mv CentOS-Base.repo&nbsp; CentOS-Base.repo.save<br />wget http://centos.ustc.edu.cn/CentOS-Base.repo<br /><br />3、完成ftp安装后，将 /etc/vsftpd/user_list文件和/etc/vsftpd/ftpusers文件中的root这一行注释掉 <br />&nbsp;&nbsp; # root <br />4、执行 setsebool -P ftpd_disable_trans=1&nbsp; 修改SELinux 状态<br /><br />&nbsp;&nbsp; [root@localhost vsftpd]# setsebool -P ftpd_disable_trans=1 <br />&nbsp;&nbsp; setsebool:&nbsp; SELinux is disabled.<br /><br />5、修改/etc/vsftpd/vsftpd.conf,在最后一行处添加local_root=/ <br />6、重启ftp进程&nbsp;&nbsp; #service vsftpd restart <br /><br />注：每次修改过ftp相关的配置文件，都需要重启ftp进程来生效。<br /><br />安装完成<br />+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++<br />vsftpd 文件布局<br />/etc/vsftpd/vsftpd.conf&nbsp;&nbsp;&nbsp; 主配置文件<br />/usr/sbin/vsftpd&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 主程序<br />/etc/rc.d/init.d/vsftpd&nbsp;&nbsp;&nbsp; 启动脚本<br />/etc/pam.d/vsftpd&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PAM认证文件<br />/etc/vsftpd.ftpusers&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 禁止使用vsftpd的用户列表文件<br />/etc/vsftpd.user_list&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 禁止或允许使用vsftpd用户列表文件<br />/var/ftp&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 匿名用户主目录<br />/var/ftp/pub&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 匿名用户下载目录<br />/etc/logrotate.d/vsftpd.log&nbsp; 日志文件 <br /><br /><br />++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++<br /><br /><br />二.系统帐户<br />1.建立Vsftpd服务的宿主用户：<br />[root@localhost]# adduser -d /data guest -s /sbin/nologin<br />默认的Vsftpd的服务宿主用户是root，但是这不符合安全性的需要。www.linuxidc.com这里建立名字为vsftpd的用户，用他来作为支持Vsftpd的<br />建立Vsftpd虚拟宿主用户：<br />[root@linuxidc.com nowhere]# useradd virtusers -s /sbin/nologin<br /><br />++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++<br /><br /><br />三 、vsftpd的配置<br /><br />#anonymous_enable=YES<br />anonymous_enable=NO&nbsp;&nbsp;&nbsp; 设定不允许匿名访问<br />local_enable=YES&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 设定本地用户可以访问。注意：如果该项目设定为NO那么所有虚拟用户将无法访问。<br />write_enable=YES&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 设定可以进行写操作。<br />local_umask=022&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 设定上传后文件的权限掩码。<br />anon_upload_enable=NO&nbsp; 禁止匿名用户上传。<br />anon_mkdir_write_enable=NO&nbsp; 禁止匿名用户建立目录。<br />dirmessage_enable=YES&nbsp; 设定开启目录标语功能。<br />xferlog_enable=YES&nbsp;&nbsp;&nbsp;&nbsp; 设定开启日志记录功能。<br />connect_from_port_20=YES 设定端口20进行数据连接。<br />chown_uploads=NO&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 设定禁止上传文件更改宿主。<br />chroot_local_user=YES&nbsp;&nbsp; 设定登陆后.只可以访问自己的属主目录.不可访问上一层目录文件<br />xferlog_file=/var/log/vsftpd.log 设定Vsftpd的服务日志保存路径。注意，该文件默认不存在。必须要手动touch出来，并且由于这里更改了Vsftpd的服务宿主<br />用户为手动建立的Vsftpd。必须注意给与该用户对日志的写入权限，否则服务将启动失败。<br />xferlog_std_format=YES&nbsp; 设定日志使用标准的记录格式<br />idle_session_timeout=600 设定空闲连接超时时间，这里使用默认。<br />data_connection_timeout=120 设定单次最大连续传输时间，这里使用默认<br />nopriv_user=vsftpd&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 设定支撑Vsftpd服务的宿主用户为手动建立的Vsftpd用户。注意，一旦做出更改宿主用户后，必须注意一起与该服务相关的读写文件的读写赋权问题<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 比如日志文件就必须给与该用户写入权限等。<br /><br />async_abor_enable=YES&nbsp;&nbsp;&nbsp;&nbsp; 设定支持异步传输功能。<br />ascii_upload_enable=YES<br />ascii_download_enable=YES&nbsp;&nbsp; 设定支持ASCII模式的上传和下载功能。<br />ftpd_banner=Welcome to blah FTP service ^_^&nbsp; 设定Vsftpd的登陆标语。<br />chroot_list_enable=NO&nbsp;&nbsp;&nbsp; 禁止用户登出自己的FTP主目录。<br />ls_recurse_enable=NO&nbsp;&nbsp;&nbsp; 禁止用户登陆FTP后使用"ls -R"的命令。该命令会对服务器性能造成巨大开销。如果该项被允许，那么挡多用户同时使用该命<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 令时将会对该服务器造成威胁。<br />listen=YES&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 设定该Vsftpd服务工作在StandAlone模式下。<br />pam_service_name=vsftpd&nbsp; 设定PAM服务下Vsftpd的验证配置文件名。<br />userlist_enable=YES&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 设定userlist_file中的用户将不得使用FTP。<br />tcp_wrappers=YES&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 服务器使用tcp_wrappers作为主机的访问控制方式。<br /><br />以下这些是关于Vsftpd虚拟用户支持的重要配置项目。默认Vsftpd.conf中不包含这些设定项目，需要自己手动添加配置。<br /><br />guest_enable=YES&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 设定启用虚拟用户功能。<br />guest_username=virtusers 指定虚拟用户的宿主用户。<br />virtual_use_local_privs=YES 设定虚拟用户的权限符合他们的宿主用户。<br />user_config_dir=/etc/vsftpd/vconf&nbsp; 设定虚拟用户个人Vsftp的配置文件存放路径。也就是说，这个被指定的目录里，将存放每个Vsftp虚拟用户个性的配置文件，<br />一个需要注意的地方就是这些配置文件名必须和虚拟用户名相同。保存退出。<br />max_clients= 99&nbsp;&nbsp;&nbsp;&nbsp; 服务器的最大并发数<br />max_per_ip=5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 用户最大线程数<br />anon_max_rate=1000000&nbsp;&nbsp; 设置本底账号最大传输率为1Mbps<br /><br />禁止某些IP段得主机匿名访问服务器<br /><br />tcp_wrappers=YES&nbsp; &nbsp;<br />编辑 /etc/hosts.allow<br /><br />增加 <br />vsftpd：192.168.110.11：DENY<br /><br />查看ftp日志<br /><br />xferlog_enable=YES&nbsp; 上传和下载日志文件记录&nbsp; /var/log/vsftpd.log<br />xferlog_std_format=YES&nbsp; 传输日志文件将以标准xferlog的格式书写&nbsp; /var/log/xferlog<br />xferlog_file= /var/log/xferlog<br />dual_log_enable=YES<br />vsftpd_log_file=/var/log/vsftpd.log<br /><br />通过本底数据文件实现虚拟用户访问<br />安装db4-utils<br />yum install db4-utils<br /><br />创建本地映射用户，修改本底映射用户目录权限<br /><br />useradd -d /data/ftp/temp -s /sbin/nologin game<br />chmod o=rwx /data/ftp/temp<br /><br />修改 /etc/vsftpd/vsftpd.conf<br />guest_enable=YES<br />guest_username=zqgamexw<br /><br />生成虚拟用户文件<br />/etc/vsftpd/vsftpuser.txt<br />test001&nbsp;&nbsp;&nbsp; 虚拟user<br />123456&nbsp;&nbsp;&nbsp;&nbsp; 虚拟passwd<br /><br />生成虚拟用户数据文件<br />db_load -T -t hash -f /etc/vsftpd/vsftpuser.txt /etc/vsftpd/vsftpuser.db<br />修改生成的用户数据文件权限<br />&nbsp;chmod 600 /etc/vsftpd/vsftpuser.db<br />修改PAM 认证文件 /etc/pam.d/vsftpd 注销原有内容后添加<br />auth&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; required&nbsp;&nbsp;&nbsp;&nbsp; /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpuser<br />account&nbsp;&nbsp;&nbsp;&nbsp; required&nbsp;&nbsp;&nbsp;&nbsp; /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpuse<br /><br />&nbsp;<br /><br />建立Vsftpd的日志文件，并更该属主为Vsftpd的服务宿主用户：<br />[root@localhost]# touch /var/log/vsftpd.log<br />[root@localhost]# chown vsftpd.vsftpd /var/log/vsftpd.log<br /><br />建立虚拟用户配置文件存放路径：<br />[root@localhost]# mkdir /etc/vsftpd/vconf/<br /><br />制作虚拟用户数据库文件<br /><br /><br />先建立虚拟用户名单文件：<br />[root@localhost]# touch /etc/vsftpd/virtusers<br />建立了一个虚拟用户名单文件，这个文件就是来记录vsftpd虚拟用户的用户名和口令的数据文件，<br />这里给它命名为virtusers。为了避免文件的混乱，我把这个名单文件就放置在/etc/vsftpd/下。<br /><br />编辑虚拟用户名单文件：<br />[root@localhost]# vi /etc/vsftpd/virtusers<br />----------------------------<br />ftp001<br />123456<br />ftp002<br />123456<br />ftp003<br />123456<br />----------------------------<br />编辑这个虚拟用户名单文件，在其中加入用户的用户名和口令信息。格式很简单：&#8220;一行用户名，一行口令&#8221;。3.生成虚拟用<br /><br />户数据文件：<br />[root@localhost]# db_load -T -t hash -f /etc/vsftpd/virtusers /etc/vsftpd/virtusers.db<br /><br />4.察看生成的虚拟用户数据文件<br />[root@localhost]# ll /etc/vsftpd/virtusers.db<br />-rw-r--r-- 1 root root 12288 Sep 16 03:51 /etc/vsftpd/virtusers.db<br />需要特别注意的是，以后再要添加虚拟用户的时候，只需要按照&#8220;一行用户名，一行口令&#8221;的格式将新用户名和口令添加进虚<br /><br />拟用户名单文件。但是光这样做还不够，不会生效的哦！还要再执行一遍&#8220; db_load -T -t hash -f 虚拟用户名单文件虚拟<br /><br />用户数据库文件.db &#8221;的命令使其生效才可以！<br /><br />设定PAM验证文件，并指定虚拟用户数据库文件进行读取<br />1.察看原来的Vsftp的PAM验证配置文件：<br />[root@localhost]# cat /etc/pam.d/vsftpd<br />----------------------------------------------------------------<br />#%PAM-1.0<br />session&nbsp;&nbsp;&nbsp; optional&nbsp;&nbsp;&nbsp;&nbsp; pam_keyinit.so&nbsp;&nbsp;&nbsp; force revoke<br />auth&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; required&nbsp;&nbsp;&nbsp;&nbsp; pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed<br />auth&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; required&nbsp;&nbsp;&nbsp;&nbsp; pam_shells.so<br />auth&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; include&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; system-auth<br />account&nbsp;&nbsp;&nbsp; include&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; system-auth<br />session&nbsp;&nbsp;&nbsp; include&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; system-auth<br />session&nbsp;&nbsp;&nbsp; required&nbsp;&nbsp;&nbsp;&nbsp; pam_loginuid.so<br />----------------------------------------------------------------<br /><br />2.在编辑前做好备份：<br />[root@localhost]# cp /etc/pam.d/vsftpd /etc/pam.d/vsftpd.backup<br />3.编辑Vsftpd的PAM验证配置文件<br />[root@localhost]# vi /etc/pam.d/vsftpd<br />----------------------------------------------------------------<br />#%PAM-1.0<br />auth&nbsp;&nbsp;&nbsp; required&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /lib/security/pam_userdb.so&nbsp;&nbsp;&nbsp;&nbsp; db=/etc/vsftpd/virtusers<br />account required&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /lib/security/pam_userdb.so&nbsp;&nbsp;&nbsp;&nbsp; db=/etc/vsftpd/virtusers<br />以上两条是手动添加的，上面的全部加#注释了.内容是对虚拟用户的安全和帐户权限进行验证。<br /><br />!!!!!!!这里有个要注意说明的:如果系统是64位系统在这里的所有lib后面要加入64!!!!!!<br />!!!!!!!如下这样才可以:<br /><br />#%PAM-1.0<br />auth&nbsp;&nbsp;&nbsp; required&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /lib64/security/pam_userdb.so&nbsp;&nbsp;&nbsp;&nbsp; db=/etc/vsftpd/virtusers<br />account required&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /lib64/security/pam_userdb.so&nbsp;&nbsp;&nbsp;&nbsp; db=/etc/vsftpd/virtusers<br /><br /><br />五.虚拟用户的配置<br />1.规划好虚拟用户的主路径：<br />[root@localhost]# mkdir /opt/vsftp/ <br />2.建立测试用户的FTP用户目录：<br />[root@localhost]# mkdir /opt/vsftp/ftp001 /opt/vsftp/ftp002 /opt/vsftp/ftp003<br /><br />3.建立虚拟用户配置文件模版： <br /><br />[root@localhost]# cp /etc/vsftpd/vsftpd.conf.backup /etc/vsftpd/vconf/vconf.tMP4.定制虚拟用户模版配置文件：<br />[root@localhost]# vi /etc/vsftpd/vconf/vconf.tmp<br />--------------------------------<br />local_root=/opt/vsftp/virtuser<br />virtuser 这个就是以后要指定虚拟的具体主路径。<br />anonymous_enable=NO<br />设定不允许匿名用户访问。<br />write_enable=YES<br />设定允许写操作。<br />local_umask=022<br />设定上传文件权限掩码。<br />anon_upload_enable=NO<br />设定不允许匿名用户上传。<br />anon_mkdir_write_enable=NO<br />设定不允许匿名用户建立目录。<br />idle_session_timeout=600&nbsp;&nbsp; (根据用户要求.可选)<br />设定空闲连接超时时间。<br />data_connection_timeout=120<br />设定单次连续传输最大时间。<br />max_clients=10&nbsp;&nbsp; (根据用户要求.可选)<br />设定并发客户端访问个数。<br />max_per_ip=5&nbsp;&nbsp;&nbsp;&nbsp; (根据用户要求.可选)<br />设定单个客户端的最大线程数，这个配置主要来照顾Flashget、迅雷等多线程下载软件。<br />local_max_rate=50000&nbsp;&nbsp; (根据用户要求.可选)<br />设定该用户的最大传输速率，单位b/s。<br />pam_service_name=vsftpd<br />chroot_local_user=YES<br />--------------------------------<br />这里将原vsftpd.conf配置文件经过简化后保存作为虚拟用户配置文件的模版。这里将并不需要指定太多的配置内容，主要的<br /><br />框架和限制交由Vsftpd的主配置文件vsftpd.conf来定义，即虚拟用户配置文件当中没有提到的配置项目将参考主配置文件中<br /><br />的设定。而在这里作为虚拟用户的配置文件模版只需要留一些和用户流量控制，访问方式控制的配置项目就可以了。这里的关<br /><br />键项是local_root这个配置，用来指定这个虚拟用户的FTP主路径。5.更改虚拟用户的主目录的属主为虚拟宿主用户：<br />[root@localhost]# chown -R virtusers.virtusers /opt/vsftp/<br /><br />6.检查权限：<br />[root@localhost]# ll /opt/vsftp/<br />total 24<br />drwxr-xr-x 2 overlord overlord 4096 Sep 16 05:14 ftp001<br />drwxr-xr-x 2 overlord overlord 4096 Sep 16 05:00 ftp002<br />drwxr-xr-x 2 overlord overlord 4096 Sep 16 05:00 ftp003<br /><br /><br />.给测试用户定制：<br />1.从虚拟用户模版配置文件复制：<br />[root@localhost]# cp /etc/vsftpd/vconf/vconf.tmp /etc/vsftpd/vconf/ftp001 <br />2.针对具体用户进行定制：<br />[root@localhost]# vi /etc/vsftpd/vconf/ftp001<br />--------------------------------- <br /><br />local_root=/opt/vsftp/ftp001&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (FTP用户ftp001 的登陆目录文件)<br />anonymous_enable=NO<br />write_enable=YES<br />local_umask=022<br />anon_upload_enable=NO<br />anon_mkdir_write_enable=NO<br />idle_session_timeout=300<br />data_connection_timeout=90<br />max_clients=1<br />max_per_ip=1<br />local_max_rate=25000<br />pam_service_name=vsftpd<br />chroot_local_user=YES<br />---------------------------------<br />七.启动服务：<br />[root@localhost]# service vsftpd start<br />Starting vsftpd for vsftpd:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [ OK ]<br />八.测试：<br />1.在虚拟用户目录中预先放入文件：<br />[root@localhost]# touch /opt/vsftp/ftp001/test.txt<br /><br />2.从其他机器作为客户端登陆FTP：<br />可以IE或FTP客户端软直接访问<br /><br />ie里输入 ftp://127.0.0.1 (服务器IP)<br /><br />弹出对话框后.输入FTP用户名和密码<br />---------------------------------------------<br /><br /><br />注意:<br />在/etc/vsftpd/vsftpd.conf中，local_enable的选项必须打开为Yes，使得虚拟用户的访问成为可能，否则会出现以下现象：<br />----------------------------------<br />[root@localhost]# ftp<br />ftp&gt; open 192.168.1.22<br />Connected to 192.168.1.22.<br />500 OOPS: vsftpd: both local and anonymous access disabled!<br />----------------------------------<br />原因：虚拟用户再丰富，其实也是基于它们的宿主用户virtusers的，如果virtusers这个虚拟用户的宿主被限制住了，那么虚<br /><br />拟用户也将受到限制。<br /><br />补充：<br />1.要查看服务器自带的防火墙有无挡住FTP 21端口 导致不能访问<br />2.查看 SELinux 禁用没有.要禁用<br />3.500 OOPS:错误 有可能是你的vsftpd.con配置文件中有不能被实别的命令，还有一种可能是命令的YES 或 NO 后面有空格。<br />4.要仔细查看各个用到的文件夹权限,及用户属主权限等<br /><br /><br />1 如何新加FTP用户<br /><br />打开密码文件里加入(一行是用户.一是密码.依次类推)<br />#vi /etc/vsftpd/virtusers<br />加入用户后 保存退出<br /><br />#db_load -T -t hash -f /etc/vsftpd/virtusers /etc/vsftpd/virtusers.db&nbsp;&nbsp; (然后生成新的虚拟用数据文件)<br />#cp /etc/vsftpd/vconf/vconf.tmp d&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (新建d用户,用虚拟用户模板vconf.tmp文件生成d虚拟用户文件)<br />#vi /etc/vsftpd/vconf/d&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (打开D虚拟用户文件.在第一行最后加入该用户对应的FTP目录)<br />#mkdir /opt/vsftp/WWW&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (新建WWW目录为d FTP用户登陆目录)<br />#service vsftpd restart<br />-------------------------------------------------------<br />2 如何修改FTP 用户登陆密码<br /><br />打开密码文件里加入(第一行是用户.第二是密码.依次类推,只要改对应用户下面的密码即可)<br />#vi /etc/vsftpd/virtusers&nbsp; &nbsp;<br />#db_load -T -t hash -f /etc/vsftpd/virtusers /etc/vsftpd/virtusers.db&nbsp;&nbsp; (然后生成新的虚拟用数据文件)<br />#service vsftpd restart</div><img src ="http://www.blogjava.net/Alpha/aggbug/369246.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Alpha/" target="_blank">Alpha</a> 2012-02-02 16:49 <a href="http://www.blogjava.net/Alpha/archive/2012/02/02/369246.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Crontab自动执行脚本Kill掉MySQL的僵死进程</title><link>http://www.blogjava.net/Alpha/archive/2012/01/19/368749.html</link><dc:creator>Alpha</dc:creator><author>Alpha</author><pubDate>Thu, 19 Jan 2012 06:20:00 GMT</pubDate><guid>http://www.blogjava.net/Alpha/archive/2012/01/19/368749.html</guid><wfw:comment>http://www.blogjava.net/Alpha/comments/368749.html</wfw:comment><comments>http://www.blogjava.net/Alpha/archive/2012/01/19/368749.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Alpha/comments/commentRss/368749.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Alpha/services/trackbacks/368749.html</trackback:ping><description><![CDATA[<div>　MySQL + PHP的模式在大并发压力下经常会导致MySQL中存在大量僵死进程，导致服务挂死。为了自动干掉这些进程，弄了个脚本，放在服务器后台通过crontab自动执行。发现这样做了以后，的确很好的缓解了这个问题。把这个脚本发出来和大家Share。<br /><br />根据自己的实际需要，做了一些修改：<br /><br />SHELL脚本:mysqld_kill_sleep.sh<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008000; ">#</span><span style="color: #008000; ">!/bin/sh</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">mysql_pwd</span><span style="color: #000000; ">=</span><span style="color: #000000; font-weight: bold; ">"</span><span style="color: #000000; font-weight: bold; ">root的密码</span><span style="color: #000000; font-weight: bold; ">"</span><span style="color: #000000; "><br />mysqladmin_exec</span><span style="color: #000000; ">=</span><span style="color: #000000; font-weight: bold; ">"</span><span style="color: #000000; font-weight: bold; ">/usr/local/bin/mysqladmin</span><span style="color: #000000; font-weight: bold; ">"</span><span style="color: #000000; "><br />mysql_exec</span><span style="color: #000000; ">=</span><span style="color: #000000; font-weight: bold; ">"</span><span style="color: #000000; font-weight: bold; ">/usr/local/bin/mysql</span><span style="color: #000000; font-weight: bold; ">"</span><span style="color: #000000; "><br /></span><span style="color: #000000; font-weight: bold; ">"</span><span style="color: #000000; font-weight: bold; ">/tmp</span><span style="color: #000000; font-weight: bold; ">"</span><span style="color: #000000; "><br />mysql_timeout_log</span><span style="color: #000000; ">=</span><span style="color: #000000; font-weight: bold; ">"</span><span style="color: #000000; font-weight: bold; ">$mysql_timeout_dir/mysql_timeout.log</span><span style="color: #000000; font-weight: bold; ">"</span><span style="color: #000000; "><br />mysql_kill_timeout_sh</span><span style="color: #000000; ">=</span><span style="color: #000000; font-weight: bold; ">"</span><span style="color: #000000; font-weight: bold; ">$mysql_timeout_dir/mysql_kill_timeout.sh</span><span style="color: #000000; font-weight: bold; ">"</span><span style="color: #000000; "><br /></span><span style="color: #000000; font-weight: bold; ">"</span><span style="color: #000000; font-weight: bold; ">$mysql_timeout_dir/mysql_kill_timeout.log</span><span style="color: #000000; font-weight: bold; ">"</span><span style="color: #000000; "><br /></span><span style="color: #800080; ">$mysqladmin_exec</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">-</span><span style="color: #000000; ">uroot&nbsp;</span><span style="color: #000000; ">-</span><span style="color: #000000; ">p</span><span style="color: #000000; font-weight: bold; ">"</span><span style="color: #000000; font-weight: bold; ">$mysql_pwd</span><span style="color: #000000; font-weight: bold; ">"</span><span style="color: #000000; ">&nbsp;processlist&nbsp;</span><span style="color: #000000; ">|</span><span style="color: #000000; ">&nbsp;awk&nbsp;</span><span style="color: #000000; font-weight: bold; ">'</span><span style="color: #000000; font-weight: bold; ">{&nbsp;print&nbsp;$12&nbsp;,&nbsp;$2&nbsp;,$4}</span><span style="color: #000000; font-weight: bold; ">'</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">|</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">grep</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">-</span><span style="color: #000000; ">v&nbsp;</span><span style="color: #0000FF; ">Time</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">|</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">grep</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">-</span><span style="color: #000000; ">v&nbsp;</span><span style="color: #000000; font-weight: bold; ">'</span><span style="color: #000000; font-weight: bold; ">|</span><span style="color: #000000; font-weight: bold; ">'</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">|</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">sort</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">-</span><span style="color: #000000; ">rn&nbsp;</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; ">&nbsp;</span><span style="color: #800080; ">$mysql_timeout_log</span><span style="color: #000000; "><br />awk&nbsp;</span><span style="color: #000000; font-weight: bold; ">'</span><span style="color: #000000; font-weight: bold; ">{if($1&gt;30&nbsp;&amp;&amp;&nbsp;$3!="root")&nbsp;print&nbsp;"</span><span style="color: #000000; font-weight: bold; ">'""</span><span style="color: #800080; ">$mysql_exec</span><span style="color: #000000; font-weight: bold; ">""'</span><span style="color: #000000; font-weight: bold; ">&nbsp;-e&nbsp;"&nbsp;"/""&nbsp;"kill",$2&nbsp;"/""&nbsp;"&nbsp;-uroot&nbsp;"&nbsp;"-p""/"""</span><span style="color: #000000; font-weight: bold; ">'""</span><span style="color: #800080; ">$mysql_pwd</span><span style="color: #000000; font-weight: bold; ">""'</span><span style="color: #000000; font-weight: bold; ">""/""&nbsp;";"&nbsp;}</span><span style="color: #000000; font-weight: bold; ">'</span><span style="color: #000000; ">&nbsp;</span><span style="color: #800080; ">$mysql_timeout_log</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; ">&nbsp;</span><span style="color: #800080; ">$mysql_kill_timeout_sh</span><span style="color: #000000; "><br />echo&nbsp;</span><span style="color: #000000; font-weight: bold; ">"</span><span style="color: #000000; font-weight: bold; ">check&nbsp;start&nbsp;<img src="http://www.blogjava.net/Images/dot.gif"  alt="" />.</span><span style="color: #000000; font-weight: bold; ">"</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">&gt;&gt;</span><span style="color: #000000; ">&nbsp;</span><span style="color: #800080; ">$mysql_kill_timeout_log</span><span style="color: #000000; "><br />echo&nbsp;`date`&nbsp;</span><span style="color: #000000; ">&gt;&gt;</span><span style="color: #000000; ">&nbsp;</span><span style="color: #800080; ">$mysql_kill_timeout_log</span><span style="color: #000000; "><br />cat&nbsp;</span><span style="color: #800080; ">$mysql_kill_timeout_sh</span></div><br /><br />　　把这个写到mysqld_kill_sleep.sh。然后chmod 0 mysqld_kill_sleep.sh,chmod u+rx mysqld_kill_sleep.sh，然后用root账户到cron里面运行即可，时间自己调整。执行之后显示：<br />www# ./mysqld_kill_sleep.sh<br />/usr/local/bin/mysql -e "kill 27549" -uroot -p"mysql root的密码";<br />/usr/local/bin/mysql -e "kill 27750" -uroot -p"mysql root的密码";<br />/usr/local/bin/mysql -e "kill 27840" -uroot -p"mysql root的密码";<br />/usr/local/bin/mysql -e "kill 27867" -uroot -p"mysql root的密码";<br />/usr/local/bin/mysql -e "kill 27899" -uroot -p"mysql root的密码";<br />/usr/local/bin/mysql -e "kill 27901" -uroot -p"mysql root的密码";<br />/usr/local/bin/mysql -e "kill 27758" -uroot -p"mysql root的密码";<br />/usr/local/bin/mysql -e "kill 27875" -uroot -p"mysql root的密码";<br />/usr/local/bin/mysql -e "kill 27697" -uroot -p"mysql root的密码";<br />"kill 27888" -uroot -p"mysql root的密码";<br />/usr/local/bin/mysql -e "kill 27861" -uroot -p"mysql root的密码";<br /><br />　　如果确认没有问题了，把最后的cat修改为sh即可。本人改写了下上面的脚本：<br />#!/bin/bash<br />mysql_pwd="密码"<br />mysql_exec="/usr/local/mysql/bin/mysql"<br />mysql_timeout_dir="/tmp"<br />mysql_kill_timeout_sh="$mysql_timeout_dir/mysql_kill_timeout.sh"<br />"$mysql_timeout_dir/mysql_kill_timeout.log"<br />$mysql_exec -uroot -p$mysql_pwd -e "show processlist" | grep -i "Locked" &gt;&gt; $mysql_kill_timeout_log<br /><br />for line in `$mysql_kill_timeout_log&nbsp; | awk '{print $1}'`<br />do<br />echo "$mysql_exec -uroot -p$mysql_pwd -e /"kill $line/"" &gt;&gt; $mysql_kill_timeout_sh<br />done<br /><br />cat $mysql_kill_timeout_sh<br /><br />　　很多时候！一不小心就锁表！这里讲解决锁表终极方法！<br /><br />案例一<br />mysql&gt;showprocesslist;<br /><br />　　参看sql语句，一般少的话<br />mysql&gt;killthread_id;<br /><br />　　就可以解决了，kill掉第一个锁表的进程， 依然没有改善．既然不改善，咱们就想办法将所有锁表的进程kill掉吧，简单的脚本如下：<br />#!/bin/bash<br />mysql-uroot-e"show processlist"|grep-i"Locked"&gt;&gt;locked_log.txt<br /><br />forlinein`cat locked_log.txt | awk '{print$1}'`<br />do<br />echo"kill$line;"&gt;&gt;kill_thread_id.sql<br />done<br /><br />现在kill_thread_id.sql的内容像这个样子<br />kill66402982;<br />kill66402983;<br />kill66402986;<br />kill66402991;<br />.....<br /><br />好了，我们在mysql的shell中执行，就可以把所有锁表的进程杀死了。<br />mysql&gt;sourcekill_thread_id.sql<br /><br />当然了，也可以一行搞定。<br />foridin`mysqladmin processlist | grep -i locked | awk '{print$1}'`<br />do<br />mysqladminkill${id}<br />done<br /><br />案例二<br /><br />　　如果大批量的操作能够通过一系列的select语句产生，那么理论上就能对这些结果批量处理。但是mysql并没用提供eval这样的对结果集进行分析操作的功能。所以只能现将select结果保存到临时文件中，然后再执行临时文件中的指令。具体过程如下：<br />mysql&gt; SELECT concat('KILL ',id,';') FROM information_schema.processlist WHERE user='root';<br />+------------------------+<br />| concat('KILL ',id,';')<br />+------------------------+<br />| KILL 3101;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<br />| KILL 2946;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<br />+------------------------+<br />2 rows IN SET (0.00 sec)<br /><br />mysql&gt; SELECT concat('KILL ',id,';') FROM information_schema.processlist WHERE user='root' INTO OUTFILE '/tmp/a.txt';<br />Query OK, 2 rows affected (0.00 sec)<br /><br />mysql&gt; source /tmp/a.txt;<br />Query OK, 0 rows affected (0.00 sec)<br /><br />案例三<br /><br />　　MySQL + PHP的模式在大并发压力下经常会导致MySQL中存在大量僵死进程，导致服务挂死。为了自动干掉这些进程，弄了个脚本，放在服务器后台通过crontab自动执行。发现这样做了以后，的确很好的缓解了这个问题。把这个脚本发出来和大家Share。根据自己的实际需要，做了一些修改：<br /><br />SHELL脚本:mysqld_kill_sleep.sh<br />#!/bin/sh<br />mysql_pwd="root的密码"<br />mysqladmin_exec="/usr/local/bin/mysqladmin"<br />mysql_exec="/usr/local/bin/mysql"<br />mysql_timeout_dir="/tmp"<br />mysql_timeout_log="$mysql_timeout_dir/mysql_timeout.log"<br />mysql_kill_timeout_sh="$mysql_timeout_dir/mysql_kill_timeout.sh"<br />mysql_kill_timeout_log="$mysql_timeout_dir/mysql_kill_timeout.log"<br />$mysqladmin_exec -uroot -p"$mysql_pwd" processlist | awk '{ print $12 , $2 ,$4}' | grep -v Time | grep -v '|' | sort -rn &gt; $mysql_timeout_log<br />awk '{if($1&gt;30 &amp;&amp; $3!="root") print "'""$mysql_exec""' -e " "\"" "kill",$2 "\"" " -uroot " "-p""\"""'""$mysql_pwd""'""\"" ";" }' $mysql_timeout_log &gt; $mysql_kill_timeout_sh<br />echo "check start ...." &gt;&gt; $mysql_kill_timeout_log<br />echo `date` &gt;&gt; $mysql_kill_timeout_log<br />cat $mysql_kill_timeout_sh<br /><br />　　把这个写到mysqld_kill_sleep.sh。然后chmod 0 mysqld_kill_sleep.sh,chmod u+rx mysqld_kill_sleep.sh，然后用root账户到cron里面运行即可，时间自己调整。执行之后显示：<br />www# ./mysqld_kill_sleep.sh<br />/usr/local/bin/mysql -e "kill 27549" -uroot -p"mysql root的密码";<br />/usr/local/bin/mysql -e "kill 27750" -uroot -p"mysql root的密码";<br />/usr/local/bin/mysql -e "kill 27840" -uroot -p"mysql root的密码";<br />/usr/local/bin/mysql -e "kill 27867" -uroot -p"mysql root的密码";<br />/usr/local/bin/mysql -e "kill 27899" -uroot -p"mysql root的密码";<br />/usr/local/bin/mysql -e "kill 27901" -uroot -p"mysql root的密码";<br />/usr/local/bin/mysql -e "kill 27758" -uroot -p"mysql root的密码";<br />/usr/local/bin/mysql -e "kill 27875" -uroot -p"mysql root的密码";<br />/usr/local/bin/mysql -e "kill 27697" -uroot -p"mysql root的密码";<br />/usr/local/bin/mysql -e "kill 27888" -uroot -p"mysql root的密码";<br />/usr/local/bin/mysql -e "kill 27861" -uroot -p"mysql root的密码";<br /><br />　　如果确认没有问题了，把最后的cat修改为sh即可。本人改写了下上面的脚本：<br />#!/bin/bash<br />mysql_pwd="密码"<br />mysql_exec="/usr/local/mysql/bin/mysql"<br />mysql_timeout_dir="/tmp"<br />mysql_kill_timeout_sh="$mysql_timeout_dir/mysql_kill_timeout.sh"<br />mysql_kill_timeout_log="$mysql_timeout_dir/mysql_kill_timeout.log"<br />$mysql_exec -uroot -p$mysql_pwd -e "show processlist" | grep -i "Locked" &gt;&gt; $mysql_kill_timeout_log<br />chmod 777 $mysql_kill_timeout_log<br />for line in `$mysql_kill_timeout_log&nbsp; | awk '{print $1}'`<br />do<br />echo "$mysql_exec -uroot -p$mysql_pwd -e \"kill $line\"" &gt;&gt; $mysql_kill_timeout_sh<br />done<br />chmod 777 $mysql_kill_timeout_sh<br />cat $mysql_kill_timeout_sh<br /><br />　　是不是很方便呢！processlist命令的输出结果显示了有哪些线程在运行，可以帮助识别出有问题的查询语句，两种方式使用这个命令。<br />1、进入mysql/bin目录下输入mysqladmin processlist;<br />2、启动mysql，输入show processlist;<br /><br />　　如果有SUPER权限，则可以看到全部的线程，否则，只能看到自己发起的线程（这是指，当前对应的MySQL帐户运行的线程）。得到数据形式如下（只截取了三条）：<br />mysql&gt; show processlist;<br /><br />+-----+-------------+--------------------+-------+---------+-------+----------------------------------+----------<br /><br />| Id | User | Host | db | Command | Time| State | Info<br /><br />+-----+-------------+--------------------+-------+---------+-------+----------------------------------+----------<br /><br />|207|root |192.168.0.20:51718 |mytest | Sleep | 5 | | NULL<br /><br />|208|root |192.168.0.20:51719 |mytest | Sleep | 5 | | NULL<br /><br />|220|root |192.168.0.20:51731 |mytest |Query | 84 | Locked |<br /><br />select bookname,culture,value,type from book where id=001<br /><br />　　先简单说一下各列的含义和用途，第一列，id，不用说了吧，一个标识，你要kill一个语句的时候很有用。user列，显示单前用户，如果不是root，这个命令就只显示你权限范围内的sql语句。host列，显示这个语句是从哪个ip的哪个端口上发出的。呵呵，可以用来追踪出问题语句的用户。db列，显示这个进程目前连接的是哪个数据库。command列，显示当前连接的执行的命令，一般就是休眠（sleep），查询（query），连接（connect）。time列，此这个状态持续的时间，单位是秒。state列，显示使用当前连接的sql语句的状态，很重要的列，后续会有所有的状态的描述，请注意，state只是语句执行中的某一个状态，一个sql语句，已查询为例，可能需要经过copying to tmp table，Sorting result，Sending data等状态才可以完成，info列，显示这个sql语句，因为长度有限，所以长的sql语句就显示不全，但是一个判断问题语句的重要依据。<br /><br />　　这个命令中最关键的就是state列，mysql列出的状态主要有以下几种：<br />Checking table<br /><br />　　正在检查数据表（这是自动的）。<br />Closing tables<br /><br />　　正在将表中修改的数据刷新到磁盘中，同时正在关闭已经用完的表。这是一个很快的操作，如果不是这样的话，就应该确认磁盘空间是否已经满了或者磁盘是否正处于重负中。<br />Connect Out<br /><br />　　复制从服务器正在连接主服务器。<br />Copying to tmp table on disk<br /><br />　　由于临时结果集大于tmp_table_size，正在将临时表从内存存储转为磁盘存储以此节省内存。<br />Creating tmp table<br /><br />　　正在创建临时表以存放部分查询结果。<br />deleting from main table<br /><br />　　服务器正在执行多表删除中的第一部分，刚删除第一个表。<br />deleting from reference tables<br /><br />　　服务器正在执行多表删除中的第二部分，正在删除其他表的记录。<br />Flushing tables<br /><br />　　正在执行FLUSH TABLES，等待其他线程关闭数据表。<br />Killed<br /><br />　　发送了一个kill请求给某线程，那么这个线程将会检查kill标志位，同时会放弃下一个kill请求。MySQL会在每次的主循环中检查kill标志位，不过有些情况下该线程可能会过一小段才能死掉。如果该线程程被其他线程锁住了，那么kill请求会在锁释放时马上生效。<br />Locked<br /><br />　　被其他查询锁住了。<br />Sending data<br /><br />　　正在处理Select查询的记录，同时正在把结果发送给客户端。<br />Sorting for group<br /><br />　　正在为GROUP BY做排序。<br />Sorting for order<br /><br />　　正在为ORDER BY做排序。<br />Opening tables<br /><br />　　这个过程应该会很快，除非受到其他因素的干扰。例如，在执Alter TABLE或LOCK TABLE语句行完以前，数据表无法被其他线程打开。正尝试打开一个表。<br />Removing duplicates<br /><br />　　正在执行一个Select DISTINCT方式的查询，但是MySQL无法在前一个阶段优化掉那些重复的记录。因此，MySQL需要再次去掉重复的记录，然后再把结果发送给客户端。<br />Reopen table<br /><br />　　获得了对一个表的锁，但是必须在表结构修改之后才能获得这个锁。已经释放锁，关闭数据表，正尝试重新打开数据表。<br />Repair by sorting<br /><br />　　修复指令正在排序以创建索引。<br />Repair with keycache<br /><br />　　修复指令正在利用索引缓存一个一个地创建新索引。它会比Repair by sorting慢些。<br />Searching rows for update<br /><br />　　正在讲符合条件的记录找出来以备更新。它必须在Update要修改相关的记录之前就完成了。<br />Sleeping<br /><br />　　正在等待客户端发送新请求.<br />System lock<br /><br />　　正在等待取得一个外部的系统锁。如果当前没有运行多个mysqld服务器同时请求同一个表，那么可以通过增加--skip-external-locking参数来禁止外部系统锁。<br />Upgrading lock<br /><br />　　Insert DELAYED正在尝试取得一个锁表以插入新记录。<br />Updating<br /><br />　　正在搜索匹配的记录，并且修改它们。<br />User Lock<br /><br />　　正在等待GET_LOCK()。<br />Waiting for tables<br /><br />　　该线程得到通知，数据表结构已经被修改了，需要重新打开数据表以取得新的结构。然后，为了能的重新打开数据表，必须等到所有其他线程关闭这个表。以下几种情况下会产生这个通知：<br />FLUSH TABLES tbl_name, Alter TABLE, RENAME TABLE, REPAIR TABLE, ANALYZE TABLE,或OPTIMIZE TABLE。<br /><br />waiting for handler insert<br /><br />　　Insert DELAYED已经处理完了所有待处理的插入操作，正在等待新的请求。大部分状态对应很快的操作，只要有一个线程保持同一个状态好几秒钟，那么可能是有问题发生了，需要检查一下。<br /><br />　　还有其他的状态没在上面中列出来，不过它们大部分只是在查看服务器是否有存在错误是才用得着。</div><img src ="http://www.blogjava.net/Alpha/aggbug/368749.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Alpha/" target="_blank">Alpha</a> 2012-01-19 14:20 <a href="http://www.blogjava.net/Alpha/archive/2012/01/19/368749.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Centos搭建SVN服务器三步曲</title><link>http://www.blogjava.net/Alpha/archive/2011/12/19/366739.html</link><dc:creator>Alpha</dc:creator><author>Alpha</author><pubDate>Mon, 19 Dec 2011 03:44:00 GMT</pubDate><guid>http://www.blogjava.net/Alpha/archive/2011/12/19/366739.html</guid><wfw:comment>http://www.blogjava.net/Alpha/comments/366739.html</wfw:comment><comments>http://www.blogjava.net/Alpha/archive/2011/12/19/366739.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Alpha/comments/commentRss/366739.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Alpha/services/trackbacks/366739.html</trackback:ping><description><![CDATA[搭建SVN服务，有效的管理代码，以下三步可以快速搞定。<br /><span style="font-size: 18pt">1、安装&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>&nbsp;&nbsp;&nbsp; <br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #000000">
<div><span style="font-size: 14pt">#yum install subversion</span><br /><br /><span style="font-size: 14pt">&nbsp; 判断是否安装成功</span><br /><span style="font-size: 14pt">#subversion -v<br /><br /></span></div></span><span style="font-size: 14pt; color: #000000">&nbsp; svnserve,&nbsp;version&nbsp;</span><span style="font-size: 14pt; color: #000000">1.6</span><span style="font-size: 14pt; color: #000000">.</span><span style="font-size: 14pt; color: #000000">11</span><span style="font-size: 14pt; color: #000000">&nbsp;(r934486)</span><br /><span style="font-size: 14pt">出现上面的提示，说明安装成功。</span><br /><br />
<div><br /><span style="font-size: 14pt">有了SVN软件后还需要建立SVN库。</span><br /><span style="font-size: 14pt">#</span><span style="font-size: 14pt; color: red">mkdir /opt/svn/repos</span><br /><span style="font-size: 14pt">#</span><span style="font-size: 14pt; color: red">svnadmin create /opt/svn/repos</span><br /><span style="font-size: 14pt">执行上面的命令后，自动在repos下建立多个文件， 分别是conf, db,format,hooks, locks, README.txt。</span></div></div>&nbsp;&nbsp;&nbsp; <br /><br /><span style="font-size: 18pt">2、配置</span><br /><br />&nbsp; &nbsp;&nbsp; 上面的操作很简单，几个命令就搞定, 下面的操作也不难。<br />&nbsp;&nbsp;&nbsp;&nbsp; 进入上面生成的文件夹conf下，进行配置,&nbsp;&nbsp; 有以下几个文件authz, passwd, svnserve.conf<br />&nbsp;&nbsp;&nbsp;&nbsp; 其中authz 是权限控制，可以设置哪些用户可以访问哪些目录,&nbsp;&nbsp; passwd是设置用户和密码的,&nbsp;&nbsp;&nbsp; svnserve是设置svn相关的操作。<br /><br /><br /><span style="font-size: 18pt">&nbsp;&nbsp; 2.1先设置passwd</span><br />&nbsp;&nbsp;&nbsp; <br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #000000">[users]<br />#&nbsp;harry&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;harryssecret<br />#&nbsp;sally&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;sallyssecret<br />hello=123<br />用户名=密码<br /><br />
<div>这样我们就建立了hello用户， 123密码&nbsp;&nbsp;</div></span></div><br />&nbsp;&nbsp; <span style="font-size: 18pt">2.2 再设置权限authz</span><br /><br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #000000">[</span><span style="color: #000000">/</span><span style="color: #000000">]<br />hello</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;rw<br /><br />
<div>意思是hello用户对所有的目录有读写权限，当然也可以限定。<br />如果是自己用，就直接是读写吧。</div><br /></span></div><br /><br /><span style="font-size: 18pt">2.3最后设定snvserv.conf</span><br /><span style="font-size: 18pt"><br /></span>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #000000">anon</span><span style="color: #000000">-</span><span style="color: #000000">access&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;none&nbsp;#&nbsp;使非授权用户无法访问<br />auth</span><span style="color: #000000">-</span><span style="color: #000000">access&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;write&nbsp;#&nbsp;使授权用户有写权限<br />password</span><span style="color: #000000">-</span><span style="color: #000000">db&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;password<br />authz</span><span style="color: #000000">-</span><span style="color: #000000">db&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;authz&nbsp;&nbsp;&nbsp;#&nbsp;访问控制文件<br />realm&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">/</span><span style="color: #000000">opt</span><span style="color: #000000">/</span><span style="color: #000000">svn</span><span style="color: #000000">/</span><span style="color: #000000">repos&nbsp;#&nbsp;认证命名空间，subversion会在认证提示里显示，并且作为凭证缓存的关键字。<br /></span><span style="color: red">采用默认配置. 以上语句都必须顶格写,&nbsp;左侧不能留空格,&nbsp;否则会出错.</span></div><br />好了，通过以上配置，你的svn就可以了。<br /><br /><span style="font-size: 24pt">3、连接</span><br /><br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="font-size: 12pt; color: #000000">启动svn:&nbsp;svnserve&nbsp;</span><span style="font-size: 12pt; color: #000000">-</span><span style="font-size: 12pt; color: #000000">d&nbsp;</span><span style="font-size: 12pt; color: #000000">-</span><span style="font-size: 12pt; color: #000000">r&nbsp;</span><span style="font-size: 12pt; color: #000000">/</span><span style="font-size: 12pt; color: #000000">opt</span><span style="font-size: 12pt; color: #000000">/</span><span style="font-size: 12pt; color: #000000">svn</span><span style="font-size: 12pt; color: #000000">/</span><span style="font-size: 12pt; color: #000000">repos<br /><br /><div>svn默认端口是3690</div></span><span style="font-size: 12pt; color: #000000">如果已经有svn在运行，可以换一个端口运行<br /></span><span style="font-size: 12pt; color: #000000">svnserve&nbsp;</span><span style="font-size: 12pt; color: #000000">-</span><span style="font-size: 12pt; color: #000000">d&nbsp;</span><span style="font-size: 12pt; color: #000000">-</span><span style="font-size: 12pt; color: #000000">r&nbsp;</span><span style="font-size: 12pt; color: #000000">/</span><span style="font-size: 12pt; color: #000000">opt</span><span style="font-size: 12pt; color: #000000">/</span><span style="font-size: 12pt; color: #000000">svn</span><span style="font-size: 12pt; color: #000000">/</span><span style="font-size: 12pt; color: #000000">repos&nbsp;</span><span style="font-size: 12pt; color: #000000">--</span><span style="font-size: 12pt; color: #000000">listen</span><span style="font-size: 12pt; color: #000000">-</span><span style="font-size: 12pt; color: #000000">port&nbsp;</span><span style="font-size: 12pt; color: #000000">3391</span><span style="color: #000000"><br /><br /></span><span style="font-size: 12pt; color: #000000">这样同一台服务器可以运行多个svnserver<br /><br /></span><span style="font-size: 12pt; color: #000000">好了，启动成功后,就可以使用了。<br /></span><span style="font-size: 12pt; color: #000000">建议采用TortoiseSVN，&nbsp;连接地址为:&nbsp;svn:</span><span style="font-size: 12pt; color: #008000">//</span><span style="font-size: 12pt; color: #008000">your&nbsp;server&nbsp;address&nbsp;（如果指定端口需要添加端口&nbsp;&nbsp;:端口号）</span><span style="color: #008000"><br /></span><span style="color: #000000"><br /></span><span style="font-size: 12pt; color: #000000">连接后可以上传本地的文件，有效的管理你的代码。</span><span style="color: #000000"><br /></span></div><br /><div><h2>svn 端口和常用命令</h2>    <p>有效选项:<br />&nbsp; -d [--daemon]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : 后台模式<br />&nbsp; --listen-port 参数&nbsp;&nbsp;&nbsp;&nbsp; : 监听端口（后台模式）<br />&nbsp; --listen-host 参数&nbsp;&nbsp;&nbsp;&nbsp; : 监听主机名或IP地址（后台模式）<br />&nbsp; --foreground&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : 在前台运行（调试时有用）<br />&nbsp; -h [--help]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : 显示这个帮助<br />&nbsp; --version&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : 显示程序版本信息<br />&nbsp; -i [--inetd]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : inetd 模式<br />&nbsp; -r [--root] 参数&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : 服务根目录<br />&nbsp; -R [--read-only]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : 强制只读成；优先于仓库配置文件<br />&nbsp; -t [--tunnel]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : 隧道模式<br />&nbsp; --tunnel-user 参数&nbsp;&nbsp;&nbsp;&nbsp; : 隧道用户名（模式是当前用户UID的名字）<br />&nbsp; -X [--listen-once]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : 监听一次（调试时有用）<br />&nbsp; --pid-file 参数&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : 将服务进程ID写入文件ARG中<br />&nbsp; --service&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : 作为windows服务运行(仅SCM)[/quote]</p><p>你可以用--listen-port 指定端口</p><p>在httpd.conf中，查找Listen 80，将80修改为你想要的端口,svn默认端口是3690</p><p>为svnserve 加上--listen-port参数，比如svnserve -d -r d:\svn --listen-port 81</p>你可以采用svn＋apache组合搭建，既可以设置你想要的端口，还可以以WEB形式访问代码库</div><br />通过以上三步，可以快速的搭建起svn<br /><br /><div><span style="font-family: 宋体"><strong>SVN数据库迁移方法</strong></span></div><br /><div><span style="font-family: 宋体">版本库数据的移植:svnadmin dump<span style="font-family: 宋体">、</span>svnadmin load</span> <p><span style="font-family: 宋体">导出</span>:</p> <p><span>$svnadmin dump repos &gt; dumpfile //</span><span style="font-family: 宋体">将指定的版本库导出成文件</span>dumpfile</p> <p><span style="font-family: 宋体">新建:</span></p> <p><span style="font-family: 宋体">$svnadmin create newrepos</span></p> <p><span style="font-family: 宋体">导入</span><span>:</span></p> <p><span>$svnadmin load newrepos &lt; dumpfile</span></p></div><img src ="http://www.blogjava.net/Alpha/aggbug/366739.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Alpha/" target="_blank">Alpha</a> 2011-12-19 11:44 <a href="http://www.blogjava.net/Alpha/archive/2011/12/19/366739.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在CentOS的VPS上安装DNS服务器</title><link>http://www.blogjava.net/Alpha/archive/2011/11/21/364448.html</link><dc:creator>Alpha</dc:creator><author>Alpha</author><pubDate>Mon, 21 Nov 2011 08:25:00 GMT</pubDate><guid>http://www.blogjava.net/Alpha/archive/2011/11/21/364448.html</guid><wfw:comment>http://www.blogjava.net/Alpha/comments/364448.html</wfw:comment><comments>http://www.blogjava.net/Alpha/archive/2011/11/21/364448.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/Alpha/comments/commentRss/364448.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Alpha/services/trackbacks/364448.html</trackback:ping><description><![CDATA[<p>DNS是域名系统(Domain Name System)的缩写，它的作用是将主机名解析成IP(正向解析)，从IP地址查询其主机名(反向解析)。</p>
<p>DNS的工作原理<br />(1)客户机发出查询请求<br />当被询问到有关本域中的主机名称的时候，DNS服务器会直接做出回答。如果所查询的主机名称属于其它域的话，则会检查缓存中有没有相关资料，如果没有发现则会转向root服务器查询，然后root服务器会将该域名的授权(authoritative)服务器(可能会超过一台)的地址告知本地服务器，然后会向其中的一台服务器查询，并将这些服务器名单存到缓存中以备将来之需(省去再向root查询的步骤)。</p>
<p>(2)远方服务器回应查询<br />将查询结果回应给客户，并同时将结果存储一个备份在自己的缓存里面，如果在存放时间尚未过时之前再接到相同的查询，则以存放于缓存里面的资料来做回应。<br /><span id="more-353"></span><br />DNS服务器分类<br />1.主域名服务器(master)<br />主域名服务器是一个域或区域的管理权威。这个服务器的主要责任就是解析域或区域内的所有主机的名称。可以使用一个或多个辅域名服务器作为主域名服务器的备份。</p>
<p>2.辅域名服务器(slave)<br />辅域名服务器是备份服务器。它们不是域区源数据存放的地方，但它们也授权响应域名的查询。辅域名服务器通常从域的主域名服务器获得域区数据。辅服务器也被称为从属服务器。</p>
<p>3.唯高速缓存服务器(hint)<br />缓存服务器负责临时存储主域名服务器己解析过域名记录。</p>
<p>打算用两个vps，一个做主域名服务器，一个做辅助域名服务器。系统用的是CentOS5.6(32bit)。</p>
<p>Linux上常用的是bind，包括以下软件包：<br />bind bind-libs bind-utils bind-chroot caching-nameserver</p>
<p>bind是DNS服务器软件<br />bind-libs是bind使用的库<br />bind-utils是bind查询工具<br />caching-nameserver唯高速缓存服务器</p>
<p>一、安装DNS服务器</p>
<p>1.开始安装DNS服务器：</p>
<blockquote>
<p>yum install bind bind-libs bind-utils bind-chroot</p>
<div class="quote_bottom"></div></blockquote>
<p>这里更新源上的版本是bind 9.3.6-16.P1.el5，DNS的配置文件放在/var/named/chroot目录下。</p>
<p>2.复制配置规范文件：</p>
<blockquote>
<p>cp /usr/share/doc/bind-9.3.6/sample/etc/* /var/named/chroot/etc<br />cp -a /usr/share/doc/bind-9.3.6/sample/var/named/* /var/named/chroot/var/named</p>
<div class="quote_bottom"></div></blockquote>
<p>相关配置文件说明：<br />主配置文件：/var/named/chroot/etc/named.conf 设置一般的named参数，指向该服务器使用的域数据库的信息源。<br />根域名服务器指向文件：/var/named/chroot/var/named/named.root 指向根域名服务器，用于唯高速缓存服务器的初始配置。<br />正向解析文件：/var/named/chroot/var/named/localhost.zone localhost区文件，用于将名字localhost转换为本地回送IP地址(127.0.0.1)，正向解析。<br />反向解析文件：/var/named/chroot/var/named/named.local localhost区文件，用于将本地回送IP地址(127.0.0.1)转换成名字localhost，反向解析。</p>
<p>3.尝试启动DNS服务器：</p>
<blockquote>
<p>service named restart</p>
<div class="quote_bottom"></div></blockquote>
<p>显示：</p>
<blockquote>
<p>Stopping named: [ OK ]<br />Starting named: [FAILED]</p>
<div class="quote_bottom"></div></blockquote>
<p>查看系统日志：</p>
<blockquote>
<p>cat /var/log/messages |grep named</p>
<div class="quote_bottom"></div></blockquote>
<p>发现错误：</p>
<blockquote>
<p>my named[1384]: /etc/named.conf:100 configuring key &#8216;ddns_key&#8217;: bad base64 encoding</p>
<div class="quote_bottom"></div></blockquote>
<p>是没有ddns_key造成的，执行/usr/sbin/dns-keygen来生成TSIG keys。然后替换named.conf中<br />secret &#8220;use /usr/sbin/dns-keygen to generate TSIG keys&#8221;;引号内的内容。</p>
<blockquote>
<p>/usr/sbin/dns-keygen<br />5L6JQccNVZ53CHA3iW4VnPgDZXdcX3U3pnhL2txKUsaPqwBRddE58LpA7uiI</p>
<div class="quote_bottom"></div></blockquote>
<p>编辑/var/named/chroot/etc/named.conf文件，添加ddns_key：</p>
<blockquote>
<p>vim /var/named/chroot/etc/named.conf</p>
<div class="quote_bottom"></div></blockquote>
<p>修改如下：</p>
<blockquote>
<p>key ddns_key<br />{<br />algorithm hmac-md5;<br />secret &#8220;5L6JQccNVZ53CHA3iW4VnPgDZXdcX3U3pnhL2txKUsaPqwBRddE58LpA7uiI&#8221;;<br />};</p>
<div class="quote_bottom"></div></blockquote>
<p>添加好ddns_key后，重启named服务成功，但是DNS服务器还不能使用，需要进行其他配置。</p>
<p>4.我们看到在named.conf文件中有这样几个区块：<br />options //设置data相关文件，对data/目录要有写的权限<br />logging //debug log<br />view &#8220;localhost_resolver&#8221; //本地解析，caching only nameserver<br />view &#8220;internal&#8221; //限定同一个局域网的内部用户使用<br />key ddns_key //设置ddns key<br />view &#8220;external&#8221; //限制外部用户请求这个DNS服务器</p>
<p>5.首先设置/var/named/chroot/var/named/data目录的用户和组为named:named：</p>
<blockquote>
<p>cd /var/named/chroot/var/named<br />chown named:named data</p>
<div class="quote_bottom"></div></blockquote>
<p>6.为/var/named/chroot/var/named目录添加写权限：</p>
<blockquote>
<p>cd /var/named/chroot/var<br />chmod g+w named</p>
<div class="quote_bottom"></div></blockquote>
<p>如果这个目录没有写权限的话，named服务可以启动，但是系统日志里会有，&#8221;the working directory is not writable&#8221;错误。</p>
<p>7.修改name.conf中view &#8220;external&#8221;区域内设置：</p>
<blockquote>
<p>vim /var/named/chroot/etc/named.conf<br />recursion yes; //打开递归<br />allow-query-cache { any; }; //允许查询缓存</p>
<div class="quote_bottom"></div></blockquote>
<p>8.再重启DNS服务器：</p>
<blockquote>
<p>service named restart<br />Stopping named: [ OK ]<br />Starting named: [ OK ]</p>
<div class="quote_bottom"></div></blockquote>
<p>启动成功。</p>
<p>此时查看日志：</p>
<blockquote>
<p>tail -30 /var/log/messages |grep named</p>
<div class="quote_bottom"></div></blockquote>
<p>没有报错即可。</p>
<p>9.设置开机自启动：</p>
<blockquote>
<p>chkconfig &#8211;level named 345 on</p>
<div class="quote_bottom"></div></blockquote>
<p>此时这个DNS服务器就可以使用了。<br />windows系统下修改网络连接里的DNS服务器地址用ping、nslookup命令测试。<br />linux系统修改/etc/resolv.conf里的nameserver地址，使用host、dig、nslookup命令测试。</p>
<p>二、配置区域主域名服务器<br />以test.com域为例子：<br />www.test.com 192.168.1.100 //web服务<br />ns.test.com 192.168.1.101 //域名服务<br />work.test.com 192.168.1.100<br />mail.test.com 192.168.1.103 //邮件服务<br />ftp.test.com 192.168.1.104 //文件服务</p>
<p>1.编辑/var/named/chroot/etc/named.rfc1912.zones文件：</p>
<blockquote>
<p>vim /var/named/chroot/etc/named.rfc1912.zones</p>
<div class="quote_bottom"></div></blockquote>
<p>在最后添加正向解析区域test.com：</p>
<blockquote>
<p>zone &#8220;test.com&#8221; IN {<br />type master;<br />file &#8220;test.com.zone&#8221;;<br />allow-update { none; };<br />};</p>
<div class="quote_bottom"></div></blockquote>
<p>然后添加反向解析区域1.168.192.in-addr.arpa：</p>
<blockquote>
<p>zone &#8220;1.168.192.in-addr.arpa&#8221; IN {<br />type master;<br />file &#8220;test.com.resv&#8221;;<br />allow-update { none; };<br />};</p>
<div class="quote_bottom"></div></blockquote>
<p>2.创建正向解析数据文件/var/named/chroot/var/named/test.com.zone：</p>
<blockquote>
<p>cd /var/named/chroot/var/named<br />cp localhost.zone test.com.zone</p>
<div class="quote_bottom"></div></blockquote>
<p>3.编辑test.com.zone文件：</p>
<blockquote>
<p>vim test.com.zone</p>
<div class="quote_bottom"></div></blockquote>
<p>修改如下</p>
<blockquote>
<p>$TTL　　86400<br />@　　　　IN SOA @　　root (<br />42　　　　　; serial (d. adams)<br />3H　　　　　; refresh<br />15M　　　　　; retry<br />1W　　　　　; expiry<br />1D )　　　　　; minimum</p>
<p>IN NS　　　　　ns.test.com.<br />www　　　IN A　　　　　192.168.1.100<br />ns　　　　IN A　　　　　192.168.1.101<br />work　　　IN CNAME　　　www<br />mail　　　　IN A　　　　　192.168.1.103<br />@　　　　　IN MX 10　　　mail.test.com.<br />ftp　　　　　IN A　　　　　192.168.1.104</p>
<div class="quote_bottom"></div></blockquote>
<p>4.创建反向解析数据文件/var/named/chroot/var/named/test.com.resv：</p>
<blockquote>
<p>cp named.local test.com.resv</p>
<div class="quote_bottom"></div></blockquote>
<p>5.编辑test.com.resv文件：</p>
<blockquote>
<p>vim test.com.resv</p>
<div class="quote_bottom"></div></blockquote>
<p>修改如下</p>
<blockquote>
<p>$TTL　　86400<br />@　　IN　　SOA　　localhost. root.localhost. (<br />1997022700 ; Serial<br />28800　　; Refresh<br />14400　　; Retry<br />3600000　; Expire<br />86400 )　; Minimum<br />IN　　NS　　ns.test.com.<br />100　　IN　　PTR　　www.test.com.<br />101　　IN　　PTR　　ns.test.com.<br />103　　IN　　PTR　　mail.test.com.<br />104　　IN　　PTR　　ftp.test.com.</p>
<div class="quote_bottom"></div></blockquote>
<p>6.编辑named.conf，将test.com区域加入到view &#8220;external&#8221;中：</p>
<blockquote>
<p>vim /var/named/chroot/etc/named.conf</p>
<div class="quote_bottom"></div></blockquote>
<p>由于zone &#8220;test.com&#8221;是写在named.rfc1912.zones文件中的，在view &#8220;external&#8221;中添加：</p>
<blockquote>
<p>include &#8220;/etc/named.rfc1912.zones&#8221;;</p>
<div class="quote_bottom"></div></blockquote>
<p>7.重启服务：</p>
<blockquote>
<p>service named restart</p>
<div class="quote_bottom"></div></blockquote>
<p>此时客户端请求解析test.com域会直接使用设置的参数，不会向根去询问。</p>
<p>三、配置辅域名服务器<br />配置辅域名服务器相对来说简单不少，只要主配置文件中加入一个区域，然后指定可以更新信息的主域名服务器就可以了，无需配置区域数据库文件。</p>
<p>1.编辑/var/named/chroot/etc/named.rfc1912.zones文件：</p>
<blockquote>
<p>vim /var/named/chroot/etc/named.rfc1912.zones</p>
<div class="quote_bottom"></div></blockquote>
<p>在最后添加正向解析区域test.com：</p>
<blockquote>
<p>zone &#8220;test.com&#8221; IN {<br />type slave;<br />file &#8220;slaves/test.com.hosts&#8221;;<br />masters { 1.1.1.1; }; //这里填主DNS服务器IP<br />};</p>
<div class="quote_bottom"></div></blockquote>
<p>然后添加反向解析区域1.168.192.in-addr.arpa：</p>
<blockquote>
<p>zone &#8220;1.168.192.in-addr.arpa&#8221; IN {<br />type slave;<br />file &#8220;slaves/test.com.resv&#8221;;<br />masters { 1.1.1.1; }; //这里填主DNS服务器IP<br />};</p>
<div class="quote_bottom"></div></blockquote>
<p>2.编辑named.conf，将named.rfc1912.zones文件加入到view &#8220;external&#8221;中：</p>
<blockquote>
<p>vim /var/named/chroot/etc/named.conf</p>
<div class="quote_bottom"></div></blockquote>
<p>在view &#8220;external&#8221;中添加：</p>
<blockquote>
<p>include &#8220;/etc/named.rfc1912.zones&#8221;;</p>
<div class="quote_bottom"></div></blockquote>
<p>3.设置/var/named/chroot/var/named/slaves目录用户和组为root:named：</p>
<blockquote>
<p>cd /var/named/chroot/var/named<br />chown root:named slaves</p>
<div class="quote_bottom"></div></blockquote>
<p>为/var/named/chroot/var/named/slaves添加写权限：</p>
<blockquote>
<p>chmod g+w slaves</p>
<div class="quote_bottom"></div></blockquote>
<p>named用户对slaves目录没有写权限会同步不了主域名服务器上的解析数据文件。</p>
<p>4.重启DNS服务：</p>
<blockquote>
<p>service named restart</p>
<div class="quote_bottom"></div></blockquote>
<p>5.查看/var/named/chroot/var/named/slaves目录：<br />产生test.com.hosts test.com.resv文件，说明更新成功。</p>
<p>需要注意：<br />1)主从服务器中正/反向zone名称必须一致。<br />2)从服务器中file可指定相对路径,也可指定绝对路径。<br />3)需将辅助DNS服务器的首选DNS服务器指向为主DNS服务器。</p>
<p sizcache="15" sizset="8">参考资料：<br /><a href="http://www.cnblogs.com/cabin/archive/2010/10/18/1848168.html" target="_blank" jquery16109821211929876195="14"><font color="#2089cc">http://www.cnblogs.com/cabin/archive/2010/10/18/1848168.html</font></a><br /><a href="http://www.linux.gov.cn/netweb/" target="_blank" jquery16109821211929876195="15"><font color="#2089cc">http://www.linux.gov.cn/netweb/</font></a><!-- PHP 5.x --></p><br /><a href="http://blog.iuhux.com/2011/08/11/%E5%9C%A8centos%E7%9A%84vps%E4%B8%8A%E5%AE%89%E8%A3%85dns%E6%9C%8D%E5%8A%A1%E5%99%A8/">http://blog.iuhux.com/2011/08/11/%E5%9C%A8centos%E7%9A%84vps%E4%B8%8A%E5%AE%89%E8%A3%85dns%E6%9C%8D%E5%8A%A1%E5%99%A8/</a><br /><br /><br /><img src ="http://www.blogjava.net/Alpha/aggbug/364448.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Alpha/" target="_blank">Alpha</a> 2011-11-21 16:25 <a href="http://www.blogjava.net/Alpha/archive/2011/11/21/364448.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>linux rsync同步设置详细指南</title><link>http://www.blogjava.net/Alpha/archive/2011/06/30/353439.html</link><dc:creator>Alpha</dc:creator><author>Alpha</author><pubDate>Thu, 30 Jun 2011 07:04:00 GMT</pubDate><guid>http://www.blogjava.net/Alpha/archive/2011/06/30/353439.html</guid><wfw:comment>http://www.blogjava.net/Alpha/comments/353439.html</wfw:comment><comments>http://www.blogjava.net/Alpha/archive/2011/06/30/353439.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.blogjava.net/Alpha/comments/commentRss/353439.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Alpha/services/trackbacks/353439.html</trackback:ping><description><![CDATA[<a href="https://promotion.aliyun.com/ntms/act/ambassador/sharetouser.html?userCode=dmb0rzcj&amp;amp;utm_source=dmb0rzcj" target="_blank"><img src="http://www.blogjava.net/images/blogjava_net/alpha/760-130.jpg" alt="阿里云服务器优惠券" /></a>
<br /><br /><strong>配置rsync 同步数据&nbsp;&nbsp;&nbsp;&nbsp; rpm包安装rsync及配置<br /><br />
</strong>[root@Hammer home]# rpm -qa |grep rsync&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #检查系统是否安装了rsync软件包<br />
rsync-2.6.8-3.1<br />
[root@Hammer CentOS]# rpm -ivh rsync-2.6.8-3.1.i386.rpm # 如果没有安装则手动安装<br />
<br />
[root@test rsync-3.0.4]# vim /etc/xinetd.d/rsync <br />
<br />
<br />
1 配置rsync servervi /etc/xinetd.d/rsync<br />
将disable=yes改为no<br />
<br />
service rsync<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; disable = no<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; socket_type&nbsp;&nbsp;&nbsp;&nbsp; = stream<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; wait&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = no<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; user&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = root<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; server&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = /usr/bin/rsync<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; server_args&nbsp;&nbsp;&nbsp;&nbsp; = --daemon<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; log_on_failure&nbsp; += USERID<br />
}<br />
<br />
2 配置rsync自动启动<br />
[root@test etc]# chkconfig rsync on<br />
[root@test etc]# chkconfig rsync --list<br />
rsync&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; on<br />
<br />
3 配置rsyncd.conf <br />
[root@test etc]# vim rsyncd.conf <br />
<br />
uid = root<br />
gid = root<br />
use chroot = no<br />
max connections = 4<br />
strict modes = yes<br />
port = 873<br />
pid file = /var/run/rsyncd.pid<br />
lock file = /var/run/rsync.lock<br />
log file = /var/log/rsyncd.log<br />
<br />
[backup]<br />
path = /srv<br />
comment = This is test<br />
auth users = scihoo<br />
uid = root<br />
gid = root<br />
secrets file = /home/rsync.ps<br />
read only = no<br />
list = no<br />
<br />
<br />
4 确保etc/services中rsync端口号正确<br />
[root@test etc]# vim /etc/services<br />
rsync&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 873/tcp&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # rsync<br />
rsync&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 873/udp&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # rsync<br />
<br />
5 配置rsync密码(在上边的配置文件中已经写好路径)/home/rsync.ps(名字随便写，只要和上边配置文件里的一致即可)，格式(一行一个用户)<br />
[root@test etc]# vi /home/rsync.ps <br />
scihoo:scihoo<br />
<br />
6 配置rsync密码文件权限<br />
[root@test home]# chown root.root rsync.ps <br />
[root@test home]# chmod 400 rsync.ps <br />
<br />
7 启动配置<br />
[root@test home]# /etc/init.d/xinetd restart<br />
Stopping xinetd:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [&nbsp; OK&nbsp; ]<br />
Starting xinetd:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [&nbsp; OK&nbsp; ]<br />
<br />
8 如果xinetd没有的话，需要安装一下<br />
[root@test home]# yum -y install xinetd<br />
<br />
<br />
&nbsp;启动rsync server<br />
&nbsp; RSYNC服务端启动的两种方法<br />
9、启动rsync服务端（独立启动）<br />
[root@test home]# /usr/bin/rsync --daemon<br />
<br />
10、启动rsync服务端 （有xinetd超级进程启动）<br />
[root@test home]# /etc/init.d/xinetd reload<br />
<br />
11&nbsp; 加入rc.local<br />
在各种操作系统中，rc文件存放位置不尽相同，可以修改使系统启动时把rsync --daemon加载进去。<br />
[root@test home]# vi /etc/rc.local<br />
/usr/local/rsync &#8211;daemon&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #加入一行<br />
<br />
12 检查rsync是否启动<br />
[root@test home]# lsof -i :873<br />
COMMAND&nbsp; PID USER&nbsp;&nbsp; FD&nbsp;&nbsp; TYPE DEVICE SIZE NODE NAME<br />
xinetd&nbsp; 4396 root&nbsp;&nbsp;&nbsp; 5u&nbsp; IPv4 633387&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TCP *:rsync (LISTEN)<br />
<br />
<br />
<br />
<br />
客户端配置<br />
1 配置三个过程就可以了<br />
&nbsp; 1.1 设定密码文件<br />
&nbsp; 1.2 测试rsync执行指令<br />
&nbsp; 1.3 将rsync指令放入工作排程（crontab）<br />
[root@aj1 home]# vi /etc/xinetd.d/rsync <br />
<br />
# default: off<br />
# description: The rsync server is a good addition to an ftp server, as it \<br />
#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; allows crc checksumming etc.<br />
service rsync<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; disable = yes<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; socket_type&nbsp;&nbsp;&nbsp;&nbsp; = stream<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; wait&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = no<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; user&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = root<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; server&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = /usr/bin/rsync<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; server_args&nbsp;&nbsp;&nbsp;&nbsp; = --daemon<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; log_on_failure&nbsp; += USERID<br />
}<br />
<br />
1.1&nbsp; 配置密码文件&nbsp; (注：为了安全，设定密码档案的属性为：600。rsync.ps的密码一定要和Rsync Server密码设定案里的密码一样)<br />
[root@aj1 home]# vi rsync.ps <br />
sciooo<br />
<br />
[root@aj1 home]# chown root.root .rsync.ps&nbsp;&nbsp; # 注意必须给权限<br />
[root@aj1 home]# chmod 600 .rsync.ps&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # 必须修改权限<br />
<br />
1.2 从服务器上下载文件<br />
[root@aj1 rsync-3.0.4]# rsync -avz --password-file=/home/rsync.ps scihoo@192.168.0.206::backup /home/<br />
<br />
&nbsp;&nbsp; 从本地上传到服务器上去<br />
[root@aj1 rsync-3.0.4]# rsync -avz --password-file=/home/rsync.ps /home scihoo@192.168.0.206::backup<br />
<br />
<a href="http://www.linuxsir.org/main/?q=node/256#5.1">http://www.linuxsir.org/main/?q=node/256#5.1</a><br />
<br />
<a href="http://os.51cto.com/art/201101/243374.htm">http://os.51cto.com/art/201101/243374.htm<br /></a><br />
<a href="https://promotion.aliyun.com/ntms/act/ambassador/sharetouser.html?userCode=dmb0rzcj&amp;amp;utm_source=dmb0rzcj" target="_blank"><img src="http://www.blogjava.net/images/blogjava_net/alpha/760-130.jpg" alt="阿里云服务器优惠券" /></a><img src ="http://www.blogjava.net/Alpha/aggbug/353439.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Alpha/" target="_blank">Alpha</a> 2011-06-30 15:04 <a href="http://www.blogjava.net/Alpha/archive/2011/06/30/353439.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Gentoo安装配置过程与总结</title><link>http://www.blogjava.net/Alpha/archive/2011/06/28/353270.html</link><dc:creator>Alpha</dc:creator><author>Alpha</author><pubDate>Tue, 28 Jun 2011 08:03:00 GMT</pubDate><guid>http://www.blogjava.net/Alpha/archive/2011/06/28/353270.html</guid><wfw:comment>http://www.blogjava.net/Alpha/comments/353270.html</wfw:comment><comments>http://www.blogjava.net/Alpha/archive/2011/06/28/353270.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/Alpha/comments/commentRss/353270.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Alpha/services/trackbacks/353270.html</trackback:ping><description><![CDATA[<p>前些时间在<a title="VMware" href="http://www.ha97.com/tag/vmware">VMware</a>上安装了<a title="Gentoo" href="http://www.ha97.com/tag/gentoo">Gentoo</a> <a title="Linux" href="http://www.ha97.com/category/linux">Linux</a>，用了当前最新版的<a href="http://www.ha97.com/tag/gentoo" target="_blank">Gentoo</a>，安装过程记录下来了，但一直没有整理到blog上。今天重新整理一下，写出来与大家分享和备用。接触Gentoo不久，对这个版本还不是很熟。</p>
<p><strong>与其他Linux发行版相比，Gentoo确实有其优势的地方，如内核基于源代码编译，可以自动优化与定制，升级方便等！</strong></p>
<p>关于Gentoo发行版的介绍请看：<a title="Permalink to  全球最受欢迎的十大Linux发行版（图）" href="http://www.ha97.com/883.html" rel="nofollow" target="_blank">全球最受欢迎的十大Linux发行版（图）</a></p>
<blockquote>
<p>Host机环境：Win2008 + VMware 7.1</p>
</blockquote>
<p><strong>下载安装包</strong></p>
<p>下载安装 CD 和 stage3 包：</p>
<p><a href="http://www.gentoo.org/main/en/where.xml" rel="nofollow" target="_blank">http://www.gentoo.org/main/en/where.xml</a><br />
<span id="more-2333"></span><br />
我用的是 x86平台的：</p>
<blockquote>
<p>http://distfiles.gentoo.org/releases/x86/autobuilds/current-iso/</p>
<p>wget -c http://distfiles.gentoo.org/releases/x86/autobuilds/current-iso/install-x86-minimal-20100216.iso</p>
<p>wget -c http://distfiles.gentoo.org/releases/x86/autobuilds/current-iso/stage3-i686-20100216.tar.bz2</p>
<p>wget -c http://distfiles.gentoo.org/snapshots/portage-20100617.tar.bz2</p>
<p>最新的stage3包在这里：http://distfiles.gentoo.org/releases/x86/autobuilds/current-stage3/</p>
</blockquote>
<p><strong>开始安装</strong></p>
<p>将安装 CD 插入虚拟机，默认引导进入终端。</p>
<p>先配置好网络，之后的操作可以全部通过 ssh 连接来操作。</p>
<blockquote>
<p>ifconfig eth0 192.168.80.133（我这里VM已经自动分配了这个内网IP了。）<br />
echo nameserver <a title="8.8.8.8" href="http://www.ha97.com/tag/8-8-8-8">8.8.8.8</a> &gt; /etc/resolv.conf<br />
echo nameserver 8.8.4.4 &gt; /etc/resolv.conf</p>
</blockquote>
<p><a href="http://www.ha97.com/wp-content/uploads/2010/07/resolv.jpg"><img class="alignnone size-full wp-image-2341" title="resolv" alt="" src="http://www.ha97.com/wp-content/uploads/2010/07/resolv.jpg" width="228" height="43" /></a></p>
<p>设置 root 用户密码：</p>
<blockquote>
<p>passwd root</p>
</blockquote>
<p>启动 sshd 服务：</p>
<blockquote>
<p>/etc/init.d/sshd start</p>
</blockquote>
<p>在<a title="windows" href="http://www.ha97.com/category/microsoft/windows">windows</a>上用SecureCRT或PuTTY连接虚拟机操作。</p>
<p><strong>磁盘分区</strong></p>
<p>先分区，建议使用cfdisk，先查看分区情况：</p>
<blockquote>
<p>cfdisk /dev/sda</p>
</blockquote>
<p>我的分区表(/boot分区我单独分出来)，/dev/sda2是/根分区，/dev/sda3是swap分区：</p>
<p><a href="http://www.ha97.com/wp-content/uploads/2010/07/cfdisk1.jpg"><img class="alignnone size-full wp-image-2334" title="cfdisk1" alt="" src="http://www.ha97.com/wp-content/uploads/2010/07/cfdisk1.jpg" width="724" height="473" /></a></p>
<p>格式化分区：</p>
<blockquote>
<p>mkfs.ext3 /dev/sda1<br />
mkfs.ext3 /dev/sda2<br />
mkswap /dev/sda3</p>
</blockquote>
<p><a href="http://www.ha97.com/wp-content/uploads/2010/07/cfdisk2.jpg"><img class="alignnone size-full wp-image-2335" title="cfdisk2" alt="" src="http://www.ha97.com/wp-content/uploads/2010/07/cfdisk2.jpg" width="721" height="476" /></a></p>
<p>激活swap交换分区：</p>
<blockquote>
<p>swapon /dev/sda3</p>
</blockquote>
<p>将分区信息写入fstab配置文件：（注：gentoo-minimal没带vi编辑器，只带有nano编辑器。）</p>
<blockquote>
<p>nano -w /etc/fstab</p>
</blockquote>
<p>写入下面的分区信息：</p>
<blockquote>
<p>/dev/sda1 /boot ext3 noauto,noatime 1 2<br />
/dev/sda2 / ext3 noatime 0 1<br />
/dev/sda3 none swap sw 0 0</p>
</blockquote>
<p><strong>解压 stage3 和 portage</strong></p>
<p>创建基本目录结构：</p>
<blockquote>
<p>mount /dev/sda2 /mnt/gentoo<br />
mkdir /mnt/gentoo/boot<br />
mount /dev/sda1 /mnt/gentoo/boot<br />
cd /mnt/gentoo</p>
</blockquote>
<p>使用WinSCP或CuteFTP 上传 stage3 软件包到 /mnt/gentoo下，然后解压：</p>
<p><a href="http://www.ha97.com/wp-content/uploads/2010/07/WinSCP.jpg"><img class="alignnone size-full wp-image-2342" title="WinSCP" alt="" src="http://www.ha97.com/wp-content/uploads/2010/07/WinSCP.jpg" width="702" height="476" /></a></p>
<p>（注：上面标签的地址之前没改过来，实际地址是192.168.80.133）</p>
<blockquote>
<p>tar jxvf stage3-i686-20100608.tar.bz2<br />
rm -f stage3-i686-20100608.tar.bz2</p>
</blockquote>
<p>上传 portage 包到 /mnt/gentoo/usr，然后解压：</p>
<blockquote>
<p>tar jxvf portage-20100617.tar.bz2<br />
rm -f portage-20100617.tar.bz2</p>
</blockquote>
<p>切换系统</p>
<blockquote>
<p>cd /<br />
mount -t proc proc /mnt/gentoo/proc<br />
mount -o bind /dev /mnt/gentoo/dev<br />
cp -L /etc/resolv.conf /mnt/gentoo/etc/<br />
chroot /mnt/gentoo /bin/bash<br />
env-<a title="update" href="http://www.ha97.com/tag/update">update</a> &amp;&amp; <a title="source" href="http://www.ha97.com/tag/source">source</a> /etc/profile</p>
</blockquote>
<p>主机域名设置</p>
<blockquote>
<p>cd /etc<br />
echo &#8220;127.0.0.1 gentoo.at.home gentoo localhost&#8221; &gt; hosts<br />
sed -i -e &#8217;s/HOSTNAME.*/HOSTNAME=&#8221;gentoo&#8221;/&#8217; conf.d/hostname<br />
hostname gentoo</p>
</blockquote>
<p><strong>编译安装内核</strong></p>
<blockquote>
<p>lsmod</p>
</blockquote>
<p>找到网卡驱动模块：</p>
<blockquote>
<p>floppy 55736 0<br />
rtc 7960 0<br />
tg3 103228 0<br />
libphy 24952 1 tg3<br />
e1000 114636 0<br />
fuse 59344 0<br />
jfs 153104 0<br />
raid10 20648 0</p>
</blockquote>
<p>下载源码，配置内核：</p>
<blockquote>
<p><a title="emerge" href="http://www.ha97.com/tag/emerge">emerge</a> &#8211;sync<br />
emerge gentoo-sources<br />
cd /usr/src/linux<br />
make menuconfig</p>
</blockquote>
<p><a href="http://www.ha97.com/wp-content/uploads/2010/07/Kernel.jpg"><img class="alignnone size-full wp-image-2339" title="Kernel" alt="" src="http://www.ha97.com/wp-content/uploads/2010/07/Kernel.jpg" width="768" height="470" /></a></p>
<p>在配置界面输入/e1000，搜索 e1000，找到驱动所在位置：</p>
<p><a href="http://www.ha97.com/wp-content/uploads/2010/07/e1000.jpg"><img class="alignnone size-full wp-image-2336" title="e1000" alt="" src="http://www.ha97.com/wp-content/uploads/2010/07/e1000.jpg" width="837" height="359" /></a></p>
<blockquote>
<p>| Symbol: E1000 [=y]<br />
| Prompt: Intel(R) PRO/1000 Gigabit Ethernet support<br />
| Defined at drivers/net/Kconfig:2020<br />
| Depends on: NETDEVICES &amp;&amp; NETDEV_1000 &amp;&amp; PCI<br />
| Location:<br />
| -&gt; Device Drivers<br />
| -&gt; Network device support (NETDEVICES [=y])<br />
| -&gt; Ethernet (1000 Mbit) (NETDEV_1000 [=y])</p>
</blockquote>
<p>（<strong>这里一定要注意，选对内核的网卡驱动！</strong>）</p>
<p>虚拟机的硬盘使用的 SCSI 适配器为 LSI Logic。</p>
<p>需要增加对 Fusion MPT base driver 的支持（见 dmesg 日志）：</p>
<p><a href="http://www.ha97.com/wp-content/uploads/2010/07/Fusion.jpg"><img class="alignnone size-full wp-image-2337" title="Fusion" alt="" src="http://www.ha97.com/wp-content/uploads/2010/07/Fusion.jpg" width="601" height="257" /></a></p>
<blockquote>
<p>Device Drivers &#8212;&gt;<br />
&#8212; Fusion MPT device support<br />
&lt;*&gt; Fusion MPT ScsiHost drivers for SPI<br />
&lt;*&gt; Fusion MPT ScsiHost drivers for FC<br />
&lt;*&gt; Fusion MPT ScsiHost drivers for SAS<br />
(128) Maximum number of scatter gather entries (16 &#8211; 128)<br />
&lt;*&gt; Fusion MPT misc device (ioctl) driver</p>
</blockquote>
<p>必须添加这个驱动，否则系统启动时可能出现类似以下错误：</p>
<blockquote>
<p>VFS: Unable to mount root fs via NFS, trying floppy.<br />
VFS: Cannot open root device &#8220;sda2&#8221;or unknown-block(2,0)<br />
Please append a correct &#8220;root=&#8221; boot option; here are the available partitions:<br />
0b00 1048575 sr0 driver: sr<br />
Kernel panic &#8211; not syncing: VFS: Unable to mount root fs on unknown-block(2,0)</p>
</blockquote>
<p>增加对 ext4文件系统的支持：</p>
<blockquote>
<p>File systems &#8212;&gt;<br />
&lt;*&gt; Second extended fs support<br />
[*] Ext4 extended attributes<br />
[*] Ext4 POSIX Access Control Lists<br />
[*] Ext4 <a title="Security" href="http://www.ha97.com/category/security">Security</a> Labels<br />
[*] Ext4 debugging support</p>
</blockquote>
<p>开始编译内核：</p>
<blockquote>
<p>make -j2<br />
make modules_install<br />
cp arch/x86/boot/bzImage /boot/kernel</p>
</blockquote>
<p><a href="http://www.ha97.com/wp-content/uploads/2010/07/Kernel-install.jpg"><img class="alignnone size-full wp-image-2340" title="Kernel-install" alt="" src="http://www.ha97.com/wp-content/uploads/2010/07/Kernel-install.jpg" width="447" height="453" /></a></p>
<p>安装配置 grub</p>
<blockquote>
<p>emerge grub</p>
</blockquote>
<blockquote>
<p>grub<br />
&gt; root (hd0,0)<br />
&gt; setup (hd0)<br />
&gt; quit</p>
</blockquote>
<p>编辑启动配置文件grub.conf：</p>
<blockquote>
<p>nano -w /boot/grub/grub.conf</p>
</blockquote>
<p>grub.conf 内容如下：</p>
<blockquote>
<p>default 0<br />
timeout 9</p>
<p>title Gentoo<br />
root (hd0,0)<br />
kernel /boot/kernel root=/dev/sda2</p>
</blockquote>
<p><strong>系统配置</strong></p>
<p>文件系统挂载点：</p>
<blockquote>
<p>nano -w /etc/fstab<br />
/dev/sda1 /boot ext3 noauto,noatime 1 2<br />
/dev/sda2 / ext3 noatime 0 1<br />
/dev/sda3 none swap sw 0 0</p>
</blockquote>
<p>网络设置：</p>
<blockquote>
<p>echo &#8216;config_eth0=( &#8220;192.168.80.133&#8243; )&#8217; &gt;&gt; /etc/conf.d/net<br />
echo &#8216;routes_eth0=( &#8220;default via 192.168.80.2&#8243; )&#8217; &gt;&gt; /etc/conf.d/net</p>
</blockquote>
<p>SSH服务设置：</p>
<blockquote>
<p>rc-update add sshd default</p>
</blockquote>
<p>时区设置：</p>
<blockquote>
<p>cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime<br />
nano -w /etc/conf.d/clock</p>
</blockquote>
<p>设置 root 密码：</p>
<blockquote>
<p>passwd root</p>
</blockquote>
<p>重启，完成安装</p>
<blockquote>
<p>exit<br />
umount /mnt/gentoo/dev /mnt/gentoo/proc /mnt/gentoo/boot /mnt/gentoo<br />
reboot</p>
</blockquote>
<p>如图，Gentoo启动成功：</p>
<p><a href="http://www.ha97.com/wp-content/uploads/2010/07/gentoo-boot.jpg"><img class="alignnone size-full wp-image-2338" title="gentoo-boot" alt="" src="http://www.ha97.com/wp-content/uploads/2010/07/gentoo-boot.jpg" width="772" height="465" /></a></p>
<p>OK，完成！</p>
附 make.conf<br />
<br />
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /><span style="color: #000000">CFLAGS</span><span style="color: #000000">=</span><span style="color: #000000; font-weight: bold">"</span><span style="color: #000000; font-weight: bold">-march=native&nbsp;-O2&nbsp;-pipe&nbsp;-fomit-frame-pointer&nbsp;-mmmx&nbsp;-msse&nbsp;-msse2</span><span style="color: #000000; font-weight: bold">"</span><span style="color: #000000"><br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />CXXFLAGS</span><span style="color: #000000">=</span><span style="color: #000000; font-weight: bold">"</span><span style="color: #000000; font-weight: bold">${CFLAGS}</span><span style="color: #000000; font-weight: bold">"</span><span style="color: #000000"><br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />MAKEOPTS</span><span style="color: #000000">=</span><span style="color: #000000; font-weight: bold">"</span><span style="color: #000000; font-weight: bold">-j5</span><span style="color: #000000; font-weight: bold">"</span><span style="color: #000000"><br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />CHOST</span><span style="color: #000000">=</span><span style="color: #000000; font-weight: bold">"</span><span style="color: #000000; font-weight: bold">x86_64-pc-linux-gnu</span><span style="color: #000000; font-weight: bold">"</span><span style="color: #000000"><br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="color: #0000ff">USE</span><span style="color: #000000">=</span><span style="color: #000000; font-weight: bold">"</span><span style="color: #000000; font-weight: bold">jpeg&nbsp;ssl&nbsp;nls&nbsp;unicode&nbsp;cjk&nbsp;zh&nbsp;nptl&nbsp;nptlonly&nbsp;mmx&nbsp;sse&nbsp;sse2&nbsp;-X&nbsp;-gtk&nbsp;-gnome&nbsp;\<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sasl&nbsp;maildir&nbsp;imap&nbsp;libwww&nbsp;mysql&nbsp;xml&nbsp;sockets&nbsp;vhosts&nbsp;snmp&nbsp;\<br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-lvm&nbsp;-lvm1&nbsp;-kde&nbsp;-qt&nbsp;-cups&nbsp;-alsa&nbsp;-apache</span><span style="color: #000000; font-weight: bold">"</span><span style="color: #000000"><br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />ACCEPT_KEYWORDS</span><span style="color: #000000">=</span><span style="color: #000000; font-weight: bold">"</span><span style="color: #000000; font-weight: bold">~amd64</span><span style="color: #000000; font-weight: bold">"</span><span style="color: #000000"><br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />LINGUAS</span><span style="color: #000000">=</span><span style="color: #000000; font-weight: bold">"</span><span style="color: #000000; font-weight: bold">zh_CN</span><span style="color: #000000; font-weight: bold">"</span><span style="color: #000000"><br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />SYNC</span><span style="color: #000000">=</span><span style="color: #000000; font-weight: bold">"</span><span style="color: #000000; font-weight: bold">rsync://rsync.asia.gentoo.org/gentoo-portage</span><span style="color: #000000; font-weight: bold">"</span><span style="color: #000000"><br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />GENTOO_MIRRORS</span><span style="color: #000000">=</span><span style="color: #000000; font-weight: bold">"</span><span style="color: #000000; font-weight: bold">http://mirrors.163.com/gentoo&nbsp;ftp://gg3.net/pub/linux/gentoo</span><span style="color: #000000; font-weight: bold">"</span><span style="color: #000000"><br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /><br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />VIDEO_CARDS</span><span style="color: #000000">=</span><span style="color: #000000; font-weight: bold">"</span><span style="color: #000000; font-weight: bold">vesa</span><span style="color: #000000; font-weight: bold">"</span><span style="color: #000000"><br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /><br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />ALSA_CARDS</span><span style="color: #000000">=</span><span style="color: #000000; font-weight: bold">""</span><span style="color: #000000"><br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />ALSA_PCM_PLUGINS</span><span style="color: #000000">=</span><span style="color: #000000; font-weight: bold">""</span><span style="color: #000000"><br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />APACHE2_MODULES</span><span style="color: #000000">=</span><span style="color: #000000; font-weight: bold">""</span><span style="color: #000000"><br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />QEMU_SOFTMMU_TARGETS</span><span style="color: #000000">=</span><span style="color: #000000; font-weight: bold">"</span><span style="color: #000000; font-weight: bold">i386&nbsp;x86_64</span><span style="color: #000000; font-weight: bold">"</span><span style="color: #000000"><br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />QEMU_USER_TARGETS</span><span style="color: #000000">=</span><span style="color: #000000; font-weight: bold">"</span><span style="color: #000000; font-weight: bold">i386&nbsp;x86_64</span><span style="color: #000000; font-weight: bold">"</span><span style="color: #000000"><br />
<img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span></div>
<br />
<br />
参考文档&nbsp; <a href="http://www.gentoo.org/doc/zh_cn/handbook/handbook-amd64.xml">http://www.gentoo.org/doc/zh_cn/handbook/handbook-amd64.xml<br />
</a>

<a href="http://www.ha97.com/"><br />
<font color="#000000">参考：</font>http://www.ha97.com/</a><br />
<br />
<br />
<br />
<br /><img src ="http://www.blogjava.net/Alpha/aggbug/353270.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Alpha/" target="_blank">Alpha</a> 2011-06-28 16:03 <a href="http://www.blogjava.net/Alpha/archive/2011/06/28/353270.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>lighttpd配置之压缩文件(mod_compress)</title><link>http://www.blogjava.net/Alpha/archive/2011/06/22/352849.html</link><dc:creator>Alpha</dc:creator><author>Alpha</author><pubDate>Wed, 22 Jun 2011 15:25:00 GMT</pubDate><guid>http://www.blogjava.net/Alpha/archive/2011/06/22/352849.html</guid><wfw:comment>http://www.blogjava.net/Alpha/comments/352849.html</wfw:comment><comments>http://www.blogjava.net/Alpha/archive/2011/06/22/352849.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Alpha/comments/commentRss/352849.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Alpha/services/trackbacks/352849.html</trackback:ping><description><![CDATA[<p>在页面中使用gzip可以有效的减低页面的大小，加快网页的下载速度。在lighttpd中对php页面进行压缩，需要两个步骤：</p>
<p>1. 编辑 lighttpd.conf</p>
<p>将 &#8220;mod_compress&#8221; 设为启用</p>
<p>接著找到</p>
<p>## compress module</p>
<p>在下面加入</p>
<div class="dean_ch">compress.cache-<span class="kw2"><strong>dir</strong></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = &#8220;/var/tmp/lighttpd/cache/&#8221;<br />compress.filetype&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = <span class="br0"><font color="#66cc66">(</font></span>&#8221;text/plain&#8221;, &#8220;text/html&#8221;, &#8220;text/css&#8221;, &#8220;text/javascript&#8221;<font color="#66cc66"><span class="br0">)</span><br /></font>&nbsp;</div>
<p>做完上面的动作后，<br />基本上 .txt .html .css .js 的文件都会被Gzip压缩了。但php此时还没有压缩</p>
<p>对于动态的php文件，还需要在php.ini中做相关设置，否则.php页面还是不使用压缩模式<br />2. 编辑 php.ini<br />修改<br />zlib.output_compression = On<br />zlib.output_handler = On</p>
<p>重新启动Lighttpd。<br />这样php也压缩了</p><img src ="http://www.blogjava.net/Alpha/aggbug/352849.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Alpha/" target="_blank">Alpha</a> 2011-06-22 23:25 <a href="http://www.blogjava.net/Alpha/archive/2011/06/22/352849.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>CentOS环境中lighttpd+php+fastcgi+eAccelerator安装配置</title><link>http://www.blogjava.net/Alpha/archive/2011/06/22/352848.html</link><dc:creator>Alpha</dc:creator><author>Alpha</author><pubDate>Wed, 22 Jun 2011 15:24:00 GMT</pubDate><guid>http://www.blogjava.net/Alpha/archive/2011/06/22/352848.html</guid><wfw:comment>http://www.blogjava.net/Alpha/comments/352848.html</wfw:comment><comments>http://www.blogjava.net/Alpha/archive/2011/06/22/352848.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Alpha/comments/commentRss/352848.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Alpha/services/trackbacks/352848.html</trackback:ping><description><![CDATA[<p>Lighttpd 作为新一代的web server，以小巧（不到1M的大小）、快速而著称，因为服务器上安装了rails、java，并以lighttpd为前端代理服务器，不想再部署apache了，所以直接使用lighttpd来部署，顺便看一下性能如何。</p>
<p>本文主要介绍在CentOS下，配置一套用lighttp作为web server的php环境</p>
<p>&#183; 安装Lighttpd<br />从http://www.lighttpd.net/download/下载源码<br />安装前先检查pcre是否安装，需要pcre和pcre-devel两个包。 用yum search pcre\*检查，如果都是installed就是都安装了。否则安装缺少的包。</p>
<div class="dean_ch">yum <span class="kw2"><strong>install</strong></span> pcre-devel 
<p>&nbsp;</p>
<p><span class="kw2"><strong>tar</strong></span> xzvf lighttpd<font color="#ff33ff"><span class="nu0">-1.4</span><span class="nu0">.23</span></font>.<span class="kw2"><strong>tar</strong></span>.gz<br /><span class="kw3"><font color="#000066">cd</font></span> lighttpd<font color="#ff33ff"><span class="nu0">-1.4</span><span class="nu0">.23</span><br /></font>./configure &#8211;<span class="re2">prefix=</span>/usr/<span class="kw3"><font color="#000066">local</font></span>/lighttpd<br />&nbsp;</p></div>
<p>configure完毕以后，会给出一个激活的模块和没有激活模块的清单，可以检查一下，是否自己需要的模块都已经激活，在enable的模块中一定要有&#8220;mod_rewrite&#8221;这一项，否则重新检查pcre是否安装。然后编译安装：</p>
<div class="dean_ch"><span class="kw2"><strong>make</strong></span> &amp;&amp; <span class="kw2"><strong>make</strong></span> <span class="kw2"><strong>install</strong></span></div>
<p>编译后配置：</p>
<div class="dean_ch"><span class="kw2"><strong>cp</strong></span> doc/sysconfig.lighttpd /etc/sysconfig/lighttpd<br /><span class="kw2"><strong>mkdir</strong></span> /etc/lighttpd<br /><span class="kw2"><strong>cp</strong></span> doc/lighttpd.conf /etc/lighttpd/lighttpd.conf<br />&nbsp;</div>
<p>如果你的Linux是RedHat/CentOS，那么：</p>
<div class="dean_ch"><span class="kw2"><strong>cp</strong></span> doc/rc.lighttpd.redhat /etc/init.d/lighttpd<br />&nbsp;</div>
<p>如果你的Linux是SuSE，那么：</p>
<div class="dean_ch"><span class="kw2"><strong>cp</strong></span> doc/rc.lighttpd /etc/init.d/lighttpd<br />&nbsp;</div>
<p>其他Linux发行版本可以自行参考该文件内容进行修改。然后修改/etc/init.d/lighttpd，把</p>
<div class="dean_ch"><span class="re2">lighttpd=</span><font color="#ff0000"><span class="st0">"/usr/sbin/lighttpd"</span><br /></font>&nbsp;</div>
<p>改为</p>
<div class="dean_ch"><span class="re2">lighttpd=</span><font color="#ff0000"><span class="st0">"/usr/local/lighttpd/sbin/lighttpd"</span><br /></font>&nbsp;</div>
<p>此脚本用来控制lighttpd的启动关闭和重起：</p>
<div class="dean_ch">/etc/init.d/lighttpd start<br />/etc/init.d/lighttpd stop<br />/etc/init.d/lighttpd restart<br />&nbsp;</div>
<p>如果你希望服务器启动的时候就启动lighttpd，那么：</p>
<div class="dean_ch">chkconfig lighttpd on<br />&nbsp;</div>
<p>这样lighttpd就安装好了，接下来需要配置lighttpd。</p>
<p>配置Lighttpd</p>
<p>修改/etc/lighttpd/lighttpd.conf<br />1）server.modules<br />取消需要用到模块的注释，mod_rewrite，mod_access，mod_fastcgi，mod_simple_vhost，mod_cgi，mod_compress，mod_accesslog是一般需要用到的。</p>
<p>2）server.document-root, server.error-log，accesslog.filename需要指定相应的目录</p>
<p>3）用什么权限来运行lighttpd<br />server.username = &#8220;nobody&#8221;<br />server.groupname = &#8220;nobody&#8221;<br />从安全角度来说，不建议用root权限运行web server，可以自行指定普通用户权限。</p>
<p>4）静态文件压缩<br />compress.cache-dir = &#8220;/tmp/lighttpd/cache/compress&#8221;<br />compress.filetype = (&#8220;text/plain&#8221;, &#8220;text/html&#8221;,&#8221;text/javascript&#8221;,&#8221;text/css&#8221;)<br />可以指定某些静态资源类型使用压缩方式传输，节省带宽，对于大量AJAX应用来说，可以极大提高页面加载速度。</p>
<p>5）配置ruby on rails</p>
<p>最简单的配置如下：</p>
<div class="dean_ch"><span class="re1">$HTTP</span><span class="br0"><font color="#66cc66">[</font></span><span class="st0"><font color="#ff0000">"host"</font></span><span class="br0"><font color="#66cc66">]</font></span> == <span class="st0"><font color="#ff0000">"www.xxx.com"</font></span> <font color="#66cc66"><span class="br0">{</span><br /></font>&nbsp;server.document-root = <font color="#ff0000"><span class="st0">"/yourrails/public"</span><br /></font>&nbsp;server.error-handler<span class="nu0"><font color="#ff33ff">-404</font></span> = <font color="#ff0000"><span class="st0">"/dispatch.fcgi"</span><br /></font>&nbsp;fastcgi.server = <span class="br0"><font color="#66cc66">(</font></span><span class="st0"><font color="#ff0000">".fcgi"</font></span> =&gt;<br />&nbsp; &nbsp; <span class="br0"><font color="#66cc66">(</font></span><span class="st0"><font color="#ff0000">"localhost"</font></span> =&gt;<br />&nbsp; &nbsp; &nbsp; <span class="br0"><font color="#66cc66">(</font></span><span class="st0"><font color="#ff0000">"min-procs"</font></span> =&gt; <span class="nu0"><font color="#ff33ff">10</font></span>,<br />&nbsp; &nbsp; &nbsp; &nbsp;<span class="st0"><font color="#ff0000">"max-procs"</font></span> =&gt; <span class="nu0"><font color="#ff33ff">10</font></span>,<br />&nbsp; &nbsp; &nbsp; &nbsp;<span class="st0"><font color="#ff0000">"socket"</font></span> =&gt; <span class="st0"><font color="#ff0000">"/tmp/lighttpd/socket/rails.socket"</font></span>,<br />&nbsp; &nbsp; &nbsp; &nbsp;<span class="st0"><font color="#ff0000">"bin-path"</font></span> =&gt; <span class="st0"><font color="#ff0000">"/yourrails/public/dispatch.fcgi"</font></span>,<br />&nbsp; &nbsp; &nbsp; &nbsp;<span class="st0"><font color="#ff0000">"bin-environment"</font></span> =&gt; <span class="br0"><font color="#66cc66">(</font></span><span class="st0"><font color="#ff0000">"RAILS_ENV"</font></span> =&gt; <span class="st0"><font color="#ff0000">"production"</font></span><font color="#66cc66"><span class="br0">)</span><br /></font>&nbsp; &nbsp; &nbsp; <font color="#66cc66"><span class="br0">)</span><br /></font>&nbsp; &nbsp; <font color="#66cc66"><span class="br0">)</span><br /></font>&nbsp;<font color="#66cc66"><span class="br0">)</span><br /><span class="br0">}</span><br /></font>&nbsp;</div>
<p>即由lighttpd启动10个FCGI进程，lighttpd和FCGI之间使用本机Unix Socket通信。</p>
<p>如果想指定www.abc.com以及所有二级域名，则需要把第一行改为<br />$HTTP[&#8221;host&#8221;] =~ &#8220;(^|\.)abc\.com&#8221; {<br />&#8230;<br />}</p>
<p>如果要设置代理，比如lighttpd和tomcat整合，tomcat放在lighttpd后面，则需要通过代理访问tomcat</p>
<p>$HTTP["host"] =~ &#8220;www.domain.cn&#8221; {<br />proxy.server = ( &#8220;&#8221; =&gt; ( &#8220;localhost&#8221; =&gt; ( &#8220;host&#8221;=&gt; &#8220;127.0.0.1&#8243;, &#8220;port&#8221;=&gt; 8080 ) ) )<br />}</p>
<p>则www.domain.cn为主机的网址都交给tomcat处理，tomcat的端口号为8080. 在tomcat的虚拟主机中，需要捕获www.domain.cn这个主机名，设置这个虚拟主机。这里的host都是跟tomcat里面的虚拟主机对应的。</p>
<p>&#183; 安装支持fastcgi的PHP<br />安装PHP所需的相关类库<br />curl</p>
<div class="dean_ch"><span class="kw2"><strong>wget</strong></span> http://curl.cs.pu.edu.tw/download/curl<font color="#ff33ff"><span class="nu0">-7.19</span><span class="nu0">.5</span></font>.<span class="kw2"><strong>tar</strong></span>.bz2 
<p>&nbsp;</p>
<p><span class="kw2"><strong>tar</strong></span> xvjf curl<font color="#ff33ff"><span class="nu0">-7.19</span><span class="nu0">.5</span></font>.<span class="kw2"><strong>tar</strong></span>.bz2<br /><span class="kw3"><font color="#000066">cd</font></span> curl<font color="#ff33ff"><span class="nu0">-7.19</span><span class="nu0">.5</span><br /></font>./configure &#8211;<span class="re2">prefix=</span>/usr/<span class="kw3"><font color="#000066">local</font></span>/curl<br /><strong><span class="kw2">make</span><br /><span class="kw2">make</span></strong> <strong><span class="kw2">install</span><br /></strong>&nbsp;</p></div>
<p>gettext</p>
<div class="dean_ch"><span class="kw2"><strong>wget</strong></span> <span class="kw2"><strong>ftp</strong></span>://<span class="kw2"><strong>ftp</strong></span>.ntu.edu.tw/pub/gnu/gnu/<span class="kw2"><strong>gettext</strong></span>/gettext<span class="nu0"><font color="#ff33ff">-0.17</font></span>.<span class="kw2"><strong>tar</strong></span>.gz<br /><span class="kw2"><strong>tar</strong></span> xvzf gettext<span class="nu0"><font color="#ff33ff">-0.17</font></span>.<span class="kw2"><strong>tar</strong></span>.gz<br /><span class="kw3"><font color="#000066">cd</font></span> gettext<font color="#ff33ff"><span class="nu0">-0.17</span><br /></font>./configure &#8211;<span class="re2">prefix=</span>/usr/<span class="kw3"><font color="#000066">local</font></span>/<strong><span class="kw2">gettext</span><br /><span class="kw2">make</span><br /><span class="kw2">make</span></strong> <strong><span class="kw2">install</span><br /></strong>&nbsp;</div>
<p>zlib</p>
<div class="dean_ch"><span class="kw2"><strong>wget</strong></span> http://kent.dl.sourceforge.net/sourceforge/libpng/zlib<font color="#ff33ff"><span class="nu0">-1.2</span><span class="nu0">.3</span></font>.<span class="kw2"><strong>tar</strong></span>.gz<br /><span class="kw2"><strong>tar</strong></span> xvzf zlib<font color="#ff33ff"><span class="nu0">-1.2</span><span class="nu0">.3</span></font>.<span class="kw2"><strong>tar</strong></span>.gz<br /><span class="kw3"><font color="#000066">cd</font></span> zlib<font color="#ff33ff"><span class="nu0">-1.2</span><span class="nu0">.3</span><br /></font>./configure &#8211;<span class="re2">prefix=</span>/usr/<span class="kw3"><font color="#000066">local</font></span>/zlib<br /><span class="kw2"><strong>make</strong></span> &amp;&amp; <span class="kw2"><strong>make</strong></span> <strong><span class="kw2">install</span><br /></strong>&nbsp;</div>
<p>libpng</p>
<div class="dean_ch"><span class="kw2"><strong>wget</strong></span> http://www.mirrorservice.org/sites/download.sourceforge.net/pub/sourceforge/l/li/libpng/libpng<font color="#ff33ff"><span class="nu0">-1.2</span><span class="nu0">.9</span></font>.<span class="kw2"><strong>tar</strong></span>.gz<br /><span class="kw2"><strong>tar</strong></span> xvzf libpng<font color="#ff33ff"><span class="nu0">-1.2</span><span class="nu0">.9</span></font>.<span class="kw2"><strong>tar</strong></span>.gz<br /><span class="kw3"><font color="#000066">cd</font></span> libpng<font color="#ff33ff"><span class="nu0">-1.2</span><span class="nu0">.9</span><br /></font>./configure &#8211;<span class="re2">prefix=</span>/usr/<span class="kw3"><font color="#000066">local</font></span>/libpng<br /><span class="kw2"><strong>make</strong></span> &amp;&amp; <span class="kw2"><strong>make</strong></span> <strong><span class="kw2">install</span><br /></strong>&nbsp;</div>
<p>jpeg</p>
<div class="dean_ch"><span class="kw2"><strong>wget</strong></span> http://www.ijg.org/files/jpegsrc.v6b.<span class="kw2"><strong>tar</strong></span>.gz<br /><span class="kw2"><strong>tar</strong></span> xvzf jpegsrc.v6b.<span class="kw2"><strong>tar</strong></span>.gz<br /><span class="kw3"><font color="#000066">cd</font></span> jpeg-6b/<br />./configure &#8211;<span class="re2">prefix=</span>/usr/<span class="kw3"><font color="#000066">local</font></span>/jpeg6<br /><span class="kw2"><strong>make</strong></span> 
<p>&nbsp;</p>
<p><span class="kw2"><strong>mkdir</strong></span> /usr/<span class="kw3"><font color="#000066">local</font></span>/jpeg6/bin<br /><span class="kw2"><strong>mkdir</strong></span> -p /usr/<span class="kw3"><font color="#000066">local</font></span>/jpeg6/bin<br /><span class="kw2"><strong>mkdir</strong></span> -p /usr/<span class="kw3"><font color="#000066">local</font></span>/jpeg6/<span class="kw2"><strong>man</strong></span>/man1<br /><span class="kw2"><strong>mkdir</strong></span> -p /usr/<span class="kw3"><font color="#000066">local</font></span>/jpeg6/lib<br /><span class="kw2"><strong>mkdir</strong></span> -p /usr/<span class="kw3"><font color="#000066">local</font></span>/jpeg6/include<br /><span class="kw2"><strong>make</strong></span> install-lib<br /><span class="kw2"><strong>make</strong></span> <strong><span class="kw2">install</span><br /></strong>&nbsp;</p></div>
<p>freetype</p>
<div class="dean_ch"><span class="kw2"><strong>wget</strong></span> http://download.savannah.gnu.org/releases/freetype/freetype<font color="#ff33ff"><span class="nu0">-2.3</span><span class="nu0">.9</span></font>.<span class="kw2"><strong>tar</strong></span>.gz<br /><span class="kw2"><strong>tar</strong></span> xvzf freetype<font color="#ff33ff"><span class="nu0">-2.3</span><span class="nu0">.9</span></font>.<span class="kw2"><strong>tar</strong></span>.gz<br /><span class="kw3"><font color="#000066">cd</font></span> freetype<font color="#ff33ff"><span class="nu0">-2.3</span><span class="nu0">.9</span><br /></font>./configure &#8211;<span class="re2">prefix=</span>/usr/<span class="kw3"><font color="#000066">local</font></span>/freetype2<br /><strong><span class="kw2">make</span><br /><span class="kw2">make</span></strong> <strong><span class="kw2">install</span><br /></strong>&nbsp;</div>
<p>gd</p>
<div class="dean_ch"><span class="kw2"><strong>wget</strong></span> http://www.libgd.org/releases/gd<font color="#ff33ff"><span class="nu0">-2.0</span><span class="nu0">.35</span></font>.<span class="kw2"><strong>tar</strong></span>.gz<br /><span class="kw2"><strong>tar</strong></span> xvzf gd<font color="#ff33ff"><span class="nu0">-2.0</span><span class="nu0">.35</span></font>.<span class="kw2"><strong>tar</strong></span>.gz<br /><span class="kw3"><font color="#000066">cd</font></span> gd<font color="#ff33ff"><span class="nu0">-2.0</span><span class="nu0">.35</span><br /></font>./configure &#8211;<span class="re2">prefix=</span>/usr/<span class="kw3"><font color="#000066">local</font></span>/gd2 &#8211;with-<span class="re2">zlib=</span>/usr/<span class="kw3"><font color="#000066">local</font></span>/zlib/ &#8211;with-<span class="re2">png=</span>/usr/<span class="kw3"><font color="#000066">local</font></span>/libpng/ &#8211;with-<span class="re2">jpeg=</span>/usr/<span class="kw3"><font color="#000066">local</font></span>/jpeg6/ &#8211;with-<span class="re2">freetype=</span>/usr/<span class="kw3"><font color="#000066">local</font></span>/freetype2/<br /><strong><span class="kw2">make</span><br /></strong>如果第一次<span class="kw2"><strong>make</strong></span>出错，试着再<span class="kw2"><strong>make</strong></span>一次，我就是这样，第二次就对了。<br /><span class="kw2"><strong>make</strong></span> <strong><span class="kw2">install</span><br /></strong>&nbsp;</div>
<p>PHP</p>
<div class="dean_ch"><span class="kw2"><strong>tar</strong></span> xvzf php<font color="#ff33ff"><span class="nu0">-5.2</span><span class="nu0">.10</span></font>.<span class="kw2"><strong>tar</strong></span>.gz<br /><span class="kw3"><font color="#000066">cd</font></span> php<font color="#ff33ff"><span class="nu0">-5.2</span><span class="nu0">.10</span><br /></font>./configure &#8211;<span class="re2">prefix=</span>/usr/<span class="kw3"><font color="#000066">local</font></span>/php &#8211;with-<span class="re2">mysql=</span>/usr/<span class="kw3"><font color="#000066">local</font></span>/mysql &#8211;with-pdo-<span class="re2">mysql=</span>/usr/<span class="kw3"><font color="#000066">local</font></span>/mysql &#8211;with-jpeg-<span class="re2">dir=</span>/usr/<span class="kw3"><font color="#000066">local</font></span>/jpeg6/ &#8211;with-png-<span class="re2">dir=</span>/usr/<span class="kw3"><font color="#000066">local</font></span>/libpng/ &#8211;with-<span class="re2">gd=</span>/usr/<span class="kw3"><font color="#000066">local</font></span>/gd2/ &#8211;with-freetype-<span class="re2">dir=</span>/usr/<span class="kw3"><font color="#000066">local</font></span>/freetype2/ &nbsp;&#8211;with-zlib-<span class="re2">dir=</span>/usr/<span class="kw3"><font color="#000066">local</font></span>/zlib &#8211;with-<span class="re2">curl=</span>/usr/<span class="kw3"><font color="#000066">local</font></span>/curl &#8211;with-<span class="re2">gettext=</span>/usr/<span class="kw3"><font color="#000066">local</font></span>/<span class="kw2"><strong>gettext</strong></span> &#8211;enable-fastcgi &#8211;enable-zend-multibyte &#8211;with-config-file-<span class="re2">path=</span>/etc &#8211;enable-discard-path &#8211;enable-force-cgi-redirect<br /><strong><span class="kw2">make</span><br /><span class="kw2">make</span></strong> <strong><span class="kw2">install</span><br /><span class="kw2">cp</span></strong> php.ini-dist /etc/php.ini 
<p>&nbsp;</p>
<p>可以使用php -m查看你安装的模块<br />&nbsp;</p></div>
<p>eAccelerator<br />eAccelerator是一个开源的PHP加速器</p>
<div class="dean_ch"><span class="kw2"><strong>wget</strong></span> http://bart.eaccelerator.net/<span class="kw3"><font color="#000066">source</font></span>/<font color="#ff33ff"><span class="nu0">0.9</span><span class="nu0">.5</span><span class="nu0">.3</span></font>/eaccelerator<font color="#ff33ff"><span class="nu0">-0.9</span><span class="nu0">.5</span><span class="nu0">.3</span></font>.<span class="kw2"><strong>tar</strong></span>.bz2<br /><span class="kw2"><strong>tar</strong></span> xjvf eaccelerator<font color="#ff33ff"><span class="nu0">-0.9</span><span class="nu0">.5</span><span class="nu0">.3</span></font>.<span class="kw2"><strong>tar</strong></span>.bz2<br /><span class="kw3"><font color="#000066">cd</font></span> eaccelerator<font color="#ff33ff"><span class="nu0">-0.9</span><span class="nu0">.5</span><span class="nu0">.3</span><br /></font><span class="kw3"><font color="#000066">export</font></span> <span class="re2">PHP_PREFIX=</span><font color="#ff0000"><span class="st0">"/usr/local/php"</span><br /></font><span class="re1">$PHP_PREFIX</span>/bin/phpize<br />./configure &#8211;enable-<span class="re2">eaccelerator=</span>shared &#8211;with-php-<span class="re2">config=</span><span class="re1">$PHP_PREFIX</span>/bin/php-config<br /><strong><span class="kw2">make</span><br /><span class="kw2">make</span></strong> <strong><span class="kw2">install</span><br /></strong>&nbsp;</div>
<p>执行好后，会提示安装到的路径，下面会用到，如我的被安装到这里<br />/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613<br />编辑php.ini中的内容<br />vim /etc/php.ini</p>
<div class="dean_ch">cgi.fix_pathinfo = <span class="nu0"><font color="#ff33ff">1</font></span> 
<p>&nbsp;</p>
<p><span class="re2">zend_extension=</span><font color="#ff0000"><span class="st0">"/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/eaccelerator.so"</span><br /></font>eaccelerator.<span class="re2">shm_size=</span><font color="#ff0000"><span class="st0">"16"</span><br /></font>eaccelerator.<span class="re2">cache_dir=</span><font color="#ff0000"><span class="st0">"/tmp/eaccelerator"</span><br /></font>eaccelerator.<span class="re2">enable=</span><font color="#ff0000"><span class="st0">"1"</span><br /></font>eaccelerator.<span class="re2">optimizer=</span><font color="#ff0000"><span class="st0">"1"</span><br /></font>eaccelerator.<span class="re2">check_mtime=</span><font color="#ff0000"><span class="st0">"1"</span><br /></font>eaccelerator.<span class="re2">debug=</span><font color="#ff0000"><span class="st0">"0"</span><br /></font>eaccelerator.<span class="re2">filter=</span><font color="#ff0000"><span class="st0">""</span><br /></font>eaccelerator.<span class="re2">shm_max=</span><font color="#ff0000"><span class="st0">"0"</span><br /></font>eaccelerator.<span class="re2">shm_ttl=</span><font color="#ff0000"><span class="st0">"0"</span><br /></font>eaccelerator.<span class="re2">shm_prune_period=</span><font color="#ff0000"><span class="st0">"0"</span><br /></font>eaccelerator.<span class="re2">shm_only=</span><font color="#ff0000"><span class="st0">"0"</span><br /></font>eaccelerator.<span class="re2">compress=</span><font color="#ff0000"><span class="st0">"1"</span><br /></font>eaccelerator.<span class="re2">compress_level=</span><font color="#ff0000"><span class="st0">"9"</span><br /></font>&nbsp;</p></div>
<p>如果一切顺利，你可以通过下面命令来验证是否安装成功</p>
<div class="dean_ch">$ php -v<br />PHP <font color="#ff33ff"><span class="nu0">5.2</span><span class="nu0">.10</span></font> <span class="br0"><font color="#66cc66">(</font></span>cli<span class="br0"><font color="#66cc66">)</font></span> <span class="br0"><font color="#66cc66">(</font></span>built: Jun <span class="nu0"><font color="#ff33ff">20</font></span> <span class="nu0"><font color="#ff33ff">2009</font></span> <span class="nu0"><font color="#ff33ff">23</font></span>:<span class="nu0"><font color="#ff33ff">32</font></span>:<span class="nu0"><font color="#ff33ff">09</font></span><font color="#66cc66"><span class="br0">)</span><br /></font>Copyright <span class="br0"><font color="#66cc66">(</font></span>c<span class="br0"><font color="#66cc66">)</font></span> <font color="#ff33ff"><span class="nu0">1997</span><span class="nu0">-2009</span></font> The PHP Group<br />Zend Engine v2<font color="#ff33ff"><span class="nu0">.2</span><span class="nu0">.0</span></font>, Copyright <span class="br0"><font color="#66cc66">(</font></span>c<span class="br0"><font color="#66cc66">)</font></span> <font color="#ff33ff"><span class="nu0">1998</span><span class="nu0">-2009</span></font> Zend Technologies<br />&nbsp; &nbsp; with eAccelerator v0<font color="#ff33ff"><span class="nu0">.9</span><span class="nu0">.5</span><span class="nu0">.3</span></font>, Copyright <span class="br0"><font color="#66cc66">(</font></span>c<span class="br0"><font color="#66cc66">)</font></span> <font color="#ff33ff"><span class="nu0">2004</span><span class="nu0">-2006</span></font> eAccelerator, by eAccelerator<br />&nbsp;</div>
<p>修改/etc/lighttpd/lighttpd.conf文件，添加下面的配置<br />vim /etc/lighttpd/lighttpd.conf</p>
<div class="dean_ch">fastcgi.server &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; = <span class="br0"><font color="#66cc66">(</font></span> <span class="st0"><font color="#ff0000">".php"</font></span> =&gt;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="br0"><font color="#66cc66">(</font></span> <span class="st0"><font color="#ff0000">"localhost"</font></span> =&gt;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<font color="#66cc66"><span class="br0">(</span><br /></font>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="st0"><font color="#ff0000">"socket"</font></span> =&gt; <span class="st0"><font color="#ff0000">"/tmp/php-fastcgi.socket"</font></span>,<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="st0"><font color="#ff0000">"bin-path"</font></span> =&gt; <font color="#ff0000"><span class="st0">"/usr/local/php/bin/php-cgi"</span><br /></font>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<font color="#66cc66"><span class="br0">)</span><br /></font>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<font color="#66cc66"><span class="br0">)</span><br /></font>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <font color="#66cc66"><span class="br0">)</span><br /></font>&nbsp;</div>
<p>重启lighttpd</p>
<div class="dean_ch">/etc/init.d/lighttpd restart<br />&nbsp;</div>
<p>写一个php测试文件在lighttpd的网站目录里，测试php是否安装成功<br /><br /><a href="http://blog.prosight.me/">http://blog.prosight.me/</a><br /><br /></p><img src ="http://www.blogjava.net/Alpha/aggbug/352848.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Alpha/" target="_blank">Alpha</a> 2011-06-22 23:24 <a href="http://www.blogjava.net/Alpha/archive/2011/06/22/352848.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>lighttpd配置之代理、负载均衡(mod_proxy)</title><link>http://www.blogjava.net/Alpha/archive/2011/06/22/352846.html</link><dc:creator>Alpha</dc:creator><author>Alpha</author><pubDate>Wed, 22 Jun 2011 15:20:00 GMT</pubDate><guid>http://www.blogjava.net/Alpha/archive/2011/06/22/352846.html</guid><wfw:comment>http://www.blogjava.net/Alpha/comments/352846.html</wfw:comment><comments>http://www.blogjava.net/Alpha/archive/2011/06/22/352846.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Alpha/comments/commentRss/352846.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Alpha/services/trackbacks/352846.html</trackback:ping><description><![CDATA[<p>使用proxy可以使lighttpd成为一个代理服务器。例如将java的请求全都转向给jboss来处理<br />mod_proxy有三个标签：<br />proxy.debug，0或者1. 表示是否启动调试模式。 1表示启动<br />proxy.balance，使用负载均衡的模式。可以使&#8220;hash&#8221;，&#8220;round-robin&#8221;,&#8221;fair&#8221;三种模式之一。<br />&#8217;round-robin&#8217; 交替轮训, &#8216;hash&#8217; 根据请求的url产生一个 hash值，来确保同样的请求的url都访问同样的主机<br />&#8216;fair&#8217; is the normal load-based, passive balancing.</p>
<p>语法结构</p>
<div class="dean_ch">&nbsp;<span class="br0"><font color="#66cc66">(</font></span> &lt;extension&gt; =&gt; <br />&nbsp; &nbsp; &nbsp; <span class="br0"><font color="#66cc66">(</font></span> <span class="br0"><font color="#66cc66">[</font></span> &lt;name&gt; =&gt; <font color="#66cc66"><span class="br0">]</span><br /></font>&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0"><font color="#66cc66">(</font></span> <span class="st0"><font color="#ff0000">"host"</font></span> =&gt; &lt;string&gt; ,<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st0"><font color="#ff0000">"port"</font></span> =&gt; &lt;integer&gt; <span class="br0"><font color="#66cc66">)</font></span>,<br />&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0"><font color="#66cc66">(</font></span> <span class="st0"><font color="#ff0000">"host"</font></span> =&gt; &lt;string&gt; ,<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st0"><font color="#ff0000">"port"</font></span> =&gt; &lt;integer&gt; <font color="#66cc66"><span class="br0">)</span><br /></font>&nbsp; &nbsp; &nbsp; <span class="br0"><font color="#66cc66">)</font></span>,<br />&nbsp; &nbsp; &nbsp; &lt;extension&gt; =&gt; &#8230; <br />&nbsp; &nbsp; <font color="#66cc66"><span class="br0">)</span><br /></font>&nbsp;</div>
<p>* <extension>: 表示请求url的文件扩展名或者文件前缀 (如果以&#8221;/&#8221;开始); 可以是空 (&#8220;&#8221;) 表示所有的请求<br />* <name>: 可选名称<br />* &#8220;host&#8221;: 被代理的服务器的ip<br />* &#8220;port&#8221;: 被代理服务器的端口，默认是80</p>
<p>如：</p>
<div class="dean_ch">proxy.server = <span class="br0"><font color="#66cc66">(</font></span> <span class="st0"><font color="#ff0000">".jsp"</font></span> =&gt;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="br0"><font color="#66cc66">(</font></span> <span class="br0"><font color="#66cc66">(</font></span> <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="st0"><font color="#ff0000">"host"</font></span> =&gt; <span class="st0"><font color="#ff0000">"10.0.0.242"</font></span>,<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="st0"><font color="#ff0000">"port"</font></span> =&gt; <font color="#ff33ff"><span class="nu0">8080</span><br /></font>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="br0"><font color="#66cc66">)</font></span> <font color="#66cc66"><span class="br0">)</span><br /></font>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<font color="#66cc66"><span class="br0">)</span><br /></font>&nbsp;</div>
<p>再如：</p>
<div class="dean_ch"><span class="re1">$HTTP</span><span class="br0"><font color="#66cc66">[</font></span><span class="st0"><font color="#ff0000">"host"</font></span><span class="br0"><font color="#66cc66">]</font></span> == <span class="st0"><font color="#ff0000">"www.domain.me"</font></span> <font color="#66cc66"><span class="br0">{</span><br /></font>&nbsp; &nbsp; &nbsp; &nbsp; proxy.server &nbsp;= <span class="br0"><font color="#66cc66">(</font></span> <span class="st0"><font color="#ff0000">""</font></span> =&gt;<br />&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0"><font color="#66cc66">(</font></span> <span class="br0"><font color="#66cc66">(</font></span> <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st0"><font color="#ff0000">"host"</font></span> =&gt; <span class="st0"><font color="#ff0000">"127.0.0.1"</font></span>,<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st0"><font color="#ff0000">"port"</font></span>=&gt;<span class="st0"><font color="#ff0000">"8080"</font></span> &nbsp;<br />&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0"><font color="#66cc66">)</font></span> <span class="br0"><font color="#66cc66">)</font></span> <br />&nbsp; &nbsp; &nbsp; &nbsp; <font color="#66cc66"><span class="br0">)</span><br /><span class="br0">}</span><br /></font>&nbsp;</div>
<p>负载均衡的例子，例如有8个squid缓存，需要用lighttpd做负载均衡</p>
<div class="dean_ch">&nbsp; <span class="re1">$HTTP</span><span class="br0"><font color="#66cc66">[</font></span><span class="st0"><font color="#ff0000">"host"</font></span><span class="br0"><font color="#66cc66">]</font></span> == <span class="st0"><font color="#ff0000">"www.example.org"</font></span> <font color="#66cc66"><span class="br0">{</span><br /></font>&nbsp; &nbsp; proxy.balance = <span class="st0"><font color="#ff0000">"hash"</font></span> <br />&nbsp; &nbsp; proxy.server &nbsp;= <span class="br0"><font color="#66cc66">(</font></span> <span class="st0"><font color="#ff0000">""</font></span> =&gt; <span class="br0"><font color="#66cc66">(</font></span> <span class="br0"><font color="#66cc66">(</font></span> <span class="st0"><font color="#ff0000">"host"</font></span> =&gt; <span class="st0"><font color="#ff0000">"10.0.0.10"</font></span> <span class="br0"><font color="#66cc66">)</font></span>,<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0"><font color="#66cc66">(</font></span> <span class="st0"><font color="#ff0000">"host"</font></span> =&gt; <span class="st0"><font color="#ff0000">"10.0.0.11"</font></span> <span class="br0"><font color="#66cc66">)</font></span>,<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0"><font color="#66cc66">(</font></span> <span class="st0"><font color="#ff0000">"host"</font></span> =&gt; <span class="st0"><font color="#ff0000">"10.0.0.12"</font></span> <span class="br0"><font color="#66cc66">)</font></span>,<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0"><font color="#66cc66">(</font></span> <span class="st0"><font color="#ff0000">"host"</font></span> =&gt; <span class="st0"><font color="#ff0000">"10.0.0.13"</font></span> <span class="br0"><font color="#66cc66">)</font></span>,<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0"><font color="#66cc66">(</font></span> <span class="st0"><font color="#ff0000">"host"</font></span> =&gt; <span class="st0"><font color="#ff0000">"10.0.0.14"</font></span> <span class="br0"><font color="#66cc66">)</font></span>,<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0"><font color="#66cc66">(</font></span> <span class="st0"><font color="#ff0000">"host"</font></span> =&gt; <span class="st0"><font color="#ff0000">"10.0.0.15"</font></span> <span class="br0"><font color="#66cc66">)</font></span>,<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0"><font color="#66cc66">(</font></span> <span class="st0"><font color="#ff0000">"host"</font></span> =&gt; <span class="st0"><font color="#ff0000">"10.0.0.16"</font></span> <span class="br0"><font color="#66cc66">)</font></span>,<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0"><font color="#66cc66">(</font></span> <span class="st0"><font color="#ff0000">"host"</font></span> =&gt; <span class="st0"><font color="#ff0000">"10.0.0.17"</font></span> <span class="br0"><font color="#66cc66">)</font></span> <span class="br0"><font color="#66cc66">)</font></span> <font color="#66cc66"><span class="br0">)</span><br /></font>&nbsp; <font color="#66cc66"><span class="br0">}</span><br /></font>&nbsp;</div>
<p>当一个服务器宕机后，它上面的请求将被转移给其他设备server</p><img src ="http://www.blogjava.net/Alpha/aggbug/352846.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Alpha/" target="_blank">Alpha</a> 2011-06-22 23:20 <a href="http://www.blogjava.net/Alpha/archive/2011/06/22/352846.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>linux+nginx+tomcat负载均衡，实现session同步</title><link>http://www.blogjava.net/Alpha/archive/2011/06/21/352745.html</link><dc:creator>Alpha</dc:creator><author>Alpha</author><pubDate>Tue, 21 Jun 2011 07:38:00 GMT</pubDate><guid>http://www.blogjava.net/Alpha/archive/2011/06/21/352745.html</guid><wfw:comment>http://www.blogjava.net/Alpha/comments/352745.html</wfw:comment><comments>http://www.blogjava.net/Alpha/archive/2011/06/21/352745.html#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://www.blogjava.net/Alpha/comments/commentRss/352745.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Alpha/services/trackbacks/352745.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 花了一个上午的时间研究nginx+tomcat的负载均衡测试，集群环境搭建比较顺利，但是session同步的问题折腾了几个小时才搞定，现把我的过程贴上来，以备用。软件及环境是：虚拟机上装centos 5.5IP为：192.168.0.51 装上nginx和tomcat &nbsp;6.0.32 命名为 Tomcat1一台win7上装tomcat &nbsp;6.0.32&nbsp;...&nbsp;&nbsp;<a href='http://www.blogjava.net/Alpha/archive/2011/06/21/352745.html'>阅读全文</a><img src ="http://www.blogjava.net/Alpha/aggbug/352745.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Alpha/" target="_blank">Alpha</a> 2011-06-21 15:38 <a href="http://www.blogjava.net/Alpha/archive/2011/06/21/352745.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>如何选择开源许可证？</title><link>http://www.blogjava.net/Alpha/archive/2011/05/03/349407.html</link><dc:creator>Alpha</dc:creator><author>Alpha</author><pubDate>Tue, 03 May 2011 01:05:00 GMT</pubDate><guid>http://www.blogjava.net/Alpha/archive/2011/05/03/349407.html</guid><wfw:comment>http://www.blogjava.net/Alpha/comments/349407.html</wfw:comment><comments>http://www.blogjava.net/Alpha/archive/2011/05/03/349407.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Alpha/comments/commentRss/349407.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Alpha/services/trackbacks/349407.html</trackback:ping><description><![CDATA[<div class="asset-body">
<p>如何为代码选择开源许可证，这是一个问题。</p>
</div>
<div id="more" class="asset-more">
<p>世界上的开源许可证，大概有<a href="http://www.gnu.org/licenses/license-list.html" target="_blank">上百种</a>。很少有人搞得清楚它们的区别。即使在最流行的六种----<a href="http://www.gnu.org/licenses/gpl.html" target="_blank">GPL</a>、<a href="http://en.wikipedia.org/wiki/BSD_licenses" target="_blank">BSD</a>、<a href="http://en.wikipedia.org/wiki/MIT_License" target="_blank">MIT</a>、<a href="http://www.mozilla.org/MPL/" target="_blank">Mozilla</a>、<a href="http://www.apache.org/licenses/LICENSE-2.0" target="_blank">Apache</a>和<a href="http://www.gnu.org/copyleft/lesser.html" target="_blank">LGPL</a>----之中做选择，也很复杂。</p>
<p>乌克兰程序员<a href="http://pbagwl.com/post/5078147450/description-of-popular-software-licenses" target="_blank">Paul Bagwell</a>，画了一张分析图，说明应该怎么选择。这是我见过的最简单的讲解，只用两分钟，你就能搞清楚这六种许可证之间的最大区别。</p>
<p>下面是我制作的中文版，请点击看大图。</p>
<p><a href="http://image.beekka.com/blog/201105/free_software_licenses.png" target="_blank"><img alt="" src="http://static.oschina.net/uploads/img/201105/02214312_HMXD.png" /></a><br />
</p>
</div><img src ="http://www.blogjava.net/Alpha/aggbug/349407.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Alpha/" target="_blank">Alpha</a> 2011-05-03 09:05 <a href="http://www.blogjava.net/Alpha/archive/2011/05/03/349407.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Linux和Mysql常用命令</title><link>http://www.blogjava.net/Alpha/archive/2010/04/16/318526.html</link><dc:creator>Alpha</dc:creator><author>Alpha</author><pubDate>Fri, 16 Apr 2010 07:17:00 GMT</pubDate><guid>http://www.blogjava.net/Alpha/archive/2010/04/16/318526.html</guid><wfw:comment>http://www.blogjava.net/Alpha/comments/318526.html</wfw:comment><comments>http://www.blogjava.net/Alpha/archive/2010/04/16/318526.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Alpha/comments/commentRss/318526.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Alpha/services/trackbacks/318526.html</trackback:ping><description><![CDATA[本人经常用到的命令，在这里做下记录。<br />
&nbsp;
<p><strong><span style="font-size: 9pt; color: blue; font-family: 宋体">.tar.bz2</span></strong></p>
<p><strong><span style="font-size: 9pt; font-family: 宋体">解压</span></strong><span style="font-size: 9pt; font-family: 宋体">：tar jxvf FileName.tar.bz2&nbsp;<strong>压缩</strong>：tar jcvf FileName.tar.bz2 DirName</span></p>
<p><strong><span style="font-size: 9pt; color: blue; font-family: 宋体">.gz</span></strong><strong><span style="font-size: 9pt; color: blue; font-family: 宋体"><br />
</span></strong><strong><span style="font-size: 9pt; font-family: 宋体">解压1</span></strong><span style="font-size: 9pt; font-family: 宋体">：gunzip FileName.gz&nbsp;&nbsp; <strong>解压2</strong>：gzip -d FileName.gz&nbsp;<strong>压缩</strong>：gzip FileName<br />
<strong><span style="color: blue; font-family: 宋体">.tar.gz </strong></span><strong><span style="color: blue; font-family: 宋体">和 .tgz</span></strong><strong><span style="color: blue"><br />
</span></strong><strong>解压</strong>：tar zxvf FileName.tar.gz&nbsp;<strong>压缩</strong>：tar zcvf FileName.tar.gz DirName</span></p>
<p><strong><span style="font-size: 9pt; color: blue; font-family: 宋体">.rpm</span></strong><span style="font-size: 9pt; font-family: 宋体"><br />
</span><strong><span style="font-size: 9pt; font-family: 宋体">解包：</span></strong><span style="font-size: 9pt; font-family: 宋体">rpm2cpio FileName.rpm | cpio -div<br />
<strong><span style="color: blue; font-family: 宋体">.deb</span></strong><br />
</span><strong><span style="font-size: 9pt; font-family: 宋体">解包：</span></strong><span style="font-size: 9pt; font-family: 宋体">ar p FileName.deb data.tar.gz | tar zxf -<br />
<br />
</span></p>
<p><strong><span style="font-size: 9pt; font-family: 宋体">从远程scp到本地：</span></strong></p>
<p><span style="font-size: 9pt; font-family: 宋体">scp root@192.168.2.100:/opt/test/* /opt/test </span><span style="font-size: 9pt; font-family: 宋体">，输入</span><span style="font-size: 9pt; font-family: 宋体">远程机器密码后完成</span></p>
<p><span style="font-size: 9pt; color: black; font-family: 宋体">scp -P 3588 &nbsp;</span><span style="font-size: 9pt; font-family: 宋体">root@192.168.2.100:/opt/test/* /opt/test&nbsp;</span><span style="font-size: 9pt; font-family: 宋体">走特殊端口号<br />
</span></p>
<p><strong><span style="font-size: 9pt; font-family: 宋体"><br />
从本地scp到远程：</span></strong></p>
<p><span style="font-size: 9pt; font-family: 宋体">scp /opt/test/* &nbsp;<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#114;&#111;&#111;&#116;&#64;&#49;&#57;&#50;&#46;&#49;&#54;&#56;&#46;&#50;&#46;&#49;&#48;&#48;&#58;&#47;&#111;&#112;&#116;">root@192.168.2.100:/opt</a>/test </span><span style="font-size: 9pt; font-family: 宋体">，输入</span><span style="font-size: 9pt; font-family: 宋体">远程机器密码后完成</span></p>
<p><span style="font-size: 9pt; color: black; font-family: 宋体">使用方式&nbsp;:&nbsp;chmod&nbsp;[-cfvR]&nbsp;[--help]&nbsp;[--version]&nbsp;mode&nbsp;file...</span></p>
<p><span style="font-size: 9pt; color: black; font-family: 宋体">使用方式&nbsp;:</span><span style="font-size: 9pt; color: black; font-family: 宋体">chown&nbsp;jessie:users&nbsp;file1.txt&nbsp;</span></p>
<p><span style="font-size: 9pt; color: black; font-family: 宋体">Mysql </span><span style="font-size: 9pt; color: black; font-family: 宋体">初始化：chkconfig &#8211;add mysqld </span></p>
<p><span style="font-size: 9pt; color: black; font-family: 宋体">正在使用的端口：netstat -ant</span></p>
<p><span style="font-size: 9pt; color: black; font-family: 宋体">挂载USB： mount &nbsp;/dev/sdc&nbsp;/mnt/usb</span></p>
<p><span style="font-size: 9pt; font-family: 宋体">Rpm </span><span style="font-size: 9pt; font-family: 宋体">安装： rpm &#8211;ivh&nbsp;filename</span></p>
<p><span style="font-size: 9pt; font-family: 宋体">www</span><span style="font-size: 9pt; font-family: 宋体">服务配置：/etc/httpd/conf/httpd.conf</span></p>
<p><span style="font-size: 9pt; font-family: 宋体">网络测试：curl&nbsp;-I&nbsp;<a href="http://www.job5156.com/">http://www.job5156.com</a></span></p>
<p><span style="font-size: 9pt; font-family: 宋体">改IP地址：ifconfig&nbsp;eth0 192.168.2.29 netmask&nbsp;255.255.255.0</span></p>
<p><span style="font-size: 9pt; font-family: 宋体">改网关：route add default gw 192.168.2.254&nbsp;&nbsp; 查看：route &#8211;n</span></p>
<p><span style="font-size: 9pt; font-family: 宋体">改DNS：nano -w /etc/resolv.conf&nbsp;&nbsp;<br />
<br />
<br />
</span><span style="font-size: 9pt; font-family: 宋体">导出表结构：mysqldump&nbsp;-u&nbsp;root&nbsp;-p&nbsp;-d&nbsp;--add-drop-table&nbsp;dbName tableName &gt; /opt/name.sql </span></p>
<p><span style="font-size: 9pt; font-family: 宋体">导入表结构：mysql dbName &lt; name.sql</span></p>
<p><span style="font-size: 9pt; font-family: 宋体">修复Mysql表：&nbsp;mysqlrepair&nbsp;--auto-repair -F -r </span><span style="font-size: 9pt; font-family: 宋体">dbName &nbsp;tableName</span></p>
<p><span style="font-size: 9pt; font-family: 宋体">给mysql用户加账号权限： grant all on dbName.* to user@'%' identified by 'pwd'; FLUSH PRIVILEGES;</span></p>
<p><span style="font-size: 9pt; font-family: 宋体">加字段：</span><span style="font-size: 9pt; font-family: 宋体">ALTER TABLE table_name ADD field_name field_type;</span></p>
<p><span style="font-size: 9pt; font-family: 宋体">删字段：alter table t2 drop column c;</span></p>
<p><span style="font-size: 9pt; font-family: 宋体">字段重命名：alter table t1 change a b integer;</span></p>
<p><span style="font-size: 9pt; font-family: 宋体">表重命名：alter table t1 rename t2;</span></p>
<p><span style="font-size: 9pt; font-family: 宋体">加索引：alter table tablename add index 索引名 (字段名1[，字段名2 &#8230;]);</span></p>
<p><span style="font-size: 9pt; font-family: 宋体">删索引：alter table tablename drop index emp_name;</span></p><img src ="http://www.blogjava.net/Alpha/aggbug/318526.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Alpha/" target="_blank">Alpha</a> 2010-04-16 15:17 <a href="http://www.blogjava.net/Alpha/archive/2010/04/16/318526.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>tar用法</title><link>http://www.blogjava.net/Alpha/archive/2008/07/02/212043.html</link><dc:creator>Alpha</dc:creator><author>Alpha</author><pubDate>Wed, 02 Jul 2008 01:31:00 GMT</pubDate><guid>http://www.blogjava.net/Alpha/archive/2008/07/02/212043.html</guid><wfw:comment>http://www.blogjava.net/Alpha/comments/212043.html</wfw:comment><comments>http://www.blogjava.net/Alpha/archive/2008/07/02/212043.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/Alpha/comments/commentRss/212043.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Alpha/services/trackbacks/212043.html</trackback:ping><description><![CDATA[<br />
<p><font face="宋体"><font style="font-size: 16px" color="#0000ff"><strong>.tar</strong></font><br />
解包：tar xvf FileName.tar<br />
打包：tar cvf FileName.tar DirName<br />
（注：tar是打包，不是压缩！）<br />
---------------------------------------------<br />
<font style="font-size: 16px" color="#0000ff"><strong>.gz<br />
</strong></font>解压1：gunzip FileName.gz<br />
解压2：gzip -d FileName.gz<br />
压缩：gzip FileName<br />
<strong><font style="font-size: 16px" color="#0000ff">.tar.gz 和 .tgz<br />
</font></strong>解压：tar zxvf FileName.tar.gz<br />
压缩：tar zcvf FileName.tar.gz DirName<br />
---------------------------------------------<br />
<strong><font style="font-size: 16px" color="#0000ff">.bz2</font></strong><br />
解压1：bzip2 -d FileName.bz2<br />
解压2：bunzip2 FileName.bz2<br />
压缩： bzip2 -z FileName<br />
<strong><font style="font-size: 16px" color="#0000ff">.tar.bz2<br />
</font></strong>解压：tar jxvf FileName.tar.bz2<br />
压缩：tar jcvf FileName.tar.bz2 DirName<br />
---------------------------------------------<br />
<strong><font style="font-size: 16px" color="#0000ff">.bz</font></strong><br />
解压1：bzip2 -d FileName.bz<br />
解压2：bunzip2 FileName.bz<br />
压缩：未知<br />
<strong><font style="font-size: 16px" color="#0000ff">.tar.bz<br />
</font></strong>解压：tar jxvf FileName.tar.bz<br />
压缩：未知<br />
---------------------------------------------<br />
<strong><font style="font-size: 16px" color="#0000ff">.Z</font></strong><br />
解压：uncompress FileName.Z<br />
压缩：compress FileName<br />
<strong><font style="font-size: 16px" color="#0000ff">.tar.Z<br />
</font></strong>解压：tar Zxvf FileName.tar.Z<br />
压缩：tar Zcvf FileName.tar.Z DirName<br />
---------------------------------------------<br />
<strong><font style="font-size: 16px" color="#0000ff">.zip<br />
</font></strong>解压：unzip FileName.zip<br />
压缩：zip FileName.zip DirName<br />
---------------------------------------------<br />
<strong><font style="font-size: 16px" color="#0000ff">.rar</font></strong><br />
解压：rar x FileName.rar<br />
压缩：rar a FileName.rar DirName</font></p>
<p><font face="宋体"><font style="font-size: 12px" color="#009900">rar请到：http://www.rarsoft.com/download.htm 下载！<br />
解压后请将rar_static拷贝到/usr/bin目录（其他由$PATH环境变量指定的目录也可以）：<br />
[root@www2 tmp]# cp rar_static /usr/bin/rar<br />
</font>---------------------------------------------<br />
<strong><font style="font-size: 16px" color="#0000ff">.lha<br />
</font></strong>解压：lha -e FileName.lha<br />
压缩：lha -a FileName.lha FileName</font></p>
<p><font face="宋体"><font style="font-size: 12px" color="#009900">lha请到：http://www.infor.kanazawa-it.ac.jp/~ishii/lhaunix/下载！<br />
&gt;解压后请将lha拷贝到/usr/bin目录（其他由$PATH环境变量指定的目录也可以）：<br />
[root@www2 tmp]# cp lha /usr/bin/<br />
</font>---------------------------------------------<br />
<strong><font style="font-size: 16px" color="#0000ff">.rpm</font></strong><br />
解包：rpm2cpio FileName.rpm | cpio -div<br />
---------------------------------------------<br />
<strong><font style="font-size: 16px" color="#0000ff">.deb</font></strong><br />
解包：ar p FileName.deb data.tar.gz | tar zxf -<br />
---------------------------------------------<br />
<strong><font style="font-size: 16px" color="#0000ff">.tar .tgz .tar.gz .tar.Z .tar.bz .tar.bz2 .zip .cpio .rpm .deb .slp .arj .rar .ace .lha .lzh .lzx .lzs .arc .sda .sfx .lnx .zoo .cab .kar .cpt .pit .sit .sea<br />
</font></strong>解压：sEx x FileName.*<br />
压缩：sEx a FileName.* FileName</font></p>
<br /><img src ="http://www.blogjava.net/Alpha/aggbug/212043.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Alpha/" target="_blank">Alpha</a> 2008-07-02 09:31 <a href="http://www.blogjava.net/Alpha/archive/2008/07/02/212043.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>关于Gentoo Linux</title><link>http://www.blogjava.net/Alpha/archive/2007/03/29/107299.html</link><dc:creator>Alpha</dc:creator><author>Alpha</author><pubDate>Thu, 29 Mar 2007 10:36:00 GMT</pubDate><guid>http://www.blogjava.net/Alpha/archive/2007/03/29/107299.html</guid><wfw:comment>http://www.blogjava.net/Alpha/comments/107299.html</wfw:comment><comments>http://www.blogjava.net/Alpha/archive/2007/03/29/107299.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Alpha/comments/commentRss/107299.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Alpha/services/trackbacks/107299.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: Gentoo Linux是一种可以针对任何应用和需要而自动优化和自定义的特殊的Linux发行版。Gentoo拥有优秀的性能、高度的可配置性和一流的用户及开发社区。&nbsp;&nbsp;<a href='http://www.blogjava.net/Alpha/archive/2007/03/29/107299.html'>阅读全文</a><img src ="http://www.blogjava.net/Alpha/aggbug/107299.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Alpha/" target="_blank">Alpha</a> 2007-03-29 18:36 <a href="http://www.blogjava.net/Alpha/archive/2007/03/29/107299.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[ZT]Linux常用命令一份 </title><link>http://www.blogjava.net/Alpha/archive/2006/09/04/67545.html</link><dc:creator>Alpha</dc:creator><author>Alpha</author><pubDate>Mon, 04 Sep 2006 03:39:00 GMT</pubDate><guid>http://www.blogjava.net/Alpha/archive/2006/09/04/67545.html</guid><wfw:comment>http://www.blogjava.net/Alpha/comments/67545.html</wfw:comment><comments>http://www.blogjava.net/Alpha/archive/2006/09/04/67545.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/Alpha/comments/commentRss/67545.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Alpha/services/trackbacks/67545.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 推荐：Linux常用命令一份 &nbsp;&nbsp;<a href='http://www.blogjava.net/Alpha/archive/2006/09/04/67545.html'>阅读全文</a><img src ="http://www.blogjava.net/Alpha/aggbug/67545.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Alpha/" target="_blank">Alpha</a> 2006-09-04 11:39 <a href="http://www.blogjava.net/Alpha/archive/2006/09/04/67545.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在Ubuntu Linux下方便的安装一些实用工具和软件 </title><link>http://www.blogjava.net/Alpha/archive/2006/02/02/29469.html</link><dc:creator>Alpha</dc:creator><author>Alpha</author><pubDate>Thu, 02 Feb 2006 06:20:00 GMT</pubDate><guid>http://www.blogjava.net/Alpha/archive/2006/02/02/29469.html</guid><wfw:comment>http://www.blogjava.net/Alpha/comments/29469.html</wfw:comment><comments>http://www.blogjava.net/Alpha/archive/2006/02/02/29469.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Alpha/comments/commentRss/29469.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Alpha/services/trackbacks/29469.html</trackback:ping><description><![CDATA[Linux对于一般的用户而言，最容易遇到的是诸如如何播放MP3、DVD、流媒体、安装字体、nVidia显卡驱动、Java、更新的Firefox和插件等等。有人做了一个方便易用的小工具帮你完成这些，只需要执行下面的两行命令来安装：<BR><BR>wget http://beerorkid.com/automatix/automatix-ubuntu_4.4-2_i386.deb <BR>sudo dpkg -i automatix-ubuntu_4.4-2_i386.deb 
<P>原文见：<BR><A href="http://www.pcworld.com/reviews/article/0,aid,124519,00.asp" target=_blank>http://www.pcworld.com/reviews/article/0,aid,124519,00.asp</A><BR><BR><BR>//=======更新一下=======<BR><BR>上面提到的那个下载链接已经失效，请使用以下命令：<BR><BR>wget http://beerorkid.com/automatix/automatix_5.1-1_i386.deb <BR>sudo dpkg -i automatix_5.1-1_i386.deb <BR><BR><BR>//=======补充一下========<BR><BR>今天发现的地方～～～<BR><BR>这两个地方对安装和使用Ubuntu Linux很有帮助！<BR><BR><A href="http://www.ubuntu.org.cn/support/documentation/guide">http://www.ubuntu.org.cn/support/documentation/guide</A><BR><BR>和<BR><BR><A href="http://www.douban.com/group/topic/1026791/">http://www.douban.com/group/topic/1026791/</A><BR><BR><BR>========================================================<BR><BR><SPAN class=postbody><FONT size=2>不需要安装，不需要专门转化分区，不需要备份数据，不需要准备空白分区，直接使用，并且不会对你现有的系统造成任何的不适。 <BR><BR>需要下载： <BR>VMware-player (免费，28M) <BR></FONT><A href="http://download.ubuntu.org.cn/ubuntu/VMware-player-1.0.0-18587.exe" target=_blank><FONT color=#006699 size=2>http://download.ubuntu.org.cn/ubuntu/VMware-player-1.0.0-18587.exe</FONT></A><FONT size=2> <BR><BR>Ubuntu-cn(1.1G ，解压缩需要3G) <BR></FONT><A href="http://download.ubuntu.org.cn/ubuntu/Ubuntu-cn.rar" target=_blank><FONT color=#006699 size=2>http://download.ubuntu.org.cn/ubuntu/Ubuntu-cn.rar</FONT></A><FONT size=2> <BR><BR>默认帐号：ubuntu 密码：ubuntu <BR><BR>以上所有的东西都是免费的，先从虚拟机开始体验整个Ubuntu的魅力！ <BR><BR>系统：使用uming字体，解决了粗体，安装了jdk1.5-5，解决了jdk中文，安装了xmms和amule，也设置了xmms的中文和xmms的输出默认为esd，安装了sshd和vsftpd，允许使用用户登陆。安装了编译环境，安装了vmware-tools，性能得到提升。安装了最新的lumaqq，安装了中文版的adobereader7。安装了totem-xine和解码器，安装了scim输入法和整个中文环境。</FONT></SPAN><SPAN class=postbody></SPAN><SPAN class=gensmall><BR></SPAN><BR><BR><BR></P><img src ="http://www.blogjava.net/Alpha/aggbug/29469.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Alpha/" target="_blank">Alpha</a> 2006-02-02 14:20 <a href="http://www.blogjava.net/Alpha/archive/2006/02/02/29469.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>