2013年6月30日星期日

wordpress缓存插件Quick Cache ( Speed Without Compromise )

wordpress程序的加速插件很多,我们常用的有cos-html-cache、really-static、hyper-cache、wp-super-cache等等等等,反正很多。他们各自有各自的特点,也适用于不同类型的主机。
今天给大家介绍的这款插件虽然体积有点大1.69M,但是他的功能和他的体积真的一样的强大。刚装上体验了一下,速度真的快了不少。
软件的选项很多,你自己安装后看看。

1.jpg 

一、quick cache(on/off)
安装好插件默认是关闭着的,无需多说,你首先要开启这个选项,插件才能生效。
二、Internal Debugging
内部调试,人家强烈介意你默认关闭,你就不要开了吧。
三、Logged In Users
对于已登录用户,就比如你自己管理网站的时候当然不需要使用缓存。建议开启就开启。
四、GET Requests
不要缓存字符串查询的请求,建议开启就开启。
五、Client-Side Cache
是否允许访客缓存,建议关闭。开启可以在原有的基础上更加快你的站点,用于更新不频繁的站点。
六、Cache Expiration Time
缓存过期时间,作者推荐,如果你的站点每个星期更新一次,你完全可以把缓存过期时间调为一个星期。默认是3600sec,也就是一小时。如果更新比较频繁的话,缓存过期时间应该设置的短一些。我自己设置的是43200 过期周期为12小时,另外过期时间设置的更长一点的话,我们更新文章后可以清除缓存。保证访问者看到的是最新的东西。
七、Dynamic Cache Pruning
动态修改缓存,也就是说当你更新或者修改了一篇文章、一个页面等,缓存中也会被相应的修改,而不是删除缓存。
几个选项的single:就是只修改单页。single+front page ,修改页面和前一页的修改,all 修改所有比较的缓慢。none 不修改等待缓存的过期。
八、No-Cache URI Patterns
一些特殊的目录文件不需要缓存的,不需动它。
九、No-Cache Referrer Patterns
对于一些引用的地址,不需要使用缓存的,填写在下面。一般不需要动它。
十、No-Cache User-Agent Patterns
这也就是移动装置的是被功能,在方框里填上不想手机访问缓存的设备。
我填写的是 移动设备列表
十一、Mutex File Locking
这项是什么使用云主机的需要设置的,我们就使用推荐的吧 ( Semaphore )
十二、MD5 Version Salt
不知道怎么用,!!!!
十三、Sitemap Auto-Caching
大多数推荐不需要那就不需要吧。
十四、Deactivation Safeguards
失效保障措施,就是你禁用了插件,或者插件莫名的失效,它默认会清除所有的设置,选择yes后,保存设置。
插件生效后的截图,
在未登录的情况下网页源代码,底部会有缓存生成时间和失效时间。有的话就说明生效了。

2.jpg 

我的使用感受:



  • 软件的原理: Quick Cache takes a real-time snapshot ( building a cache ) of every Page, Post, Category, Link, etc. These snapshots are then stored ( cached ) intuitively, so they can be referenced later。也就是所它把访客的请求都建立一个类似快照的缓存,在你设定的缓存有效的时间里再有别的访客访问此页面,就直接调用缓存,减少数据库的访问次数。
  • 使用了这个我果断把本来装着的hyper-cache删除掉,因为我是win主机,在ftp中看到虽然我启用了hyper-cache这插件但是cache文件夹中它永远是空的。并没有缓存任何的文件,没有效果(但是它在Linux主机上是有效的,测试过)之前不删它是因为它的能识别手机来访用户的功能,配合Mobilepress使用的,现在quick cache也有识别移动装置的功能,我果断删之。下面会具体说说怎么设置。
  • wp-super-cache的安装和需要静态化的要求我不能满足,所以我使用不了。别的一些也都安装过效果也就那样,正需要这样一款适用于任何主机的插件。
  • 此款插件可以和autoptimize一起使用,效果真是杠杠的。autoptimize负责压缩优化页面代码,Quick Cache负责缓存页面。
下面是两者一起使用的效果:代码很紧凑,页面加载也快。
3.jpg 

2013年6月28日星期五

视频:wordpress开发利器Sublime Text 2

 

Sublime Text 是一个代码编辑器(Sublime Text 2是收费软件,但目前可以无限期试用),也是HTML和散文先进的文本编辑器。Sublime Text是由程序员Jon Skinner于2008年1月份所开发出来,它最初被设计为一个具有丰富扩展功能的Vim。

wordpress最近刚刚度过了其十岁的生日,据统计全球前100W名的网站17%采用了wordpress系统建站,特别是科技类博客,大部分采用了wordpress系统,可见其流行程度。

 

Sublime Text 2其实跟wordpress有点类似,也是提供了大量的主题与插件,当然我们今天主要讲的就是它不止支持PHP,JAVA,C++等函数的联想,同样也支持wordpress系统函数的联想,这样我们在开发wordpress主题或者插件时,就不需要担心函数是否写错了,下面让我们来看下如何让Sublime Text 2支持wordpress函数的联想:

 

1、下载Sublime Text 2,并安装(安装都点next所以就不都说了)。

2、下载Sublime Text 2 WordPress Package,解压,并放入Sublime Text 2Packages中,打开Packages的方法如下图(Perferences= > Browser Packages):

 

3、点击File=》Open File打开你的wordpress文件夹,在plugins目录添加个测试插件sublime2-test.php,在添加add_action()函数时就可以看到联想效果了,如下图:

 

 

手把手教你nginx下如何增加网站 图文教程

此教程来自阿里云


先进入到nginx的配置文件目录

请输入以下命令


复制代码


  1. cd /alidata/server/nginx/conf/vhosts



再输入


复制代码


  1. ll


看看是不是像下面截图的一样




用神器xftp将default.conf.bak拖到本地,用文本编辑器打开。建议使用emeditor 。

xftp的使用请参考这里:http://bbs.aliyun.com/read.php?tid=3337 




按照下图所示进行修改,设定好网站域名和网站目录。



如果您需要配置针对该网站的伪静态规则,请设定好伪静态调用文件,并同时在rewrite目录放置好伪静态规则文件。如图所示。





我们在rewrite目录下已经预设了部分常见程序的伪静态规则。




例如如果您使用的是phpcms程序。只需将配置文件如下图所示进行修改。




好了。都调整完毕!





将文件另存一下,请注意图片所示参数设置




再用xftp将文件上传到服务器上

新建下网站目录




  1. mkdir -p /alidata/www/网站目录名




下面测试下我们配置的文件是否正确吧

输入




  1. /alidata/server/nginx/sbin/nginx -t






看到了么?



引用

nginx: the configuration file /alidata/server/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /alidata/server/nginx/conf/nginx.conf test is successful



如果出现以上两句话就说明配置成功了。下面重启下nginx




  1. /alidata/server/nginx/sbin/nginx -s reload



恭喜您,网站配置完成!

Centos 5.8安装搭建LAMP、LNMP环境教程

MYSQL


Mysql安装涉及软件包:

mysql:包含了客户端以及必需的一些基础库文件。
mysql-server:Mysql服务器端以及相关文件。

安装命令:

yum install mysql mysql-server

命令解释:

yum install意思是安装软件,通过在后面跟定软件名称即可。
yum同样可以通过不同参数来实现不同功能,同样包括软件包清理,软件升级,系统升级等。

 

PHP

Centos 5.8支持两个PHP版本:PHP 5.1跟PHP5.3。这俩版本是不能共存的,对于一些比较老的网站可能会要求用PHP5.1版本才行,此事选择Centos 5.8就是个比较好的选择。同时针对Centos 5.8提供安装PHP5.1以及PHP5.3的方法。

预备工作:

因为Centos 5.8默认软件比较少,我们需要添加一个软件源来增加可用的软件数目,这其中包括PHP5.3

个人推荐的是erpl软件源。这个软件源中包含了经过在Fedora上测试可行,并在Red Hat跟Centos上通过测试的软件。既保证了软件的丰富程度同时也保证了服务器的稳定性。


安装命令:

wget http://mirrors.sohu.com/fedora-epel/5/i386/epel-release-5-4.noarch.rpm

rpm -ivh http://mirrors.sohu.com/fedora-epel/5/i386/epel-release-5-4.noarch.rpm

命令解释:

wget是Linux下一个小型的下载工具,支持http、https(我觉得这个最强大,迅雷貌似就不能支持https)以及ftp协议。一般简单的下载工作用他就行了,如果使用脚本的话也可以实现强大的下载功能。

rpm是对独立rpm包进行管理的软件。如果yum是全面管理的话,rpm就是深入到对每个单独的软件包进行管理。-ivh的意义为安装软件包输出Hash标记并输出详细信息。

PHP安装涉及软件包:

php.x86_64 : PHP服务器端主程序

php-cli.x86_64 : PHP命令行操作工具

php-common.x86_64 : PHP共用基础文件

php-gd.x86_64 : PHP的GD模块

php-imap.x86_64 : PHP的IMAP模块,使PHP可以使用IMAP协议

php-mbstring.x86_64 : 用于需要处理多字节字符(比如传输处理中文,因为英文只有一个字节,中文有三个字节,同时UTF-8编码是三个字节)的PHP程序

php-mcrypt.x86_64 : 标注PHP mcrypt模块。主要提供加密功能

php-mysql.x86_64 : PHP的Mysql模块。使用Mysql必备

php-snmp.x86_64 : PHP的SNMP模块

php-xml.x86_64 : PHP的XML模块,供那些需要使用XML的PHP程序使用,比如phpwind

安装命令:

yum install php php-cli php-common php-gd php-imap.x86_64 php-mbstring php-mcrypt php-mysql php-snmp php-xml

提示:

Centos 5.8上运行完此命令最终安装版本为PHP5.1,供一些老网站使用。

PHP5.3安装涉及软件包:

php53.x86_64 : PHP服务器端处理程序

php53-cli.x86_64 : PHP命令行工具

php53-common.x86_64 : PHP共用基础文件

php53-gd.x86_64 : PHP的GD模块

php53-imap.x86_64 : PHP的IMAP模块

php53-ldap.x86_64 : PHP的LDAP模块

php53-mbstring.x86_64 : 用于需要处理多字节字符的PHP程序

php53-mcrypt.x86_64 : 标准PHP模块,提供mcrypt库支持。

php53-snmp.x86_64 : PHP的SNMP模块

php53-xml.x86_64 : PHP的XML模块。

安装命令;

yum install php53 php53-cli php53-common php53-gd php53-imap php53-ldap php53-mbstring php53-mcrypt php53-snmp php53-xml

 

Apache

Apache安装涉及软件包:

httpd.x86_64 : Apache服务器

Apache安装命令:

yum install httpd

 

Nginx安装涉及软件包

nginx.x86_64 : 健壮,小巧,高效的HTTP和反向代理服务器

collectd-nginx.x86_64 : Nginx插件集合

安装命令:

yum install nginx collectd-nginx



 

service mysqld start 启动Mysql
service httpd start  启动Apache
service nginx start  启动Nginx

 

PHPMYADMIN的安装

#wget -c http://soft.vpser.net/datebase/phpmyadmin/phpmyadmin-latest.tar.gz

#tar zxf phpmyadmin-latest.tar.gz

#mv phpMyAdmin-3.4.8-all-languages /home/wwwroot/default/phpmyadmin/

#cp conf/config.inc.php /home/wwwroot/default/phpmyadmin/config.inc.php

#sed -i 's/LNMPORG/LNMP.org'$RANDOM'VPSer.net/g' /home/wwwroot/default/phpmyadmin/config.inc.php

#mkdir /home/wwwroot/default/phpmyadmin/upload/

#mkdir /home/wwwroot/default/phpmyadmin/save/

#chmod 755 -R /home/wwwroot/default/phpmyadmin/

#chown www:www -R /home/wwwroot/default/phpmyadmin/

2013年6月27日星期四

怎么学习英语

今天看到这句话觉得很精辟,摘下来保存 哈哈

 

背单词是纠结一滴水

背句子是杯水车薪

背文章才能看到大海

2013年6月24日星期一

给默认空白的MySQL添加密码

手动给 root帐户添加新密码,因为默认情况下的root没有开启密码保护功能,
c:\>mysql -u root
mysql>set password for 'root'@'localhost'=password('newpasswd');

解决Nginx下WordPress后台 404 问题

1、登录shell,vim编辑Nginx配置目录(一般是在/usr/local/nginx/conf/)下的"wordpress.conf",当然如果你像我一样用的是自己写的conf文件,那就改对应的那个重定向配置文件就好。


vim /usr/local/nginx/conf/wordpress.conf


2、把官方给的那一行加到文件最后面就行了


location /blog/ {
if ($host != 'www.slyar.com' ) {
rewrite ^/(.*)$ http://www.fengxy.org/$1 permanent;
}
if (-f $request_filename/index.html){
rewrite (.*) $1/index.html break;
}
if (-f $request_filename/index.php){
rewrite (.*) $1/index.php;
}
if (!-f $request_filename){
rewrite (.*) /blog/index.php;
}
}


rewrite /wp-admin$ $scheme://$host$uri/ permanent;


3、:wq保存重启nginx即可


#/root/lnmp restart

2013年6月23日星期日

XEN架构VPS LNMP环境内存优化

第一步:Nginx的优化

编辑Nginx主配置文件:/usr/local/nginx/conf/nginx.conf

修改这个地方,这是修改后的,您可以按你的内存修改buffer 大小,多少。我的512M内存修改成现在这个配置

fastcgi_connect_timeout 300;

fastcgi_send_timeout 300;

fastcgi_read_timeout 300;

fastcgi_buffer_size 32k;

fastcgi_buffers 4 32k;

fastcgi_busy_buffers_size 64k;

fastcgi_temp_file_write_size 128k;

在上面这几个参数修改后,#/root/lnmp reload。

我的内存真实占用从51%降到了36%左右。

image

至于其他朋友说的php-fpm优化,我见和我的默认参数差不多,就没有进行修改了。

还是列出来让大家参考一下吧。

第二步:php-fpm的优化

编辑php-fpm配置文件:/usr/local/php/etc/php-fpm.conf

<value name="max_children">2</value> #默认是50

<value name="StartServers">2</value> #默认是20

<value name="MinSpareServers">2</value> #默认是5

<value name="MaxSpareServers">2</value> #默认是35

最后重载一下lnmp服务:/root/lnmp reload

LNMP下,wordpress无法切换主题,只显示当前主题解决方法

又换了VPS,又开始折腾VPS,LNMP。


网站搬过来后,发现wordpress后台无法切换主题,只能显示当前主题,开始还以为是文件没传完,又重置了一遍,还是一样。百度得知,原来军哥的LNMP安装包默认关闭了scandir函数,为了安全考虑。


找到问题所在很简单,其实军哥在安装包里面已经说明关闭了一些函数,自己研究下哈。用putty登陆,找到


/usr/local/php/etc/php.ini


下载下来进行编辑,ctrl+f查找disable_functions,


 


disable_functions = passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server


 

找到我们要使用的scandir函数,删除。


再执行:


/etc/init.d/php-fpm restart


重启PHP


OK,登陆wordpress后台,久违的主题切换已经可用,并且可以编辑咯。


被禁用的函数,在LNMP默认安装的探针里也可以看得到。


lnmp disable functions

一键lnmp1.0需要手动添加伪静态规则

LNMP1.0一键安装时没有像之前一样让手动输入网站名,网站文件路径,网站日志等信息,都是按默认添加的。

所以,必须手动添加伪静态规则,否则除首页外,都会显示404页面,至少我的wodpress网站搬过来是这样的。

编辑默认的nginx.conf文件,在server{}里面添加一行代码即可  include wordpress.conf;  

当然如果你是其他程序的网站添加其他伪静态配置文件即可。除了wordpress 还有discuz、discuzx、sablog、emlog、dabr、phpwind、wp2(二级目录wp伪静态)、dedecms、drupal、ecshop、shopex。

 

[root@MyCloudServer conf]# pwd

/usr/local/nginx/conf

[root@MyCloudServer conf]# vi nginx.conf
user  www www;
worker_processes 1;
error_log  /home/wwwlogs/nginx_error.log  crit;
pid        /usr/local/nginx/logs/nginx.pid;
#Specifies the value for maximum file descriptors that can be opened by this process.
worker_rlimit_nofile 51200;
events
        {
                use epoll;
                worker_connections 51200;
        }
http
        {
                include       mime.types;
                default_type  application/octet-stream;
                server_names_hash_bucket_size 128;
                client_header_buffer_size 32k;
                large_client_header_buffers 4 32k;
                client_max_body_size 50m;
                sendfile on;
                tcp_nopush     on;
                keepalive_timeout 60;
                tcp_nodelay on;
                fastcgi_connect_timeout 300;
                fastcgi_send_timeout 300;
                fastcgi_read_timeout 300;
                fastcgi_buffer_size 64k;
                fastcgi_buffers 4 64k;
                fastcgi_busy_buffers_size 128k;
                fastcgi_temp_file_write_size 256k;
                gzip on;
                gzip_min_length  1k;
                gzip_buffers     4 16k;
                gzip_http_version 1.0;
                gzip_comp_level 2;
                gzip_types       text/plain application/x-javascript text/css application/xml;
                gzip_vary on;
                gzip_proxied        expired no-cache no-store private auth;
                gzip_disable        "MSIE [1-6]\.";
                #limit_zone  crawler  $binary_remote_addr  10m;
                server_tokens off;
                #log format
                log_format  access  '$remote_addr - $remote_user [$time_local] "$request" '
             '$status $body_bytes_sent "$http_referer" '
             '"$http_user_agent" $http_x_forwarded_for';
server
        {
                listen       80;
                server_name www.lnmp.org;
                index index.html index.htm index.php;
                root  /home/wwwroot/default;
                include wordpress.conf;
                location ~ .*\.(php|php5)?$
                        {
                                try_files $uri =404;
                                fastcgi_pass  unix:/tmp/php-cgi.sock;
                                fastcgi_index index.php;
                                include fcgi.conf;
                        }
                location /status {
                        stub_status on;
                        access_log   off;
                }
                location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
                        {
                                expires      30d;
                        }
                location ~ .*\.(js|css)?$
                        {
                                expires      12h;
                        }
                access_log  /home/wwwlogs/access.log  access;
        }
include vhost/*.conf;
}

 

linux如何实现覆盖复制cp?

 

# vi ~/.bashrc

 

如果你看到如下内容,以下命令都会用别名执行了,就是说自动加了 -i 参数

alias rm='rm -i'

alias cp='cp -i'

alias mv='mv -i'

 

为了让复制和移动大量文件去覆盖目标时,不会产生一个个的提示,命令应该这样写

# \cp -rf /home/fengxy.org/* /www/fengxy.org/

注意 cp 命令前加了 \ ,意思是不让它用~/.bashrc里的别名运行,即 -i 参数

该命令的各选项含义如下

- a 该选项通常在拷贝目录时使用。它保留链接、文件属性,并递归地拷贝目录,其作用等于dpR选项的组合。

- d 拷贝时保留链接。

- f 删除已经存在的目标文件而不提示。

- i 和f选项相反,在覆盖目标文件之前将给出提示要求用户确认。回答y时目标文件将被覆盖,是交互式拷贝。

- p 此时cp除复制源文件的内容外,还将把其修改时间和访问权限也复制到新文件中。

- r 若给出的源文件是一目录文件,此时cp将递归复制该目录下所有的子目录和文件。此时目标文件必须为一个目录名。

- l 不作拷贝,只是链接文件。

需要说明的是,为防止用户在不经意的情况下用cp命令破坏另一个文件,如用户指定的目标文件名是一个已存在的文件名,用cp命令拷贝文件后,这个文件就会被新拷贝的源文件覆盖,因此,建议用户在使用cp命令拷贝文件时,最好使用i选项。

2013年6月21日星期五

phpmyamin error

LNMP环境,今天在安装第二个网站是出的问题。

phpmyadmin error

打开phpmyadmin时就发现页面错误,没有css样式, 输入帐号 密码(无论对错),都返回默认网站的首页,并在首页域名后加上了index.php.

打开phpmyadmin首页就是这样,然后查看源代码发现所有相关文件的路径都指向是网站根目录,而实际上的phpmyadin路径应该是http://www.fengxy.org/phpmaydmin


比如/print.css这个文件,实际地址应该是
http://www.fengxy.org/phpmaydmin/print.css
但现在指向的是http://www.fengxy.org/print.css
重新下载phpmyadmin也是一样,不知道为什么
我的网站环境是LNMP+wordpress
用的是aliyun提供的一键安装包

今天终于找到了原因:
 lnmp默认会把不带/的当成页面,不是目录
如果是目录就得加/


感谢群友 奶牛 http://lbbzj.com

贝宝捐赠功能官方说明

贝宝捐赠易于安装和使用:



  1. 登录到贝宝账户

  2. 点击“商家工具”选项卡

  3. 点击“捐赠”链接

  4. 指定捐赠的名称、数额(可选;如果将数额留空,系统将要求您的捐赠人选择一个捐赠数额)和其他详细信息

  5. 添加更多可选信息,如自定义的按钮图片和在捐赠中包含提示的能力

  6. 点击立即创建按钮,按钮工厂将生成自定义的 HTML 代码

  7. 将 HTML 代码粘贴到您的网站上,以创建捐赠按钮


当买家点击捐赠按钮时,他将进入一个安全的贝宝付款页面,在该页面上,他可以登录到现有的贝宝账户或注册一个新账户,并快速完成交易。












“贝宝捐赠”的 HTML 代码


 


有经验的 HTML 用户可以跳过按钮工厂,并通过直接更改 HTML 代码创建自己的捐赠按钮。以下示范代码显示了创建“捐赠”按钮(在本例中,将捐赠创建为一个“Team In Training”)所需的最少信息:


 <form name="_xclick" action="https://www.paypal.com/cn/cgi-bin/webscr" method="post">


<input type="hidden" name="cmd" value="_xclick">


<input type="hidden" name="business" value="fxd2006@gmail.com">


<input type="hidden" name="item_name" value="Thanks for your donate!">


<input type="hidden" name="currency_code" value="USD">


<input type="hidden" name="amount" value="">


<input type="image" src="https://www.paypal.com/enGB/i/btn/btndonateCC_LG.gif" border="0" name="submit" alt="Thanks for your donate!">


</form>


效果如下:








  


喜欢吗?Donate me!


淘宝无敌了,感觉一下子QJ了

taobao jq my domain


这个域名http://www.haotao001.com 都几年了,结果今天在开放平台申请API时。。。。。悲剧了


淘宝坑爹啊,感觉一下子被QJ了,


这是他们的说明。。。。唉,垄断了不起啊 X


近期,在xTao网站合作审核中,发现部分站点因“网站名称、域名、favicon、内容等,侵犯阿里集团品牌,违反《淘宝联盟(推广者)合作规范》“,而未审核通过。 
       针对此条款中,域名不合规款项,做下补充说明:网站合作接入审核中,对域名中含有“ali”、“alibaba”、“tao”、“taobao”、“tmall”、“etao”的站点,将统一无法通过审核。 
       有关该审核事项的具体说明,请参见《淘宝联盟(推广者)合作规范》,链接:http://help.alimama.com/support/search_result.htm?spm=0.0.0.179.xWp5Is&catid=23
       对此,请合作伙伴重新申请域名,进行网站合作接入。

2013年6月19日星期三

我怎样毁了我的一生

《我怎样毁了我的一生》描写了一个男人的经历。在他有如过山车一般的人生中,他体会到了成功、失败、幸福以及悲哀,他的人生跌宕起伏、发人深省。生命的价值究竟在哪里?人到底要不要长大?人是否应该为自己而活?
《我怎样毁了我的一生》是一则简练而深刻的人生寓言。值得我们深思。























































































































































































































 

2013年6月18日星期二

如何连接两个局域网

需要通过VPN方式

1)两端的路由器是否支持VPN,支持的话,可以用PPTP或L2TP方式建立VPN隧道,并且要求2个局域网内网网段不能冲突

2)如果路由器不支持,就需要购买专门的VPN设备来实现

2013年6月16日星期日

在 Gmail 设置中启用 IMAP gmail客户端设置教程

如果您尚未决定使用 POP 还是 IMAP,我们建议您使用 IMAP。

与 POP 不同,IMAP 可在网络 Gmail 与电子邮件客户端之间提供双向通信。这意味着当您使用网络浏览器登录到 Gmail 时,您在电子邮件客户端和移动设备上执行的操作(例如,将邮件移至“工作”文件夹)将立即自动反映在 Gmail 中(例如,在您下次登录时,这封电子邮件已具有一个“工作”标签)。

此外,IMAP 还提供了从多台设备访问邮件的更好方法。如果您在单位、在手机上,然后还要在家里查看电子邮件,IMAP 可确保您随时能够从任何设备访问新的邮件。

最后,IMAP 可以从整体上提供更稳定的使用体验。POP 较容易发生丢失邮件或多次下载相同邮件的现象,而 IMAP 可以通过在邮件客户端和网络 Gmail 之间进行双向同步的功能来避免发生此类情况。

 

您可以使用支持 IMAP 的客户端或设备(例如,Microsoft Outlook 或 Apple Mail)检索 Gmail 邮件。

在 Gmail 设置中启用 IMAP

  1. 登录 Gmail。
  2. 点击右上方的齿轮图标 ,然后选择设置
  3. 点击转发和 POP/IMAP
  4. 选择启用 IMAP
  5. 点击保存更改

注意:在使用 Gmail 的基本 HTML 视图时该设置不可用。要启用 IMAP,请改用标准视图。

在 Gmail 设置中启用 IMAP 之后,您需要配置您的客户端。选择以下一个客户端可以查看其具体配置说明。Outlook / Windows Mail

打开 Outlook 或 Windows Mail。

单击 Tools(工具)菜单,然后选择 Accounts or Email Accounts(帐户或电子邮件帐户)

单击 Add(添加)。

许多客户端会为您的帐户自动配置相应的 IMAP 连接设置,但请确保您的客户端所配置的连接设置与以下列出的设置相同。

 

如果上文未列出您使用的客户端,也可使用以下信息来配置 IMAP。

接收邮件 (IMAP) 服务器 - 要求 SSL

imap.gmail.com

端口:993

要求 SSL:是

发送邮件 (SMTP) 服务器 - 要求 TLS

smtp.gmail.com

端口:465 或 587

要求 SSL:是

要求身份验证:是

使用相同的设置作为接收邮件服务器

完整姓名或显示姓名:[您的姓名]

帐户名称或用户名称:您的完整 Gmail 地址 (username@gmail.com)。若您是 Google Apps 用户,请输入 username@your_domain.com

电子邮件地址:您的完整 Gmail 地址 (username@gmail.com) 若您是 Google Apps 用户,请输入 username@your_domain.com

密码:您的 Gmail 密码

如果您的客户端不支持 SMTP 身份验证,您将无法使用 Gmail 地址通过客户端发送邮件。

此外,如果您在发送邮件方面遇到问题,而您已确认邮件客户端中的 SMTP 加密有效,请尝试将 SMTP 服务器配置为使用另一个端口:465 或 587。



 

 

2013年6月11日星期二

linux下查看软件版本

一般情况下 使用软件包查询即可列出
[root@girlappleminet ~]# rpm -qa | grep mysql
mysql-server-5.0.95-5.el5_9
mysql-5.0.95-5.el5_9
如果没有查询结果,可使用 软件名 -v 查看,如下
[root@girlappleminet ~]# php -v
PHP 5.3.6 (cli) (built: May 26 2013 19:10:04) 
Copyright (c) 1997-2011 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2011 Zend Technologies
    with eAccelerator v0.9.6.1, Copyright (c) 2004-2010 eAccelerator, by eAccelerator
    with Zend Guard Loader v3.3, Copyright (c) 1998-2010, by Zend Technologies

如何卸载lnmp

如果是lnmp一键安装的

进入安装包目录

[root@www home]# cd lnmp0.9-full

[root@www lnmp0.9-full]# ls

然后

[root@www lnmp0.9-full]# ./uninstall.sh

=========================================================================
LNMP V0.8 for CentOS/RadHat Linux VPS  Written by Licess
=========================================================================
A tool to auto-compile & install Nginx+MySQL+PHP on Linux
For more information please visit http:/www.lnmp.org/
Please backup your mysql data and configure files first!!!!!
=========================================================================
Please backup your mysql data!!!!!
Press any key to start uninstall LNMP , please wait ......
按任意键就可以进行卸载。
=========================================================================
如果是自己一步一步配置的LNMP环境那么
killall nginx *//终止nginx进程
/etc/init.d/mysql stop *//关闭mysql
killall mysqld *//终止mysql进程
/usr/local/php/sbin/php-fpm stop *//关闭php
killall php-cgi *//终止php-cgi进程
rm -rf /usr/local/php *//删除php文件
rm -rf /usr/local/nginx *//删除nginx文件
rm -rf /usr/local/mysql *//删除mysql文件
rm -rf /usr/local/zend *//删除zend文件
rm /etc/my.cnf *//删除配置文件
rm /etc/init.d/mysql *//删除mysql文件
rm /root/vhost.sh *//删除配置虚拟主机脚本
rm /root/lnmp *//删除lnmp文件夹

 

Linux系统常用命令大全 备查

系统信息 

arch 显示机器的处理器架构(1) 
uname -m 显示机器的处理器架构(2) 
uname -r 显示正在使用的内核版本 
dmidecode -q 显示硬件系统部件 - (SMBIOS / DMI) 
hdparm -i /dev/hda 罗列一个磁盘的架构特性 
hdparm -tT /dev/sda 在磁盘上执行测试性读取操作 
cat /proc/cpuinfo 显示CPU info的信息 
cat /proc/interrupts 显示中断 
cat /proc/meminfo 校验内存使用 
cat /proc/swaps 显示哪些swap被使用 
cat /proc/version 显示内核的版本 
cat /proc/net/dev 显示网络适配器及统计 
cat /proc/mounts 显示已加载的文件系统 
lspci -tv 罗列 PCI 设备 
lsusb -tv 显示 USB 设备 
date 显示系统日期 
cal 2007 显示2007年的日历表 
date 041217002007.00 设置日期和时间 - 月日时分年.秒 
clock -w 将时间修改保存到 BIOS 
关机 (系统的关机、重启以及登出 ) 
shutdown -h now 关闭系统(1) 
init 0 关闭系统(2) 
telinit 0 关闭系统(3) 
shutdown -h hours:minutes & 按预定时间关闭系统 
shutdown -c 取消按预定时间关闭系统 
shutdown -r now 重启(1) 
reboot 重启(2) 
logout 注销 
文件和目录 

cd /home 进入 '/ home' 目录' 
cd .. 返回上一级目录 
cd ../.. 返回上两级目录 
cd 进入个人的主目录 
cd ~user1 进入个人的主目录 
cd - 返回上次所在的目录 
pwd 显示工作路径 
ls 查看目录中的文件 
ls -F 查看目录中的文件 
ls -l 显示文件和目录的详细资料 
ls -a 显示隐藏文件 
ls *[0-9]* 显示包含数字的文件名和目录名 
tree 显示文件和目录由根目录开始的树形结构(1) 
lstree 显示文件和目录由根目录开始的树形结构(2) 
mkdir dir1 创建一个叫做 'dir1' 的目录' 
mkdir dir1 dir2 同时创建两个目录 
mkdir -p /tmp/dir1/dir2 创建一个目录树 
rm -f file1 删除一个叫做 'file1' 的文件' 
rmdir dir1 删除一个叫做 'dir1' 的目录' 
rm -rf dir1 删除一个叫做 'dir1' 的目录并同时删除其内容 
rm -rf dir1 dir2 同时删除两个目录及它们的内容 
mv dir1 new_dir 重命名/移动 一个目录 
cp file1 file2 复制一个文件 
cp dir/* . 复制一个目录下的所有文件到当前工作目录 
cp -a /tmp/dir1 . 复制一个目录到当前工作目录 
cp -a dir1 dir2 复制一个目录 
ln -s file1 lnk1 创建一个指向文件或目录的软链接 
ln file1 lnk1 创建一个指向文件或目录的物理链接 
touch -t 0712250000 file1 修改一个文件或目录的时间戳 - (YYMMDDhhmm) 
file file1 outputs the mime type of the file as text 
iconv -l 列出已知的编码 
iconv -f fromEncoding -t toEncoding inputFile > outputFile creates anew from the given input file by assuming it is encoded in fromEncodingand converting it to toEncoding. 
find . -maxdepth 1 -name *.jpg -print -exec convert "{}" -resize 80x60"thumbs/{}" \; batch resize files in the current directory and send themto a thumbnails directory (requires convert from Imagemagick) 
文件搜索 

find / -name file1 从 '/' 开始进入根文件系统搜索文件和目录 
find / -user user1 搜索属于用户 'user1' 的文件和目录 
find /home/user1 -name \*.bin 在目录 '/ home/user1' 中搜索带有'.bin' 结尾的文件 
find /usr/bin -type f -atime  100 搜索在过去100天内未被使用过的执行文件 
find /usr/bin -type f -mtime -10 搜索在10天内被创建或者修改过的文件 
find / -name \*.rpm -exec chmod 755 '{}' \; 搜索以 '.rpm' 结尾的文件并定义其权限 
find / -xdev -name \*.rpm 搜索以 '.rpm' 结尾的文件,忽略光驱、捷盘等可移动设备 
locate \*.ps 寻找以 '.ps' 结尾的文件 - 先运行 'updatedb' 命令 
whereis halt 显示一个二进制文件、源码或man的位置 
which halt 显示一个二进制文件或可执行文件的完整路径 
挂载一个文件系统 
mount /dev/hda2 /mnt/hda2 挂载一个叫做hda2的盘 - 确定目录 '/ mnt/hda2' 已经存在 
umount /dev/hda2 卸载一个叫做hda2的盘 - 先从挂载点 '/ mnt/hda2' 退出 
fuser -km /mnt/hda2 当设备繁忙时强制卸载 
umount -n /mnt/hda2 运行卸载操作而不写入 /etc/mtab 文件- 当文件为只读或当磁盘写满时非常有用 
mount /dev/fd0 /mnt/floppy 挂载一个软盘 
mount /dev/cdrom /mnt/cdrom 挂载一个cdrom或dvdrom 
mount /dev/hdc /mnt/cdrecorder 挂载一个cdrw或dvdrom 
mount /dev/hdb /mnt/cdrecorder 挂载一个cdrw或dvdrom 
mount -o loop file.iso /mnt/cdrom 挂载一个文件或ISO镜像文件 
mount -t vfat /dev/hda5 /mnt/hda5 挂载一个Windows FAT32文件系统 
mount /dev/sda1 /mnt/usbdisk 挂载一个usb 捷盘或闪存设备 
mount -t smbfs -o username=user,password=pass //WinClient/share /mnt/share 挂载一个windows网络共享 
磁盘空间 

df -h 显示已经挂载的分区列表 
ls -lSr |more 以尺寸大小排列文件和目录 
du -sh dir1 估算目录 'dir1' 已经使用的磁盘空间' 
du -sk * | sort -rn 以容量大小为依据依次显示文件和目录的大小 
rpm -q -a --qf '{SIZE}t%{NAME}n' | sort -k1,1n 以大小为依据依次显示已安装的rpm包所使用的空间 (fedora, redhat类系统)
dpkg-query -W -f='${Installed-Size;10}t${Package}n' | sort -k1,1n 以大小为依据显示已安装的deb包所使用的空间 (ubuntu, debian类系统) 
用户和群组 

groupadd group_name 创建一个新用户组 
groupdel group_name 删除一个用户组 
groupmod -n new_group_name old_group_name 重命名一个用户组 
useradd -c "Name Surname " -g admin -d /home/user1 -s /bin/bash user1 创建一个属于 "admin" 用户组的用户 
useradd user1 创建一个新用户 
userdel -r user1 删除一个用户 ( '-r' 排除主目录) 
usermod -c "User FTP" -g system -d /ftp/user1 -s /bin/nologin user1 修改用户属性 
passwd 修改口令 
passwd user1 修改一个用户的口令 (只允许root执行) 
chage -E 2005-12-31 user1 设置用户口令的失效期限 
pwck 检查 '/etc/passwd' 的文件格式和语法修正以及存在的用户 
grpck 检查 '/etc/passwd' 的文件格式和语法修正以及存在的群组 
newgrp group_name 登陆进一个新的群组以改变新创建文件的预设群组 
文件的权限 - 使用 " " 设置权限,使用 "-" 用于取消 
ls -lh 显示权限 
ls /tmp | pr -T5 -W$COLUMNS 将终端划分成5栏显示 
chmod ugo rwx directory1 设置目录的所有人(u)、群组(g)以及其他人(o)以读(r )、写(w)和执行(x)的权限 
chmod go-rwx directory1 删除群组(g)与其他人(o)对目录的读写执行权限 
chown user1 file1 改变一个文件的所有人属性 
chown -R user1 directory1 改变一个目录的所有人属性并同时改变改目录下所有文件的属性 
chgrp group1 file1 改变文件的群组 
chown user1:group1 file1 改变一个文件的所有人和群组属性 
find / -perm -u s 罗列一个系统中所有使用了SUID控制的文件 
chmod u s /bin/file1 设置一个二进制文件的 SUID 位 - 运行该文件的用户也被赋予和所有者同样的权限 
chmod u-s /bin/file1 禁用一个二进制文件的 SUID位 
chmod g s /home/public 设置一个目录的SGID 位 - 类似SUID ,不过这是针对目录的 
chmod g-s /home/public 禁用一个目录的 SGID 位 
chmod o t /home/public 设置一个文件的 STIKY 位 - 只允许合法所有人删除文件 
chmod o-t /home/public 禁用一个目录的 STIKY 位 
文件的特殊属性 - 使用 " " 设置权限,使用 "-" 用于取消 
chattr  a file1 只允许以追加方式读写文件 
chattr  c file1 允许这个文件能被内核自动压缩/解压 
chattr  d file1 在进行文件系统备份时,dump程序将忽略这个文件 
chattr  i file1 设置成不可变的文件,不能被删除、修改、重命名或者链接 
chattr  s file1 允许一个文件被安全地删除 
chattr  S file1 一旦应用程序对这个文件执行了写操作,使系统立刻把修改的结果写到磁盘 
chattr  u file1 若文件被删除,系统会允许你在以后恢复这个被删除的文件 
lsattr 显示特殊的属性 
打包和压缩文件 
bunzip2 file1.bz2 解压一个叫做 'file1.bz2'的文件 
bzip2 file1 压缩一个叫做 'file1' 的文件 
gunzip file1.gz 解压一个叫做 'file1.gz'的文件 
gzip file1 压缩一个叫做 'file1'的文件 
gzip -9 file1 最大程度压缩 
rar a file1.rar test_file 创建一个叫做 'file1.rar' 的包 
rar a file1.rar file1 file2 dir1 同时压缩 'file1', 'file2' 以及目录 'dir1' 
rar x file1.rar 解压rar包 
unrar x file1.rar 解压rar包 
tar -cvf archive.tar file1 创建一个非压缩的 tarball 
tar -cvf archive.tar file1 file2 dir1 创建一个包含了 'file1', 'file2' 以及 'dir1'的档案文件 
tar -tf archive.tar 显示一个包中的内容 
tar -xvf archive.tar 释放一个包 
tar -xvf archive.tar -C /tmp 将压缩包释放到 /tmp目录下 
tar -cvfj archive.tar.bz2 dir1 创建一个bzip2格式的压缩包 
tar -xvfj archive.tar.bz2 解压一个bzip2格式的压缩包 
tar -cvfz archive.tar.gz dir1 创建一个gzip格式的压缩包 
tar -xvfz archive.tar.gz 解压一个gzip格式的压缩包 
zip file1.zip file1 创建一个zip格式的压缩包 
zip -r file1.zip file1 file2 dir1 将几个文件和目录同时压缩成一个zip格式的压缩包 
unzip file1.zip 解压一个zip格式压缩包 
RPM 包 - (Fedora, Redhat及类似系统)
 
rpm -ivh package.rpm 安装一个rpm包 
rpm -ivh --nodeeps package.rpm 安装一个rpm包而忽略依赖关系警告 
rpm -U package.rpm 更新一个rpm包但不改变其配置文件 
rpm -F package.rpm 更新一个确定已经安装的rpm包 
rpm -e package_name.rpm 删除一个rpm包 
rpm -qa 显示系统中所有已经安装的rpm包 
rpm -qa | grep httpd 显示所有名称中包含 "httpd" 字样的rpm包 
rpm -qi package_name 获取一个已安装包的特殊信息 
rpm -qg "System Environment/Daemons" 显示一个组件的rpm包 
rpm -ql package_name 显示一个已经安装的rpm包提供的文件列表 
rpm -qc package_name 显示一个已经安装的rpm包提供的配置文件列表 
rpm -q package_name --whatrequires 显示与一个rpm包存在依赖关系的列表 
rpm -q package_name --whatprovides 显示一个rpm包所占的体积 
rpm -q package_name --scripts 显示在安装/删除期间所执行的脚本l 
rpm -q package_name --changelog 显示一个rpm包的修改历史 
rpm -qf /etc/httpd/conf/httpd.conf 确认所给的文件由哪个rpm包所提供 
rpm -qp package.rpm -l 显示由一个尚未安装的rpm包提供的文件列表 
rpm --import /media/cdrom/RPM-GPG-KEY 导入公钥数字证书 
rpm --checksig package.rpm 确认一个rpm包的完整性 
rpm -qa gpg-pubkey 确认已安装的所有rpm包的完整性 
rpm -V package_name 检查文件尺寸、 许可、类型、所有者、群组、MD5检查以及最后修改时间 
rpm -Va 检查系统中所有已安装的rpm包- 小心使用 
rpm -Vp package.rpm 确认一个rpm包还未安装 
rpm2cpio package.rpm | cpio --extract --make-directories *bin* 从一个rpm包运行可执行文件 
rpm -ivh /usr/src/redhat/RPMS/`arch`/package.rpm 从一个rpm源码安装一个构建好的包 
rpmbuild --rebuild package_name.src.rpm 从一个rpm源码构建一个 rpm 包 
YUM 软件包升级器 - (Fedora, RedHat及类似系统) 
yum install package_name 下载并安装一个rpm包 
yum localinstall package_name.rpm 将安装一个rpm包,使用你自己的软件仓库为你解决所有依赖关系 
yum update package_name.rpm 更新当前系统中所有安装的rpm包 
yum update package_name 更新一个rpm包 
yum remove package_name 删除一个rpm包 
yum list 列出当前系统中安装的所有包 
yum search package_name 在rpm仓库中搜寻软件包 
yum clean packages 清理rpm缓存删除下载的包 
yum clean headers 删除所有头文件 
yum clean all 删除所有缓存的包和头文件 
DEB 包 (Debian, Ubuntu 以及类似系统) 
dpkg -i package.deb 安装/更新一个 deb 包 
dpkg -r package_name 从系统删除一个 deb 包 
dpkg -l 显示系统中所有已经安装的 deb 包 
dpkg -l | grep httpd 显示所有名称中包含 "httpd" 字样的deb包 
dpkg -s package_name 获得已经安装在系统中一个特殊包的信息 
dpkg -L package_name 显示系统中已经安装的一个deb包所提供的文件列表 
dpkg --contents package.deb 显示尚未安装的一个包所提供的文件列表 
dpkg -S /bin/ping 确认所给的文件由哪个deb包提供 
APT 软件工具 (Debian, Ubuntu 以及类似系统) 
apt-get install package_name 安装/更新一个 deb 包 
apt-cdrom install package_name 从光盘安装/更新一个 deb 包 
apt-get update 升级列表中的软件包 
apt-get upgrade 升级所有已安装的软件 
apt-get remove package_name 从系统删除一个deb包 
apt-get check 确认依赖的软件仓库正确 
apt-get clean 从下载的软件包中清理缓存 
apt-cache search searched-package 返回包含所要搜索字符串的软件包名称 
查看文件内容 

cat file1 从第一个字节开始正向查看文件的内容 
tac file1 从最后一行开始反向查看一个文件的内容 
more file1 查看一个长文件的内容 
less file1 类似于 'more' 命令,但是它允许在文件中和正向操作一样的反向操作 
head -2 file1 查看一个文件的前两行 
tail -2 file1 查看一个文件的最后两行 
tail -f /var/log/messages 实时查看被添加到一个文件中的内容 
文本处理 
cat file1 file2 ... | command <> file1_in.txt_or_file1_out.txtgeneral syntax for text manipulation using PIPE, STDIN and STDOUT 
cat file1 | command( sed, grep, awk, grep, etc...) > result.txt 合并一个文件的详细说明文本,并将简介写入一个新文件中 
cat file1 | command( sed, grep, awk, grep, etc...) >> result.txt 合并一个文件的详细说明文本,并将简介写入一个已有的文件中 
grep Aug /var/log/messages 在文件 '/var/log/messages'中查找关键词"Aug" 
grep ^Aug /var/log/messages 在文件 '/var/log/messages'中查找以"Aug"开始的词汇 
grep [0-9] /var/log/messages 选择 '/var/log/messages' 文件中所有包含数字的行 
grep Aug -R /var/log/* 在目录 '/var/log' 及随后的目录中搜索字符串"Aug" 
sed 's/stringa1/stringa2/g' example.txt 将example.txt文件中的 "string1" 替换成 "string2" 
sed '/^$/d' example.txt 从example.txt文件中删除所有空白行 
sed '/ *#/d; /^$/d' example.txt 从example.txt文件中删除所有注释和空白行 
echo 'esempio' | tr '[:lower:]' '[:upper:]' 合并上下单元格内容 
sed -e '1d' result.txt 从文件example.txt 中排除第一行 
sed -n '/stringa1/p' 查看只包含词汇 "string1"的行 
sed -e 's/ *$//' example.txt 删除每一行最后的空白字符 
sed -e 's/stringa1//g' example.txt 从文档中只删除词汇 "string1" 并保留剩余全部 
sed -n '1,5p;5q' example.txt 查看从第一行到第5行内容 
sed -n '5p;5q' example.txt 查看第5行 
sed -e 's/00*/0/g' example.txt 用单个零替换多个零 
cat -n file1 标示文件的行数 
cat example.txt | awk 'NR%2==1' 删除example.txt文件中的所有偶数行 
echo a b c | awk '{print $1}' 查看一行第一栏 
echo a b c | awk '{print $1,$3}' 查看一行的第一和第三栏 
paste file1 file2 合并两个文件或两栏的内容 
paste -d ' ' file1 file2 合并两个文件或两栏的内容,中间用" "区分 
sort file1 file2 排序两个文件的内容 
sort file1 file2 | uniq 取出两个文件的并集(重复的行只保留一份) 
sort file1 file2 | uniq -u 删除交集,留下其他的行 
sort file1 file2 | uniq -d 取出两个文件的交集(只留下同时存在于两个文件中的文件) 
comm -1 file1 file2 比较两个文件的内容只删除 'file1' 所包含的内容 
comm -2 file1 file2 比较两个文件的内容只删除 'file2' 所包含的内容 
comm -3 file1 file2 比较两个文件的内容只删除两个文件共有的部分 
字符设置和文件格式转换 

dos2unix filedos.txt fileunix.txt 将一个文本文件的格式从MSDOS转换成UNIX 
unix2dos fileunix.txt filedos.txt 将一个文本文件的格式从UNIX转换成MSDOS 
recode ..HTML < page.txt > page.html 将一个文本文件转换成html 
recode -l | more 显示所有允许的转换格式 
文件系统分析 
badblocks -v /dev/hda1 检查磁盘hda1上的坏磁块 
fsck /dev/hda1 修复/检查hda1磁盘上linux文件系统的完整性 
fsck.ext2 /dev/hda1 修复/检查hda1磁盘上ext2文件系统的完整性 
e2fsck /dev/hda1 修复/检查hda1磁盘上ext2文件系统的完整性 
e2fsck -j /dev/hda1 修复/检查hda1磁盘上ext3文件系统的完整性 
fsck.ext3 /dev/hda1 修复/检查hda1磁盘上ext3文件系统的完整性 
fsck.vfat /dev/hda1 修复/检查hda1磁盘上fat文件系统的完整性 
fsck.msdos /dev/hda1 修复/检查hda1磁盘上dos文件系统的完整性 
dosfsck /dev/hda1 修复/检查hda1磁盘上dos文件系统的完整性 
初始化一个文件系统 

mkfs /dev/hda1 在hda1分区创建一个文件系统 
mke2fs /dev/hda1 在hda1分区创建一个linux ext2的文件系统 
mke2fs -j /dev/hda1 在hda1分区创建一个linux ext3(日志型)的文件系统 
mkfs -t vfat 32 -F /dev/hda1 创建一个 FAT32 文件系统 
fdformat -n /dev/fd0 格式化一个软盘 
mkswap /dev/hda3 创建一个swap文件系统 
SWAP文件系统 
mkswap /dev/hda3 创建一个swap文件系统 
swapon /dev/hda3 启用一个新的swap文件系统 
swapon /dev/hda2 /dev/hdb3 启用两个swap分区 
备份 

dump -0aj -f /tmp/home0.bak /home 制作一个 '/home' 目录的完整备份 
dump -1aj -f /tmp/home0.bak /home 制作一个 '/home' 目录的交互式备份 
restore -if /tmp/home0.bak 还原一个交互式备份 
rsync -rogpav --delete /home /tmp 同步两边的目录 
rsync -rogpav -e ssh --delete /home ip_address:/tmp 通过SSH通道rsync 
rsync -az -e ssh --delete ip_addr:/home/public /home/local 通过ssh和压缩将一个远程目录同步到本地目录 
rsync -az -e ssh --delete /home/local ip_addr:/home/public 通过ssh和压缩将本地目录同步到远程目录 
dd bs=1M if=/dev/hda | gzip | ssh user@ip_addr 'dd of=hda.gz' 通过ssh在远程主机上执行一次备份本地磁盘的操作 
dd if=/dev/sda of=/tmp/file1 备份磁盘内容到一个文件 
tar -Puf backup.tar /home/user 执行一次对 '/home/user' 目录的交互式备份操作 
( cd /tmp/local/ && tar c . ) | ssh -C user@ip_addr 'cd /home/share/ && tar x -p' 通过ssh在远程目录中复制一个目录内容 
( tar c /home ) | ssh -C user@ip_addr 'cd /home/backup-home && tar x -p' 通过ssh在远程目录中复制一个本地目录 
tar cf - . | (cd /tmp/backup ; tar xf - ) 本地将一个目录复制到另一个地方,保留原有权限及链接 
find /home/user1 -name '*.txt' | xargs cp -av --target-directory=/home/backup/ --parents 从一个目录查找并复制所有以 '.txt' 结尾的文件到另一个目录 
find /var/log -name '*.log' | tar cv --files-from=- | bzip2 > log.tar.bz2 查找所有以 '.log' 结尾的文件并做成一个bzip包 
dd if=/dev/hda of=/dev/fd0 bs=512 count=1 做一个将 MBR (Master Boot Record)内容复制到软盘的动作 
dd if=/dev/fd0 of=/dev/hda bs=512 count=1 从已经保存到软盘的备份中恢复MBR内容 
光盘 

cdrecord -v gracetime=2 dev=/dev/cdrom -eject blank=fast -force 清空一个可复写的光盘内容 
mkisofs /dev/cdrom > cd.iso 在磁盘上创建一个光盘的iso镜像文件 
mkisofs /dev/cdrom | gzip > cd_iso.gz 在磁盘上创建一个压缩了的光盘iso镜像文件 
mkisofs -J -allow-leading-dots -R -V "Label CD" -iso-level 4 -o ./cd.iso data_cd 创建一个目录的iso镜像文件 
cdrecord -v dev=/dev/cdrom cd.iso 刻录一个ISO镜像文件 
gzip -dc cd_iso.gz | cdrecord dev=/dev/cdrom - 刻录一个压缩了的ISO镜像文件 
mount -o loop cd.iso /mnt/iso 挂载一个ISO镜像文件 
cd-paranoia -B 从一个CD光盘转录音轨到 wav 文件中 
cd-paranoia -- "-3" 从一个CD光盘转录音轨到 wav 文件中(参数-3) 
cdrecord --scanbus 扫描总线以识别scsi通道 
dd if=/dev/hdc | md5sum 校验一个设备的md5sum编码,例如一张 CD 
网络 - (以太网和WIFI无线)
 
ifconfig eth0 显示一个以太网卡的配置 
ifup eth0 启用一个 'eth0' 网络设备 
ifdown eth0 禁用一个 'eth0' 网络设备 
ifconfig eth0 192.168.1.1 netmask 255.255.255.0 控制IP地址 
ifconfig eth0 promisc 设置 'eth0' 成混杂模式以嗅探数据包 (sniffing) 
dhclient eth0 以dhcp模式启用 'eth0' 
route -n show routing table 
route add -net 0/0 gw IP_Gateway configura default gateway 
route add -net 192.168.0.0 netmask 255.255.0.0 gw 192.168.1.1 configure static route to reach network '192.168.0.0/16' 
route del 0/0 gw IP_gateway remove static route 
echo "1" > /proc/sys/net/ipv4/ip_forward activate ip routing 
hostname show hostname of system 
host www.example.com lookup hostname to resolve name to ip address and viceversa(1) 
nslookup www.example.com lookup hostname to resolve name to ip address and viceversa(2) 
ip link show show link status of all interfaces 
mii-tool eth0 show link status of 'eth0' 
ethtool eth0 show statistics of network card 'eth0' 
netstat -tup show all active network connections and their PID 
netstat -tupl show all network services listening on the system and their PID 
tcpdump tcp port 80 show all HTTP traffic 
iwlist scan show wireless networks 
iwconfig eth1 show configuration of a wireless network card 
hostname show hostname 
host www.example.com lookup hostname to resolve name to ip address and viceversa 
nslookup www.example.com lookup hostname to resolve name to ip address and viceversa 
whois www.example.com lookup on Whois database 
Microsoft Windows networks (SAMBA) 
nbtscan ip_addr netbios name resolution 
nmblookup -A ip_addr netbios name resolution 
smbclient -L ip_addr/hostname show remote shares of a windows host 
smbget -Rr smb://ip_addr/share like wget can download files from a host windows via smb 
mount -t smbfs -o username=user,password=pass //WinClient/share /mnt/share mount a windows network share

2013年6月9日星期日

在vi中显示行号

vi 进入vi模式

:set number

使用 Nginx 提升网站访问速度

使用 Nginx 前必须了解的事项

  1. 目前官方 Nginx 并不支持 Windows,您只能在包括 Linux、UNIX、BSD 系统下安装和使用;
  2. Nginx 本身只是一个 HTTP 和反向代理服务器,它无法像 Apache 一样通过安装各种模块来支持不同的页面脚本,例如 PHP、CGI 等;
  3. Nginx 支持简单的负载均衡和容错;
  4. 支持作为基本 HTTP 服务器的功能,例如日志、压缩、Byte ranges、Chunked responses、SSL、虚拟主机等等,应有尽有。

在 Linux 下安装 Nginx

为了确保能在 Nginx 中使用正则表达式进行更灵活的配置,安装之前需要确定系统是否安装有 PCRE(Perl Compatible Regular Expressions)包。您可以到 ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/ 下载最新的 PCRE 源码包,使用下面命令下载编译和安装 PCRE 包:

# wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-7.7.tar.gz
# tar zxvf pcre-7.7.tar.gz
# cd pcre-7.7
# ./configure
# make
# make install


接下来安装 Nginx,Nginx 一般有两个版本,分别是稳定版和开发版,您可以根据您的目的来选择这两个版本的其中一个,下面是把 Nginx 安装到 /opt/nginx 目录下的详细步骤:

# wget http://sysoev.ru/nginx/nginx-0.6.31.tar.gz
# tar zxvf nginx-0.6.31.tar.gz
# cd nginx-0.6.31
# ./configure --with-http_stub_status_module –prefix=/opt/nginx
# make
# make install


其中参数 --with-http_stub_status_module 是为了启用 nginx 的 NginxStatus 功能,用来监控 Nginx 的当前状态。

安装成功后 /opt/nginx 目录下有四个子目录分别是:conf、html、logs、sbin 。其中 Nginx 的配置文件存放于 conf/nginx.conf,Nginx 只有一个程序文件位于 sbin 目录下的 nginx 文件。确保系统的 80 端口没被其他程序占用,运行 sbin/nginx 命令来启动 Nginx,打开浏览器访问此机器的 IP,如果浏览器出现 Welcome to nginx! 则表示 Nginx 已经安装并运行成功。

常用的 Nginx 参数和控制

程序运行参数

Nginx 安装后只有一个程序文件,本身并不提供各种管理程序,它是使用参数和系统信号机制对 Nginx 进程本身进行控制的。 Nginx 的参数包括有如下几个:

-c <path_to_config>:使用指定的配置文件而不是 conf 目录下的 nginx.conf 。

-t:测试配置文件是否正确,在运行时需要重新加载配置的时候,此命令非常重要,用来检测所修改的配置文件是否有语法错误。

-v:显示 nginx 版本号。

-V:显示 nginx 的版本号以及编译环境信息以及编译时的参数。

例如我们要测试某个配置文件是否书写正确,我们可以使用以下命令

sbin/nginx – t – c conf/nginx2.conf


通过信号对 Nginx 进行控制

Nginx 支持下表中的信号:

信号名作用描述
TERM, INT快速关闭程序,中止当前正在处理的请求
QUIT处理完当前请求后,关闭程序
HUP重新加载配置,并开启新的工作进程,关闭就的进程,此操作不会中断请求
USR1重新打开日志文件,用于切换日志,例如每天生成一个新的日志文件
USR2平滑升级可执行程序
WINCH从容关闭工作进程


有两种方式来通过这些信号去控制 Nginx,第一是通过 logs 目录下的 nginx.pid 查看当前运行的 Nginx 的进程 ID,通过 kill – XXX <pid> 来控制 Nginx,其中 XXX 就是上表中列出的信号名。如果您的系统中只有一个 Nginx 进程,那您也可以通过 killall 命令来完成,例如运行 killall – s HUP nginx 来让 Nginx 重新加载配置。

配置 Nginx

先来看一个实际的配置文件:

 user  nobody;# 工作进程的属主
worker_processes 4;# 工作进程数,一般与 CPU 核数等同

#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;

#pid logs/nginx.pid;

events {
use epoll;#Linux 下性能最好的 event 模式
worker_connections 2048;# 每个工作进程允许最大的同时连接数
}

http {
include mime.types;
default_type application/octet-stream;

#log_format main '$remote_addr - $remote_user [$time_local] $request '
# '"$status" $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';

#access_log off;
access_log logs/access.log;# 日志文件名

sendfile on;
#tcp_nopush on;
tcp_nodelay on;

keepalive_timeout 65;

include gzip.conf;

# 集群中的所有后台服务器的配置信息
upstream tomcats {
server 192.168.0.11:8080 weight=10;
server 192.168.0.11:8081 weight=10;
server 192.168.0.12:8080 weight=10;
server 192.168.0.12:8081 weight=10;
server 192.168.0.13:8080 weight=10;
server 192.168.0.13:8081 weight=10;
}

server {
listen 80;#HTTP 的端口
server_name localhost;

charset utf-8;

#access_log logs/host.access.log main;

location ~ ^/NginxStatus/ {
stub_status on; #Nginx 状态监控配置
access_log off;
}

location ~ ^/(WEB-INF)/ {
deny all;
}


location ~ \.(htm|html|asp|php|gif|jpg|jpeg|png|bmp|ico|rar|css|js|
zip|java|jar|txt|flv|swf|mid|doc|ppt|xls|pdf|txt|mp3|wma)$ {
root /opt/webapp;
expires 24h;
}

location / {
proxy_pass http://tomcats;# 反向代理
include proxy.conf;
}

error_page 404 /html/404.html;

# redirect server error pages to the static page /50x.html
#
error_page 502 503 /html/502.html;
error_page 500 504 /50x.html;
location = /50x.html {
root html;
}
}
}


Nginx 监控

上面是一个实际网站的配置实例,其中灰色文字为配置说明。上述配置中,首先我们定义了一个 location ~ ^/NginxStatus/,这样通过 http://localhost/NginxStatus/ 就可以监控到 Nginx 的运行信息,显示的内容如下:

Active connections: 70 
server accepts handled requests
14553819 14553819 19239266
Reading: 0 Writing: 3 Waiting: 67


NginxStatus 显示的内容意思如下:

  • active connections – 当前 Nginx 正处理的活动连接数。
  • server accepts handled requests -- 总共处理了 14553819 个连接 , 成功创建 14553819 次握手 ( 证明中间没有失败的 ), 总共处理了 19239266 个请求 ( 平均每次握手处理了 1.3 个数据请求 )。
  • reading -- nginx 读取到客户端的 Header 信息数。
  • writing -- nginx 返回给客户端的 Header 信息数。
  • waiting -- 开启 keep-alive 的情况下,这个值等于 active - (reading + writing),意思就是 Nginx 已经处理完正在等候下一次请求指令的驻留连接。

静态文件处理

通过正则表达式,我们可让 Nginx 识别出各种静态文件,例如 images 路径下的所有请求可以写为:

location ~ ^/images/ {
root /opt/webapp/images;
}


而下面的配置则定义了几种文件类型的请求处理方式。

location ~ \.(htm|html|gif|jpg|jpeg|png|bmp|ico|css|js|txt)$ {
root /opt/webapp;
expires 24h;
}


对于例如图片、静态 HTML 文件、js 脚本文件和 css 样式文件等,我们希望 Nginx 直接处理并返回给浏览器,这样可以大大的加快网页浏览时的速度。因此对于这类文件我们需要通过 root 指令来指定文件的存放路径,同时因为这类文件并不常修改,通过 expires指令来控制其在浏览器的缓存,以减少不必要的请求。 expires 指令可以控制 HTTP 应答中的“ Expires ”和“ Cache-Control ”的头标(起到控制页面缓存的作用)。您可以使用例如以下的格式来书写 Expires:

expires 1 January, 1970, 00:00:01 GMT;
expires 60s;
expires 30m;
expires 24h;
expires 1d;
expires max;
expires off;


动态页面请求处理

Nginx 本身并不支持现在流行的 JSP、ASP、PHP、PERL 等动态页面,但是它可以通过反向代理将请求发送到后端的服务器,例如 Tomcat、Apache、IIS 等来完成动态页面的请求处理。前面的配置示例中,我们首先定义了由 Nginx 直接处理的一些静态文件请求后,其他所有的请求通过 proxy_pass 指令传送给后端的服务器(在上述例子中是 Tomcat)。最简单的 proxy_pass 用法如下:

location / {
proxy_pass http://localhost:8080;
proxy_set_header X-Real-IP $remote_addr;
}


这里我们没有使用到集群,而是将请求直接送到运行在 8080 端口的 Tomcat 服务上来完成类似 JSP 和 Servlet 的请求处理。

当页面的访问量非常大的时候,往往需要多个应用服务器来共同承担动态页面的执行操作,这时我们就需要使用集群的架构。 Nginx 通过 upstream 指令来定义一个服务器的集群,最前面那个完整的例子中我们定义了一个名为 tomcats 的集群,这个集群中包括了三台服务器共 6 个 Tomcat 服务。而 proxy_pass 指令的写法变成了:

location / {
proxy_pass http://tomcats;
proxy_set_header X-Real-IP $remote_addr;
}


在 Nginx 的集群配置中,Nginx 使用最简单的平均分配规则给集群中的每个节点分配请求。一旦某个节点失效时,或者重新起效时,Nginx 都会非常及时的处理状态的变化,以保证不会影响到用户的访问。

总结

尽管整个程序包只有五百多 K,但麻雀虽小、五脏俱全。 Nginx 官方提供的各种功能模块应有尽有,结合这些模块可以完整各种各样的配置要求,例如:压缩、防盗链、集群、FastCGI、流媒体服务器、Memcached 支持、URL 重写等等,更关键的是 Nginx 拥有 Apache 和其他 HTTP 服务器无法比拟的高性能。您甚至可以在不改变原有网站的架构上,通过在前端引入 Nginx 来提升网站的访问速度。

本文只是简单介绍了 Nginx 的安装以及常见的基本的配置和使用,更多关于 Nginx 的信息请阅读文章后面的参考资源。在这里要非常感谢我的朋友——陈磊(chanix@msn.com),他一直在做 Nginx 的中文 WIKI(http://wiki.codemongers.com/NginxChs),同时也是他介绍给我这么好的一款软件。

如果您的网站是运行在 Linux 下,如果您并没有使用一些非常复杂的而且确定 Nginx 无法完成的功能,那您应该试试 Nginx 。