http://qiaodahai.com/
Posts tagged Linux
软件,一定要用正版
Aug 29th
问:使用正版软件需要理由吗?
答:不需要。
如果非要理由的话,简单说几点:
1、使用正版软件最大的优势在于安全性,众所周知,很多软件(包括操作系统)的所谓“破解版”都暗藏木马后门程序,伺机盗取个人隐私信息(比如帐号密码),而正版软件一般情况下不存在这个问题。
2、培养人们的版权意识,有利于软件行业的正常发展。如果大家都去使用盗版,正版软件卖不出去,没有资金来源,这个行业无法实现良性循环。
3、正版软件并不一定都价格高昂,也有很多免费的开源软件可供选择。不要以为Windows就是唯一,使用Linux+开源软件一样可以胜任日常工作,而且一分钱也不用花。当然开源技术的发展离不开资金的支持,如果你觉得你使用的软件好,可以捐助它,金额不限。
4、硬盘有价,数据无价!使用盗版软件比使用正版软件更有可能造成数据损坏或丢失等严重后果,一旦发生,得不偿失。
CentOS搭建LAMP详细教程
Aug 23rd
第一部分:
LAMP 是Linux、Apache、MySQL、PHP的首字母缩写,也就是在一台Linux服务器上安装带有PHP和Mysql支持的Apache网站服务器。
1. 说明
本文以BurstNET VPS主机为例,操作系统是CentOS5.5,独立服务器操作方法与VPS相同。域名请做好DNS指向。
2. 安装 Apache2
Apache2 已经包含在 CentOS 软件包中了,一般来说,系统已经默认安装完毕。如果没有,你可以使用下面的命令轻松安装它:
yum install httpd
系统会提示已需要安装的版本并自动安装,如有更新,系统会显示需要更新的版本。
如已经安装完毕将显示下述信息:
Package httpd-2.2.3-22.el5.centos.2.i386 already installed and latest version
Nothing to do
安装 Apache 后,你可以启动:
/etc/init.d/httpd start
可以查看运行状态:
/etc/init.d/httpd status
现在可以在浏览器中打开 http://domain.com(你的域名) 或 http://ip地址(VPS的IP地址),就可以看到 Apache 2 Test Page 页面。
如果是本地服务器,现在可以在浏览器中打开 http://localhost 或 http://127.0.0.1 ,看到 Apache 2 Test Page 页面。
修改配置文件:
vi /etc/httpd/conf/httpd.conf
可以修改侦听端口 80 -> 8080 :
#Listen 12.34.56.78:80
Listen 8080
你可以重启动服务:
/etc/init.d/httpd restart
接着继续再了解一下 apache2 这个版本的结构,这有助于我们配置应用:
/etc/httpd/conf/httpd.conf :最主要的配置文件;
/etc/httpd/conf.d/*.conf :这个是 CentOS 的特色,如果你不想修改原始配置文件 httpd.conf 的话,其他配置的在此独立配置,启动 apache 时,这个文件就会被读入到主要配置文件;
/usr/lib/httpd/modules :apache 支持很多的模块,您想要使用的模块默认都放置在此目录;
/var/www/html :这里是 CentOS 默认的“首页”目录;
/var/www/error :默认的系统错误信息,主机设置错误或浏览器端要求的数据错误,在浏览器上出现的错误提示就以这里的信息为主;
/var/www/icons :提供 apache 的一些小图标;
/var/www/cgi-bin :默认一些可执行的 CGI 程序放置的目录;
/var/log/httpd :日志文件目录,这里的文件很容易变的很大,需要提供足够的空间;
/usr/sbin/apachectl :这是 Apache 的主要执行文件,这个执行文件其实是 shell script ,它可以主动检测系统上的一些设置值,好让您启动 Apache 时更简单;
/usr/sbin/httpd :这是主要的 apache 的二进制文件;
/usr/bin/htpasswd :当您想登陆某些网页时,需要输入账号与密码。那么Apache本身就提供一个最基本的密码保护方式,该密码的产生就是通过这个命令实现的。
3. 安装 MySQL5
执行下面的命令来安装 MySQL:
yum install mysql mysql-server
然后启动 MySQL 服务器:
/etc/init.d/mysqld start
运行下面的命令来为 root 用户设置一个密码(否则的话任何人都可以访问你的MySQL数据库!):
mysqladmin -u root -p password 12345678
Enter password: 输入root密码以确认修改,一般root初始密码为空(上面的12345678为你想要的密码)
重新正常启动 MySQL:
/etc/init.d/mysqld stop
/etc/init.d/mysqld start
MySQL 有几个重要目录与文件:
/etc/my.cnf :这是Mysql的配置文件,包括 mysql 数据库的优化;
/usr/lib/mysql :这个目录是 MySQL 数据库放置的位置,务必在备份时将此目录完整的备份下来。
4. 安装 PHP5
使用下列命令来安装 PHP5 和 Apache 的 PHP5 模块:
yum install php
然后重新启动 Apache :
/etc/init.d/httpd restart
这个安装比较简单,完成后可以测试一下。Apache 网站的默认文档的路径是 /var/www/html ,在这个目录里上传一个PHP探针,并且在浏览器中调用 http://localhost/env.php 将会显示很多 PHP5 的安装信息。
PHP5 正在工作,你会看到很多模块都可以在 PHP5 中使用了,而 MySQL 并没有在这里被列出来,这意味着 PHP5 并不支持MySQL,你还需要安装 php-mysql 这个包。
5. 安装PHP组件,使 PHP5 支持 MySQL
yum search php
选择你所需的安装包,然后通过下列命令安装他们:
yum install php-mysql php-gd php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-mcrypt php-bcmath php-mhash
检查系统更新,然后安装更新,最后清理安装包。
yum check-update
yum update
yum clean all
如果需要,可以编辑php.ini,一般不用改动
vi /etc/php.ini
CentOS的PHP版本为5.1.x,如果需要安装5.2.x,需要增加一个官方的测试源即可。具体步骤如下:
vi /etc/yum.repos.d/CentOS-Testing.repo
在vi编辑器里面,将下面这段文本粘贴进去:
[c5-testing]
name=CentOS-5 Testing
baseurl=http://dev.centos.org/centos/$releasever/testing/$basearch/
enabled=1
gpgcheck=1
gpgkey=http://dev.centos.org/centos/RPM-GPG-KEY-CentOS-testing
priority=1
输入:wq保存退出vi。
然后在终端下执行:
如果已安装php,执行下面命令
yum update php
如果未安装php,执行下面命令
yum install php
这样PHP 5.2就装好了。
然后重新启动 Apache2 :
/etc/init.d/httpd restart
在浏览器中重新加载 http://localhost/env.php 这个页面,你就能看到刚刚安装的 PHP和MySQL 模块。
6. 设置 Apache2 和 MySQL 开机启动
chkconfig --levels 3 httpd on
chkconfig --list httpd
/etc/init.d/httpd restart
chkconfig --levels 3 mysqld on
chkconfig --list mysqld
/etc/init.d/mysqld restart
注意:“设置 Apache 和 MySQL 开机启动”这一步一定要做,否则是访问不了你的网站的。
OK,一个 LAMP 服务器搭建完成。
第二部分:
1.安装phpMyAdmin
如果已经将PHP更新到5.2.x,可以自行安装phpMyAdmin最新版3.x。
如果没有更新PHP的版本,由于 yum install php安装的版本为php5.1版,而phpMyAdmin-3.x只能搭配php5.2.x 使用,所以不要上传phpMyAdmin-3.x版,而应该上传较低的版本:phpMyAdmin-2.11.10版或phpMyAdmin- 2.11.9.6版,这两个较低版本的phpMyAdmin才能搭配php5.1使用。建议用如下办法:
phpMyAdmin是一款MySQL数据库web化的管理工具。
我们先使我们的CentOS支持RPMforge repository,因为phpMyAdmin并不在CentOS5.3官方的依赖包里:
对于 x86_64 系统:
wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.3.6-1.el5.rf.x86_64.rpm
rpm -Uvh rpmforge-release-0.3.6-1.el5.rf.x86_64.rpm
对于 i386系统
wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.3.6-1.el5.rf.i386.rpm
rpm -Uvh rpmforge-release-0.3.6-1.el5.rf.i386.rpm
现在你就可以使用下列命令来安装phpMyAdmin了:
yum install phpmyadmin
现在我们配置下phpMyAdmin。我们改下Apache的配置文件,使的phpMyAdmin不单单是本机访问。 (即注销<Directory “/usr/share/phpmyadmin”>) 如下所示:
#<Directory “/usr/share/phpmyadmin”>
# Order Deny,Allow
# Deny from all
# Allow from 127.0.0.1
#</Directory>
vi /etc/httpd/conf.d/phpmyadmin.conf
然后登陆winscp,进入/usr/share/phpmyadmin/,然后修改里面的配置文件:config.inc.php。
在$cfg['blowfish_secret'] = ‘ ‘,单引号里面随便填一个字符串。
在$cfg['Servers'][$i]['controluser'] = ”,单引号里面填入root;
在$cfg['Servers'][$i]['controlpass'] = ”,单引号里面填入你在安装mysql时所设置的密码。然后保存更改。
重启Apache:
/etc/init.d/httpd restart
然后,你就可以通过http://domain.com/phpmyadmin/:访问phpMyAdmin了。
2.使用putty登陆SSH
这是给网站根目录赋予写权限
chown root:root /var/www/html/ -R
或者
chmod -R 777 /var/www/html/
安装zip文件解压工具
yum install unzip
3.在Apache配置文件中添加你的虚拟机信息
vi /etc/httpd/conf/httpd.conf
此为IPv4虚拟机配置,已包含rewrite信息,支持WordPress固定链接
<VirtualHost 67.123.122.21:80>
ServerAdmin webmaster@dummy-host.example.com
DocumentRoot /var/www/html
ServerName www.abc.com
ErrorLog logs/dummy-host.example.com-error_log
CustomLog logs/dummy-host.example.com-access_log common
<Directory “/var/www/html”>
Options FollowSymLinks IncludesNOEXEC Indexes
DirectoryIndex index.html index.htm index.php
AllowOverride all
Order Deny,Allow
Allow from all
</Directory>
</VirtualHost>
此为IPv6虚拟机配置,已包含rewrite信息
<VirtualHost [2201:f676:2:382:0:123:1661:2]:80>
ServerAdmin webmaster@dummy-host.example.com
DocumentRoot /var/www/html
ServerName www.abc.com
ErrorLog logs/dummy-host.example.com-error_log
CustomLog logs/dummy-host.example.com-access_log common
<Directory “/var/www/html”>
Options FollowSymLinks IncludesNOEXEC Indexes
DirectoryIndex index.html index.htm index.php
AllowOverride all
Order Deny,Allow
Allow from all
</Directory>
</VirtualHost>
确认Apache工作在Dual Stack模式:
netstat -tulpn | grep :80
提醒一下,本教程未提及FTP服务的安装,如果需要可以安装vsftpd或pureftpd,过程不再赘述。因为我自己觉得使用WinSCP的SFTP就够用了,没有必要安装过多的服务消耗系统资源。
Server服务器端常用软件
Aug 18th
一、Web服务器
1.Apache
Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。
官方网站:http://www.apache.org/
2.Nginx
Nginx(发音同 engine x)是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。由俄罗斯的程序设计师Igor Sysoev所开发,最初供俄国大型的入口网站及搜寻引擎Rambler(俄文:Рамблер)使用。 其特点是占有内存少,并发能力强。
官方网站:http://nginx.org/
3.Lighttpd
Lighttpd是一个德国人领导的开源软件,其根本的目的是提供一个专门针对高性能网站,安全、快速、兼容性好并且灵活的web server环境。具有非常低的内存开销,cpu占用率低,效能好,以及丰富的模块等特点。
官方网站:http://www.lighttpd.net/
二、PHP
PHP,是英文超级文本预处理语言Hypertext Preprocessor的缩写。PHP 是一种 HTML 内嵌式的语言,是一种在服务器端执行的嵌入HTML文档的脚本语言,语言的风格有类似于C语言,被广泛的运用。
官方网站:http://www.php.net/
三、数据库
1.MySQL
MySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQL AB公司。在2008年1月16号被Sun公司收购。而2009年,SUN又被Oracle收购.对于Mysql的前途,没有任何人抱乐观的态度.目前 MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。
官方网站:http://www.mysql.com/
2.PostgreSQL
PostgreSQL是一种特性非常齐全的自由软件的对象-关系型数据库管理系统(ORDBMS),可以说是目前世界上最先进,功能最强大的自由数据库管理系统。 PostgreSQL是以加州大学伯克利分校计算机系开发的 POSTGRES,版本 4.2为基础的对象关系型数据库管理系统(ORDBMS)。 POSTGRES 领先的许多概念只是在非常迟的时候才出现在商业数据库中。
官方网站:http://www.postgresql.org/
四、其他
1.phpMyAdmin
官方网站:http://sourceforge.net/projects/phpmyadmin/
2.phpPgAdmin
官方网站:http://phppgadmin.sourceforge.net/
3.WordPress
官方网站:http://www.wordpress.org/
4.phpBB
官方网站:http://www.phpbb.com/ 和 http://sourceforge.net/projects/phpbb/
五、SSH客户端软件
WinSCP For Windows
官方网站:http://winscp.net/
PuTTY For Windows
官方网站:http://www.putty.org/
Linux中update、upgrade和dist-upgrade的区别
Aug 18th
Linux中update、upgrade和dist-upgrade的区别如下:
update更新软件列表信息,包括版本,依赖关系等;
upgrade在不改变现有软件设置的基础上更新软件;
dist-upgrade会改变配置文件,改变旧的依赖关系,比如升级操作系统时。
Linux的tar、gzip、zip和unzip命令详解
Aug 15th
一、tar命令
tar可以为文件和目录创建档案。利用tar,用户可以为某一特定文件创建档案(备份文件),也可以在档案中改变文件,或者向档案中加入新的文件。Linux上的tar是GNU版本的。
语法:tar [主选项+辅选项] 文件或者目录
使用该命令时,主选项是必须要有的,它告诉tar要做什么事情,辅选项是辅助使用的,可以选用。
主选项:
c 创建新的档案文件。如果用户想备份一个目录或是一些文件,就要选择这个选项。
r 把要存档的文件追加到档案文件的未尾。例如用户已经作好备份文件,又发现还有一个目录或是一些文件忘记备份了,这时可以使用该选项,将忘记的目录或文件追加到备份文件中。
t 列出档案文件的内容,查看已经备份了哪些文件。
u 更新文件。就是说,用新增的文件取代原备份文件,如果在备份文件中找不到要更新的文件,则把它追加到备份文件的最后。
x 从档案文件中释放文件。
辅助选项:
b 该选项是为磁带机设定的。其后跟一数字,用来说明区块的大小,系统预设值为20(20*512 bytes)。
f 使用档案文件或设备,这个选项通常是必选的。
k 保存已经存在的文件。例如我们把某个文件还原,在还原的过程中,遇到相同的文件,不会进行覆盖。
m 在还原文件时,把所有文件的修改时间设定为现在。
M 创建多卷的档案文件,以便在几个磁盘中存放。
v 详细报告tar处理的文件信息。如无此选项,tar不报告文件信息。
w 每一步都要求确认。
z 用gzip来压缩/解压缩文件,加上该选项后可以将档案文件进行压缩,但还原时也一定要使用该选项进行解压缩。
例1:把/home目录下包括它的子目录全部做备份文件,备份文件名为usr.tar。
$ tar cvf usr.tar /home
例2:把/home目录下包括它的子目录全部做备份文件,并进行压缩,备份文件名为usr.tar.gz 。
$ tar czvf usr.tar.gz /home
例3:把usr.tar.gz这个备份文件还原并解压缩。
$ tar xzvf usr.tar.gz
例4:查看usr.tar备份文件的内容,并以分屏方式显示在显示器上。
$ tar tvf usr.tar | more
要将文件备份到一个特定的设备,只需把设备名作为备份文件名。
二、gzip命令
减少文件大小有两个明显的好处,一是可以减少存储空间,二是通过网络传输文件时,可以减少传输的时间。gzip是在Linux系统中经常使用的一个对文件进行压缩和解压缩的命令,既方便又好用。
语法:gzip [选项] 压缩(解压缩)的文件名
各选项的含义:
-c 将输出写到标准输出上,并保留原有文件。
-d 将压缩文件解压。
-l 对每个压缩文件,显示下列字段:
压缩文件的大小
未压缩文件的大小
压缩比
未压缩文件的名字
-r 递归式地查找指定目录并压缩其中的所有文件或者是解压缩。
-t 测试,检查压缩文件是否完整。
-v 对每一个压缩和解压的文件,显示文件名和压缩比。
-num 用指定的数字num调整压缩的速度,-1或–fast表示最快压缩方法(低压缩比),-9或–best表示最慢压缩方法(高压缩比)。系统缺省值为6。
假设一个目录/home下有文件mm.txt、sort.txt、xx.com。
例1:把/home目录下的每个文件压缩成.gz文件。
$ cd /home
$ gzip *
$ ls
m.txt.gz sort.txt.gz xx.com.gz
例2:把例1中每个压缩的文件解压,并列出详细的信息。
$ gzip -dv *
mm.txt.gz 43.1%-----replaced with mm.txt
sort.txt.gz 43.1%-----replaced with sort.txt
xx.com.gz 43.1%-----replaced with xx.com
$ ls
mm.txt sort.txt xx.com
例3:详细显示例1中每个压缩的文件的信息,并不解压。
$ gzip -l *
comcodessed uncompr. ratio uncomcodessed_name
277 445 43.1% mm.txt
278 445 43.1% sort.txt
277 445 43.1% xx.com
$ ls
mm.txt.gz sort.txt.gz xx.com.gz
例4:压缩一个tar备份文件,如usr.tar,此时压缩文件的扩展名为.tar.gz
$ gzip usr.tar
$ ls
usr.tar.gz
三、zip命令
zip [参数] [打包后的文件名] [打包的目录路径]
zip命令 参数列表:
-a 将文件转成ASCII模式
-F 尝试修复损坏的压缩文件
-h 显示帮助界面
-m 将文件压缩之后,删除源文件
-n 特定字符串 不压缩具有特定字尾字符串的文件
-o 将压缩文件内的所有文件的最新变动时间设为压缩时候的时间
-q 安静模式,在压缩的时候不显示指令的执行过程
-r 将指定的目录下的所有子目录以及文件一起处理
-S 包含系统文件和隐含文件(S是大写)
-t 日期 把压缩文件的最后修改日期设为指定的日期,日期格式为mmddyyyy
举例:
将/home/Blinux /html/ 这个目录下所有文件和文件夹打包为当前目录下的html.zip
zip –q –r html.zip /home/Blinux /html
上面的命令操作是将绝对地址的文件及文件夹进行压缩.以下给出压缩相对路径目录
比如目前在Bliux这个目录下,执行以下操作可以达到以上同样的效果.
zip –q –r html.zip html
四、unzip命令
用MS Windows下的压缩软件winzip压缩的文件如何在Linux系统下展开呢?可以用unzip命令,该命令用于解扩展名为.zip的压缩文件。
语法:unzip [选项] 压缩文件名.zip
各选项的含义分别为:
-x 文件列表 解压缩文件,但不包括指定的file文件。
-v 查看压缩文件目录,但不解压。
-t 测试文件有无损坏,但不解压。
-d 目录 把压缩文件解到指定目录下。
-z 只显示压缩文件的注解。
-n 不覆盖已经存在的文件。
-o 覆盖已存在的文件且不要求用户确认。
-j 不重建文档的目录结构,把所有文件解压到同一目录下。
例1:将压缩文件text.zip在当前目录下解压缩。
$ unzip text.zip
例2:将压缩文件text.zip在指定目录/tmp下解压缩,如果已有相同的文件存在,要求unzip命令不覆盖原先的文件。
$ unzip -n text.zip -d /tmp
例3:查看压缩文件目录,但不解压。
$ unzip -v text.zip
VPS管理入门(二)
Aug 15th
使用CentOS+Kloxo来管理虚拟主机比较简单,易于上手,缺点是系统资源消耗大。
目前流行的配置是Linux+Nginx+PHP+MySQL,简称LNMP。下面简单介绍一下配置方法。
一、安装CentOS和LNMP包。
安装CentOS 5.5,系统安装完后自带APACHE,先运行yum remove httpd,删除Apache!
用SSH登录LINUX,安装LNMP。
1、下载LNMP一键安装包:
wget -c http://soft.vpser.net/lnmp/lnmp0.4.tar.gz
2、解压LNMP一键安装包:
tar zxvf lnmp0.4.tar.gz
3、CentOS下安装步骤
# 下载版执行命令 cd lnmp0.4/
# 然后再执行./centos.sh ,输入要绑定的域名,回车,再输入要设置的MySQL root的密码,再次回车确认。
程序会自动安装编译Nginx、PHP、MySQL、phpMyAdmin、Zend这几个软件。
虚拟主机管理
# 1、添加虚拟主机,执行如下命令:./vhost.sh 根据提示输入要绑定的域名,回车,如果需要添加更多的域名,输入y,再输入要另外绑定的域名,多个域名可以用空格隔开。再输入域名绑定的目录(绝对目录, 如/home/wwwroot/lnmp,如果不填默认是/home/wwwroot/绑定的域名),再选择是否添加伪静态规则,默认已经有了 Discuz、Wordpress、Sablog、emlog、dabr,可直接输入以上名称即可,如果需要添加自定义伪静态规则,直接输入一个想要的名 字,程序会自动创建伪静态文件,直接在/usr/local/nginx/conf/你自定义的伪静态名字.conf 里面添加伪静态规则就行。接下来会提示是否需要启用日志功能,一般情况下不需要启动,直接输入n就行,如需启动,输入y,再输入要定义的日志文件名字,回 车就会自动添加虚拟主机。
# LNMP状态管理: /root/lnmp {start|stop|reload|restart|kill|status}
phpinfo : http://前面输入的域名或IP/phpinfo.php
phpMyAdmin : http://前面输入的域名或IP/phpmyadmin/
探针 : http://前面输入的域名或IP/p.php
MySQL root密码:如果不输入直接回车为root,否则为你输入的密码。
LNMP相关目录:
mysql : /usr/local/mysql
php : /usr/local/php
nginx : /usr/local/nginx
网站目录: /home/wwwroot
*添加虚拟主机域名也可以手动配置:
键入命令:vi /usr/local/nginx/conf/nginx.conf
或者:vi /usr/local/nginx/conf/vhost/*.conf
添加如下代码:
server
{
listen 80;
server_name www.***.com ***.com *.***.com;
index index.html index.htm index.php;
root /home/wwwroot/***;
location ~ .*\.(php|php5)?$
{
fastcgi_pass unix:/tmp/php-cgi.sock;
#fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fcgi.conf;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
}
location ~ .*\.(js|css)?$
{
expires 12h;
}
access_log off;
}
***改成你的域名就行,再建虚拟主机只要在下面添加 同样的代码就行;
再执行kill -HUP `cat /usr/local/nginx/logs/nginx.pid`
或者/usr/local/nginx/sbin/nginx -s reload
之后虚拟机就生效了。
二、更新Nginx并重新编译Nginx使之支持IPv6(如果不需要IPv6支持,此部分可忽略)
登陆SSH,命令如下,最关键的一句是“–with-ipv6”:
wget http://nginx.org/download/nginx-0.8.49.tar.gz
tar -xvzf nginx-0.8.49.tar.gz
cd nginx-0.8.49
./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-ipv6
make && make install
在终端执行ifconfig,可以看到你的IPv6地址。
把你虚拟机配置文件中listen 80;全部替换为listen ip:80;的形式,否则启动不了。再在你想支持IPv6的虚拟机里加一句listen [ipv6]:80,配置好之后,大体如下所示:
server {
listen 216.45.55.20:80;
listen [2001:470:1f04:873::2]:80;
server_name www.abc.com;
………………
}
安装配置完毕。停掉旧nginx,启动新编译的nginx:
killall nginx
/usr/local/nginx/sbin/nginx
三、安装vsftpd
1.yum安装vsftpd:
yum install vsftpd
touch /var/log/vsftpd.log # 创建vsftp的日志文件
2.设置每次开机时自动运行及手工启动它:
chkconfig vsftpd on
service vsftpd start
netstat -tl 可以查看ftp端口是否在侦听了!
3.配置文件
/etc/vsftpd/ftpusers 和 /etc/vsftpd/user_list,#不能登陆FTP的用户;
/etc/vsftpd/vsftpd.conf
#anonymous_enable=YES
anonymous_enable=NO #设定不允许匿名用户访问
chroot_local_user=YES #把系统内所有的FTP用户都限制在家目录中 xferlog_file=/var/log/vsftpd.log 设定vsftpd的服务日志保存路径。注意,该文件默认不存在。必须要手动touch出来
ascii_upload_enable=YES
ascii_download_enable=YES 设定支持ASCII模式的上传和下载功能。
pam_service_name=vsftpd PAM认证文件名。PAM将根据/etc/pam.d/vsftpd进行认证
以下这些是关于Vsftpd虚拟用户支持的重要配置项目。默认vsftpd.conf中不包含这些设定项目,需要自己手动添加配置。
4.设定FTP目录
修改 /home/wwwroot 目录属性:
chmod -R 777 /home/wwwroot 递归地给此目录下所有文件和子目录的读、写、执行权限
chgrp -R ftp /home/wwwroot 递归地把此目录及该目录下所有文件和子目录的组属性设置成ftp组
5.增加FTP用户
adduser -d /home/wwwroot -g ftp -s /sbin/nologin 用户名 #增加用户,组是FTP,目录是/home/wwwroot
passwd 用户名 #设定用户密码
Changing password for user beinan.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
6.重启FTP
service vsftpd restart
guest_enable=YES 设定启用虚拟用户功能。
guest_username=ftp 指定虚拟用户的宿主用户。-CentOS中已经有内置的ftp用户了
user_config_dir=/etc/vsftpd/vuser_conf 设定虚拟用户个人vsftp的配置文件存放路径。存放虚拟用户个性的配置文件(配置文件名=虚拟用户名)
7.有时会出现上传多个小文件时卡住的情况,可以编辑/etc/vsftpd/vsftpd.conf如下:
connect_from_port_20=YES
pasv_min_port=49152
pasv_max_port=65534
data_connection_timeout=1
或者将文件打包上传到服务端再解压来解决此问题。
8.修改已有用户的FTP目录
usermod -d /home/www/abc.com abc
注: /home/www/abc.com 为修改的目标文件夹 abc 为要修改目录的用户名
9.vsftpd的默认设置是所有目录都可以被客户进入,极为不安全,因此要限制用户可以访问目录,设置方法如下:
chroot_local_user=YES
在vsftpd.conf最下面增加这一行,重启ftp即可
Linux系统常用命令
1.将tar.gz压缩文件在当前目录下解压缩
命令:tar zxvf filename.tar.gz
2.在CentOS中安装unzip
命令:yum install unzip
将zip压缩文件在当前目录下解压缩
命令:unzip filename.zip
3.建立目录命令为mkdir 目录名字
mkdir /home/wwwroot/abc.com
4.删除目录命令为 rm -rf 目录名字
rm -rf /home/wwwroot/abc.com
两个参数-rf 即:
-r 就是向下递归,不管有多少级目录,一并删除
-f 就是直接强行删除,不作任何提示的意思
删除文件使用 rm -f 文件名字
SSH无法登录,提示server unexpectedly closed network connection
Aug 15th
问题:使用SSH无法登录BurstNET VPS,提示server unexpectedly closed network connection。但是HTTP服务正常。
解决方法:登录VPS控制面板,发现内存使用率为100%,重新启动VPS即恢复正常。
Nginx和Apache WEB服务器的IPv6设置
Aug 14th
第一部分:
1、必须要有分配的公有IPv6地址。如果使用的是BurstNET VPS,可以发ticket到BurstNET客服免费申请IPv6地址。
2、进入域名管理面板添加AAAA记录指向你的IPv6地址。
第二部分:
1、Nginx IPv6 Configuration
重新编译Nginx使之支持IPv6。登陆SSH,命令如下,最关键的一句是“–with-ipv6”:
wget http://nginx.org/download/nginx-0.8.49.tar.gz
tar -xvzf nginx-0.8.49.tar.gz
cd nginx-0.8.49
./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-ipv6
make && make install
在终端执行ifconfig,可以看到你的IPv6地址。
把你虚拟机配置文件中listen 80;全部替换为listen ip:80;的形式,否则启动不了。再在你想支持IPv6的虚拟机里加一句listen [ipv6]:80,配置好之后,大体如下所示:
server {
listen 216.45.55.20:80;
listen [2001:470:1f04:873::2]:80;
server_name www.abc.com;
………………
}
安装配置完毕。停掉旧nginx,启动新编译的nginx:
killall nginx
/usr/local/nginx/sbin/nginx
2、Apache IPv6 Configuration
a.打开配置文件
# vi httpd.conf
b.找到如下代码
Listen 74.86.48.99:80
c.添加以下代码
Listen [2607:f0d0:1002:11::4]:80
d.重新启动Apache
# service httpd restart
注意事项:
1、将代码中的IPv4和IPv6地址改为真实的IP地址,而且IPV6地址外一定要用中括号。
2、Apache 2.0版本开始支持IPv6,Nginx从0.7.36之后开始支持IPv6。
Linux系统下常用性能分析工具 top命令详解
Aug 13th
top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。下面详细介绍它的使用方法。
top – 01:06:48 up 1:22, 1 user, load average: 0.06, 0.60, 0.48
Tasks: 29 total, 1 running, 28 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.3% us, 1.0% sy, 0.0% ni, 98.7% id, 0.0% wa, 0.0% hi, 0.0% si
Mem: 191272k total, 173656k used, 17616k free, 22052k buffers
Swap: 192772k total, 0k used, 192772k free, 123988k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1379 root 16 0 7976 2456 1980 S 0.7 1.3 0:11.03 sshd
14704 root 16 0 2128 980 796 R 0.7 0.5 0:02.72 top
1 root 16 0 1992 632 544 S 0.0 0.3 0:00.90 init
2 root 34 19 0 0 0 S 0.0 0.0 0:00.00 ksoftirqd/0
3 root RT 0 0 0 0 S 0.0 0.0 0:00.00 watchdog/0
统计信息区前五行是系统整体的统计信息。第一行是任务队列信息,同 uptime 命令的执行结果。其内容如下:
01:06:48 当前时间
up 1:22 系统运行时间,格式为时:分
1 user 当前登录用户数
load average: 0.06, 0.60, 0.48 系统负载,即任务队列的平均长度。
三个数值分别为 1分钟、5分钟、15分钟前到现在的平均值。
第二、三行为进程和CPU的信息。当有多个CPU时,这些内容可能会超过两行。内容如下:
Tasks: 29 total 进程总数
1 running 正在运行的进程数
28 sleeping 睡眠的进程数
0 stopped 停止的进程数
0 zombie 僵尸进程数
Cpu(s): 0.3% us 用户空间占用CPU百分比
1.0% sy 内核空间占用CPU百分比
0.0% ni 用户进程空间内改变过优先级的进程占用CPU百分比
98.7% id 空闲CPU百分比
0.0% wa 等待输入输出的CPU时间百分比
0.0% hi
0.0% si
最后两行为内存信息。内容如下:
Mem: 191272k total 物理内存总量
173656k used 使用的物理内存总量
17616k free 空闲内存总量
22052k buffers 用作内核缓存的内存量
Swap: 192772k total 交换区总量
0k used 使用的交换区总量
192772k free 空闲交换区总量
123988k cached 缓冲的交换区总量。
内存中的内容被换出到交换区,而后又被换入到内存,但使用过的交换区尚未被覆盖,
该数值即为这些内容已存在于内存中的交换区的大小。
相应的内存再次被换出时可不必再对交换区写入。
进程信息区统计信息区域的下方显示了各个进程的详细信息。首先来认识一下各列的含义。
序号 列名 含义
a PID 进程id
b PPID 父进程id
c RUSER Real user name
d UID 进程所有者的用户id
e USER 进程所有者的用户名
f GROUP 进程所有者的组名
g TTY 启动进程的终端名。不是从终端启动的进程则显示为 ?
h PR 优先级
i NI nice值。负值表示高优先级,正值表示低优先级
j P 最后使用的CPU,仅在多CPU环境下有意义
k %CPU 上次更新到现在的CPU时间占用百分比
l TIME 进程使用的CPU时间总计,单位秒
m TIME+ 进程使用的CPU时间总计,单位1/100秒
n %MEM 进程使用的物理内存百分比
o VIRT 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
p SWAP 进程使用的虚拟内存中,被换出的大小,单位kb。
q RES 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
r CODE 可执行代码占用的物理内存大小,单位kb
s DATA 可执行代码以外的部分(数据段+栈)占用的物理内存大小,单位kb
t SHR 共享内存大小,单位kb
u nFLT 页面错误次数
v nDRT 最后一次写入到现在,被修改过的页面数。
w S 进程状态。
D=不可中断的睡眠状态
R=运行
S=睡眠
T=跟踪/停止
Z=僵尸进程
x COMMAND 命令名/命令行
y WCHAN 若该进程在睡眠,则显示睡眠中的系统函数名
z Flags 任务标志,参考 sched.h
默认情况下仅显示比较重要的 PID、USER、PR、NI、VIRT、RES、SHR、S、%CPU、%MEM、TIME+、COMMAND 列。可以通过下面的快捷键来更改显示内容。
更改显示内容通过 f 键可以选择显示的内容。按 f 键之后会显示列的列表,按 a-z 即可显示或隐藏对应的列,最后按回车键确定。
按 o 键可以改变列的显示顺序。按小写的 a-z 可以将相应的列向右移动,而大写的 A-Z 可以将相应的列向左移动。最后按回车键确定。
按大写的 F 或 O 键,然后按 a-z 可以将进程按照相应的列进行排序。而大写的 R 键可以将当前的排序倒转。
命令使用
1. 工具(命令)名称
top
2.工具(命令)作用
显示系统当前的进程和其他状况; top是一个动态显示过程,即可以通过用户按键来不断刷新当前状态.如果在前台执行该命令,它将独占前台,直到用户终止该程序为止. 比较准确的说,top命令提供了实时的对系统处理器的状态监视.它将显示系统中CPU最“敏感”的任务列表.该命令可以按CPU使用.内存使用和执行时间对任务进行排序;而且该命令的很多特性都可以通过交互式命令或者在个人定制文件中进行设定.
3.环境设置
在Linux下使用。
4.使用方法
4.1使用格式
top [-] [d]
[q] [c] [C] [S] [s] [n]
4.2参数说明
d 指定每两次屏幕信息刷新之间的时间间隔。当然用户可以使用s交互命令来改变之。
p 通过指定监控进程ID来仅仅监控某个进程的状态。
q该选项将使top没有任何延迟的进行刷新。如果调用程序有超级用户权限,那么top将以尽可能高的优先级运行。
S 指定累计模式
s 使top命令在安全模式中运行。这将去除交互命令所带来的潜在危险。
i 使top不显示任何闲置或者僵死进程。
c 显示整个命令行而不只是显示命令名
4.3其他
下面介绍在top命令执行过程中可以使用的一些交互命令。从使用角度来看,熟练的掌握这些命令比掌握选项还重要一些。这些命令都是单字母的,如果在命令行选项中使用了s选项,则可能其中一些命令会被屏蔽掉。
Ctrl+L 擦除并且重写屏幕。
h或者? 显示帮助画面,给出一些简短的命令总结说明。
k 终止一个进程。系统将提示用户输入需要终止的进程PID,以及需要发送给该进程什么样的信号。一般的终止进程可以使用15信号;如果不能正常结束那就使用信号9强制结束该进程。默认值是信号15。在安全模式中此命令被屏蔽。
i 忽略闲置和僵死进程。这是一个开关式命令。
q 退出程序。
r 重新安排一个进程的优先级别。系统提示用户输入需要改变的进程PID以及需要设置的进程优先级值。输入一个正值将使优先级降低,反之则可以使该进程拥有更高的优先权。默认值是10。
S 切换到累计模式。
s 改变两次刷新之间的延迟时间。系统将提示用户输入新的时间,单位为s。如果有小数,就换算成m s。输入0值则系统将不断刷新,默认值是5 s。需要注意的是如果设置太小的时间,很可能会引起不断刷新,从而根本来不及看清显示的情况,而且系统负载也会大大增加。
f或者F 从当前显示中添加或者删除项目。
o或者O 改变显示项目的顺序。
l 切换显示平均负载和启动时间信息。
m 切换显示内存信息。
t 切换显示进程和CPU状态信息。
c 切换显示命令名称和完整命令行。
M 根据驻留内存大小进行排序。
P 根据CPU使用百分比大小进行排序。
T 根据时间/累计时间进行排序。
W 将当前设置写入~/.toprc文件中。
这是写top配置文件的推荐方法。
KLOXO中IP访问、泛域名绑定、未绑定域名访问的设置
Aug 12th
根据我们的经验,在实际使用中,客户大概会有以下几种要求:
1,绑定特定域名,使用绑定的域名进行访问。(绝大多数情况)
2,输入IP地址进行访问(独立IP)。
3,绑定泛域名解析。
4,设置所有未绑定,但是已经解析到这个IP的域名访问指定目录。
以下设置均针对Lighttpd环境。
1,绑定特定域名,使用绑定的域名进行访问。
略
2,输入IP地址进行访问。
Kloxo首页>资源>IP地址>具体IP>配置域名>设置需要使用IP访问的站点所绑定的域名。
(该域名必须已经解析到这个IP上,注意是否有带www。)
3,绑定泛域名解析。
Kloxo首页>域名>具体域名>解压/扩展>主机别名>添加别名“*”(星号)
4,设置所有未绑定,但是已经解析到这个IP的域名访问指定目录。
mkdir /home/admin/default
chown admin:admin /home/admin/default
编辑/etc/lighttpd/lighttpd.conf
将
server.document-root = “/home/kloxo/httpd/default/”
改为
server.document-root = “/home/admin/default/”
在后面添加下面的内容(如果不需要运行PHP可以略过)
fastcgi.server = (“.php” =>(( “socket” => “/var/tmp/lighttpd/php.socket.default.” + var.PID,
“bin-path” => “/usr/bin/lxsuexec”,
“min-procs” => 0,
“max-procs” => 1,
“bin-environment” => (
“MUID” => “1006″,
“GID” => “1006″,
“TARGET” => “/usr/bin/php-cgi”,
“NON_RESIDENT” => “0″,
“PHP_FCGI_CHILDREN” => “0″,
“PHP_FCGI_MAX_REQUESTS” => “100000000″
),
“max-load-per-proc” => 1000,
“idle-timeout” => 3
))
)