Monthly Archives: 3月 2016

3月 30th, 2016

CloudLinux安装指南
一.CentOS 5.x or 6.x转化成CloudLinux(没有装cPanel)
首先购买好授权,授权分为基于IP的CloudLinux授权和CloudLinux授权密钥

  1. # wget http://repo.cloudlinux.com/cloudlinux/sources/cln/cpanel2cl
  2. #sh cpanel2cl –k (基于IP的授权)
  3. #sh cpanel2cl -k $key(授权密钥,$key用实际授权代替)

复制代码

二.CentOS 5.x or 6.x转化成CloudLinux(已装cPanel)
基于IP的授权

  1. # /usr/local/cpanel/cpkeyclt
  2. # /usr/local/cpanel/bin/cloudlinux_system_install -k
  3. # reboot
  4. # /usr/local/cpanel/scripts/easyapache –build

复制代码

注意:一般这种方法用的比较多,现在大家购买的基本上都是基于IP的CloudLinux授权,并且是用于cPanel服务器上的。

授权密钥

  1. # wget http://repo.cloudlinux.com/cloudlinux/sources/cln/cpanel2cl
  2. # sh cpanel2cl -k $key
  3. # reboot
  4. # /scripts/easyapache –build

复制代码

3月 26th, 2016

织梦作为一种功能强的php开源程序,在国内使用的人越来越多,一方面是由于织梦容易操作上手,且功能十分强大,可以说任何类型的网站都可以通过织梦 程序来实现。另一方面相信许多懂seo的站长朋友都非常清楚,那就是织梦在seo方面的优化非常到位,使用织梦程序,网站的排名就有了自然的优势。

但是,很多时候,我们可能会因为各种原因,而忘记网站后台的登录密码,这是非常令人困扰的。今天,我们就来介绍一下,织梦后台密码忘记了该如何处理。

进入网站mysql数据库,在数据库管理(phpmyadmin)里面找到,dede_admin这一表单,

点击pwd这一项,然后输入f297a57a5a743894a0e4 ,再点击执行,这样一来,网站后台的登录密码就变成了admin。然后登录网站后台,自行修改网站密码。

常见密码字段:

c3949ba59abbe56e057f  123456

f297a57a5a743894a0e4  admin

这样可以先重置密码,等等了后台再修改密码即可!

3月 23rd, 2016

fg、bg、jobs、&、nohup、ctrl+z、ctrl+c 命令

一、&

加在一个命令的最后,可以把这个命令放到后台执行,如

watch  -n 10 sh  test.sh  &  #每10s在后台执行一次test.sh脚本

二、ctrl + z

可以将一个正在前台执行的命令放到后台,并且处于暂停状态。

三、jobs

查看当前有多少在后台运行的命令

jobs -l选项可显示所有任务的PID,jobs的状态可以是running, stopped, Terminated。但是如果任务被终止了(kill),shell 从当前的shell环境已知的列表中删除任务的进程标识。

四、fg

将后台中的命令调至前台继续运行。如果后台中有多个命令,可以用fg %jobnumber(是命令编号,不是进程号)将选中的命令调出。

五、bg

将一个在后台暂停的命令,变成在后台继续执行。如果后台中有多个命令,可以用bg %jobnumber将选中的命令调出。

六、kill

  • 法子1:通过jobs命令查看job号(假设为num),然后执行kill %num
  • 法子2:通过ps命令查看job的进程号(PID,假设为pid),然后执行kill pid

前台进程的终止:Ctrl+c

七、nohup

如果让程序始终在后台执行,即使关闭当前的终端也执行(之前的&做不到),这时候需要nohup。该命令可以在你退出帐户/关闭终端之后继续运行相应的进程。

nohup就是不挂起的意思( no hang up)。

该命令的一般形式为:nohup command &

关闭终端后,在另一个终端jobs已经无法看到后台跑得程序了,此时利用ps(进程查看命令).

ps -aux | grep "test.sh"  #a:显示所有程序 u:以用户为主的格式来显示 x:显示所有程序,不以终端机来区分
3月 22nd, 2016

ACL是Access Control List 的缩写,主要的目的是提供传统的owner、group、other的read、write、execute权限之外的具体权限设置.

ACL可以针对单一用户、单一文件或目录来进行r、w、x的权限设置,对于需要特殊权限的使用状况非常有帮助.

那么ACL主要可以针对那些方面来控制权限呢?它主要可以针对几个项目:

* 用户(user):可以针对用户来设置权限;

* 用户组(group): 针对用户组来设置其权限;

* 默认属性(mask): 还可以在该目录下在新建新文件/目录是设置新数据的默认权限.

 

<1>如何启动ACL

由于ACL是传统UNIX-like操作系统权限的额外支持项目,因此要使用ACL必须要有文件系统的支持才行.目前绝大数的文件系统都有支持ACL的功能.

那我们如何查看你的文件系统是否支持ACL呢?我们可以这样看:

[root@sqj2015 ~]# mount      //直接查看挂载参数的功能

/dev/vda1 on / type ext4 (rw)

…………

##这里我们没有看到ACL

 

[root@sqj2015 ~]# dumpe2fs -h /dev/vda1 | grep ‘mount options’

dumpe2fs 1.41.12 (17-May-2010)

Default mount options:    user_xattr acl

## 由mount单纯去查询不见得可以看到实际的选项,由于目前新的distribution经常会主动加人某些默认功能.

 

若你的系统默认不会帮你加上acl的支持呢?那么你可以这样操作:

[root@sqj2015 ~]# mount -o remount,acl /

[root@sqj2015 ~]# mount

/dev/vda1 on / type ext4 (rw,acl)

##这样就加入了!但是如果你想要每次开机都生效,则需要这样:

[root@sqj2015 ~]# vi /etc/fstab

/dev/vda1           /               ext4    defaults,acl    1 1

 

<2>ACL设置技巧

在文件系统启动ACL支持后,接下来该如何设置与查看ACL呢?很简单,利用以下2个命令就可以了:

getfacl:查看某个文件/目录的ACL设置项目;

setfacl:设置某个目录/文件的ACL规定;

 

setfacl语法

setfacl [参数] 目标文件名

参数:

-m : 设置后续的acl参数给文件使用,不可与-x合用;

-x : 删除后续的acl参数,不可与-m 合用;

-b : 删除所有acl设置参数;

-k : 删除默认acl参数;

-R : 递归设置acl,亦即包括子目录都会被设置起来;

-d : 设置默认acl参数,只对目录有效,在该目录新建的数据会引用此默认值.

 

接下来,就来看看setfacl的设置方式:

**针对特定用户的方式:

##设置规定: “u:[用户账号列表]:[rwx]”如下,设置sqj权限为rw:

[root@sqj2015 ~]# touch acl_test

[root@sqj2015 ~]# ll acl_test

-rw-r–r–. 1 root root 0 Mar 21 13:44 acl_test

[root@sqj2015 ~]# setfacl -m u:sqj:rw acl_test

[root@sqj2015 ~]# ll acl_test

-rw-rw-r–+ 1 root root 0 Mar 21 13:44 acl_test

##是否看到了不同,在权限部分多了个+.

 

[root@sqj2015 ~]# setfacl -m u::rwx acl_test

[root@sqj2015 ~]# ll acl_test

-rwxrw-r–+ 1 root root 0 Mar 21 13:44 acl_test

##若无用户列表,则代表设置该文件所有者,所以上面显示root的权限变成了rwx了.

 

但我们具体怎么查看设置的ACL呢?如下:

[root@sqj2015 ~]# getfacl acl_test

# file: acl_test

# owner: root

# group: root

user::rwx

user:sqj:rw-

group::r–

mask::rw-

other::r–

 

**针对特定用户组的方式:

##设置规定: “g:[用户组列表]:[rwx]”,例如,针对sqj组权限rx:

[root@sqj2015 ~]# setfacl -m g:sqj:rw acl_test

[root@sqj2015 ~]# getfacl acl_test

# file: acl_test

# owner: root

# group: root

user::rwx

user:sqj:rw-

group::r–

group:sqj:rw-

mask::rw-

other::r–

 

**针对有效权限mask的设置方式:

##mask 它的意思是用户或组所设置的权限必须存在与mask的权限设置范围内才能生效,此即有效权限.

##设置规定: “m:[rwx]”,例如针对刚才的文件规定为仅有r权限:

[root@sqj2015 ~]# setfacl -m m:r acl_test

[root@sqj2015 ~]# getfacl acl_test

# file: acl_test

# owner: root

# group: root

user::rwx

user:sqj:rw-                    #effective:r–

group::r–

group:sqj:rw-                   #effective:r–

mask::r–

other::r–

##sqj用户、sqj组与mask的集合仅有r存在,因此sqj仅具有r的权限而已,并不存在w的权限,这就是mask的功能.

 

**针对默认权限的设置方式:

##设置规定:”d:[ug]:用户列表:[rwx]”

[root@sqj2015 ~]# mkdir acl_test1

[root@sqj2015 ~]# setfacl -m d:u:sqj:rw acl_test1/

[root@sqj2015 ~]# getfacl acl_test1

# file: acl_test1

# owner: root

# group: root

user::rwx

group::r-x

other::r-x

default:user::rwx

default:user:sqj:rw-

default:group::r-x

default:mask::rwx

default:other::r-x

 

[root@sqj2015 ~]# cd acl_test1

[root@sqj2015 acl_test1]# touch test

[root@sqj2015 acl_test1]# ll test

-rw-rw-r–+ 1 root root 0 Mar 21 14:16 test

[root@sqj2015 acl_test1]# getfacl test

# file: test

# owner: root

# group: root

user::rw-

user:sqj:rw-

group::r-x                      #effective:r–

mask::rw-

other::r–

##通过这个”针对目录来设置默认ACL权限”的选项,我们可以让这些属性继承到子目录下面.

3月 21st, 2016

第一步,使用默认密码登陆Cpanel

第二步,在 偏好 区块找到 更改密码 ,如图:

第三步,点击进入,Cpanel的安全机制做的非常棒,只有输入原始密码才能修改。除此之外,在输入密码的时候,还能检测密码的强壮度,密码强壮度有四个等级,分别是:弱;一般,强,非常强。我们一般的密码,设置成 已经ok,这个具体各位自己把握。在修改密码之前,各位可以看看CPanel的解释。

第四步,修改密码密码之后,重新登陆密码,并把密码备份到一个可靠的地方,防止出现意外,当然这个时候,我们也需要密码,这个密码不但控制着Cpanel登陆,也控制着FTP的链接,所以,也需要重新设置FTP的链接密码。

TAGS: ,
3月 21st, 2016

我们知道,每个cPanel账户都会有一个主ftp,主ftp的账号名和密码就是cPanel的账号和密码。但是有时候因为重装服务器的FTP软件或者其他原因导致了FTP的密码与cPanel的密码不一致了,这个时候会导致什么呢?主FTP账号登陆FTP服务器提示530错误。530错误前面我们已经进行了总结,今天和大家分享的就是主FTP密码与cPanel密码不一致导致的FTP 530错误这种新情况的解决方法。
解决方法有两种:
1.登陆WHM,找到 Main >> cPanel >> Synchronize FTP Passwords,看到如下:

点击Proceed后看到:

这时已成功修复,用cPanel密码就可以顺利登陆主FTP了。

2.还可以通过命令进行修复。以root身份使用远程连接软件如putty登陆服务器,之后执行:
/usr/local/cpanel/scripts/ftpupdate
运行后也会看到如下提示:
Updating ftp passwords for all users
Ftp password files updated.
Ftp vhost passwords synced

 

TAGS: ,
3月 21st, 2016

通过SSH服务远程访问Linux服务器,总是等待很久才能登陆。

试过下面的方法,再通过SSH服务远程访问Linux服务器,瞬间登陆。。。甚是开心。。。

vi /etc/ssh/sshd_config

关闭 SSH 的 DNS 反解析,添加下面一行:

UseDNS no

※虽然配置文件中[UseDNS yes]被注释点,

但默认开关就是yes…(SSH服务默认启用了DNS反向解析的功能)

#############################################################
上网查了相关的资料:↓

在目标服务器上有一个文件/etc/nsswitch.conf ,里面有如下一行
hosts: files dns
这行的含义是 对于访问的主机进行域名解析的顺序,是先访问file,也就是/etc/hosts文件,如果hosts中没有记录域名,则访问dns,进行域名解析,如 果dns也无法访问,就会等待访问超时后返回,因此等待时间比较长。那如果将这一行屏蔽掉是不是也可以达到同样的效果呢?应该是可以的,但是如果本机要通 过域名访问其他服务器,则肯定无法访问,因此这行应该需要保留。这个问题也提示我们,dns如果不可用,会带来的一些副作用的。

相信很多朋友在使用Linux系统的时候因为安全性的原因摒弃了telnet rlogin 或者X-window,而把openssh作为自己默认的远程登录方式。然而经常会遇到的一个情况是telnet到server速度很快,但是ssh连接 的时候却很慢,大概要等半分钟甚至更久。ping的速度也非常好,让人误以为是ssh连接不上。下面说下如何解决这样的问题,最为常见的原因是因为 server的sshd会去DNS查找访问clientIP的hostname,如果DNS不可用或者没有相关记录,就会耗费大量时间。

1, 在server上/etc/hosts文件中把你本机的ip和hostname加入
2, 在server上/etc/ssh/sshd_config文件中修改或加入UseDNS=no(这个方法试过了,好用)
3, 注释掉server上/etc/resolv.conf中所有行(关于这个方法:另一台服务器虽然没有按照方法2修改配置文件sshd_config,但是在这台服务器resolv.conf为空,也就是说这个方法也好用)
4, 修改server上/etc/nsswitch.conf中hosts为hosts: files
5, reboot server使配置生效

TAGS: ,
3月 21st, 2016

linux支持中文,修改/etc/sysconfig/i18n文件

LANG=”zh_CN.GB18030″
SUPPORTED=”zh_CN.GB18030:zh_CN:zh:en_US.UTF-8:en_US:en”
SYSFONT=”latarcyrheb-sun16″

ssh支持中文输入的修改,如图:

1、如图,点击【Change】,选择新宋体或者宋体

2
2、选择如图红色标记的地方,选择UTF-8字符集:
1
如上设置以后就可以了。
TAGS: ,
3月 17th, 2016

apache重启的时候可能会出现以下错误:

#service httpd start
httpd:(98)Address already in use: make_sock: could not bind to address [::]:80
(98)Address already in use: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
Unable to open logs
查看占用80端口的程序列表
#netstat -lnp|grep 80
返回:
tcp        0      0 :::80                       :::*                        LISTEN      14860/httpd
或者ps -aux | grep apache查看所有apache的进程
查看14860进程ID所对应的程序
#ps 14860
杀死这个进程ID
#kill -9 14860
或这个杀死所有的httpd进程,更绝.
#pkill -9 httpd
然后就可以重启httpd服务了

TAGS: , ,
3月 16th, 2016

由于技术更新和企业自身的原因,网站会进行改版或者说是重建,变更域名之类的工作,这时候旧网站原来的有用信息就要转移到新建的网站上,那么用什么办法转移呢?那就是用域名url转发和301重定向这两种办法。那么这两者之间有什么区别吗?

【域名url转发】

所谓域名url转发即URL转发,就是通过服务器的特殊技术设置,实现当访问您的域名时,将会自动跳转到您所指定的另一个网络地址。当然前提是:首先您的域名已经成功注册,并使用默认的 DNS 服务器;其次您设置其转发至的目标地址是可以在互联网正常访问到的,这样才能保证您的 URL 转发成功。因此通过URL 转发服务,可以轻松实现多个域名指向一个网站或网站子目录了;另外,通过URL转发服务,可以方便的实现将您的中文域名,设置自动转发到您的英文域名主站点。

域名url转发又分为两种方式:不隐藏路径域名url转发:访问域名,自动跳转到指定的网络路径后,IE浏览器的地址栏里显示的地址自动变为显示真正的目标地址。隐藏路径的域名url转发:访问域名,自动跳转到指定的网络路径后,IE浏览器的地址栏里显示的地址显示的地址保持不变,但实际访问到的是跳转后的内容。

【301重定向】

301重定向可以说是网页更改地址后对搜索引擎最好友好的方法,它代表永久性转移。一般来说,只要不是暂时搬移的情况,我们都建议使用301来做转址。

而且从搜索引擎优化的角度来看,301重定向是网址进行重定向最为可行的一种办法。当网站的域名发生变更后,搜索引擎只对新网址进行索引,同时又会把旧地址下原有的外部链接如数转移到新地址下,从而不会让网站的排名因为网址变更而收到丝毫影响。因此,在使用301永久性重定向命令让多个域名指向网站主域时, 亦不会对网站的排名产生任何负面影响。

【域名url转发和301重定向之间的区别】
301重定向属于是永久性转移,而域名url转发并不是永久性的转移,对于搜索引擎来说,它的认可度没有301重定向来的好。URL转发不利于SEO,对PR没有传递,301对SEO很友好,可以传递PR 。

【301与302转向的区别】
实施301后,新网址完全继承旧网址,旧网址的排名等完全清零。
实施302后,对旧网址没有影响,但新网址不会有排名。