存档

文章标签 ‘vps12.com’

Win2003下Apache性能优化

2014年9月12日 没有评论

一直习惯在Solaris和linux下跑amp,前些时服务器硬盘坏掉,所以启用新服务器。新系统是Windows 2003 Server,在上面按Unix上的经验配置Apache和Mysql时问题多多,经过折腾,总算是让服务器稳定下来,总结问题和解决办法如下(apache2.2.8+Mysql5.0.51a+php5.2.5):

1、Apache线程数和超时设置

Apache的线程数控制文件为conf/exrtra/http-mpm.conf,需要在httpd.conf中将 Include conf/extra/httpd-mpm.conf前#去掉,以使得http-mpm.conf生效。

在Windows系统中,起作用的是Winnt mpm段,


ThreadsPerChild 150
MaxRequestsPerChild 0

缺省的配置一般够用,但负荷大的网站就要修改了,否则网站一下就变慢或没有响应了。实际可以根据apache-status查看apache实时连接状态,我的服务器最后设置如下:


ThreadsPerChild 350
ThreadLimit 350
MaxRequestsPerChild 10000

Win32DisableAcceptEx
EnableMMAP Off
EnableSendfile Off

其中ThreadLimit是占用系统线程数限制,最好加上,否则会产生内存溢出导致Apache当掉。

MaxRequestsPerChild我理解是请求的缓存数,太小了影响性能,占用cpu时间,太大了占用内存资源,想象一下你网站的文件个数,然后自己设定,只要不为0就可以,防止内存溢出。

ThreadsPerChlid是apache的线程数,就是开了这么多的线程来等待响应客户端请求,需要根据apache-status实时的监控调节,大了会占用过多内存,小了会导致连接不上。而且应该同时修改httpd-default.php超时设置来配合。

在httpd.conf中去掉Include conf/extra/httpd-default.conf前的#以使httpd-default.php生效。

其中调节以下参数

Timeout 15 (连接超时缺省为300,太大了,缩小会减少同时连接数,即上面占用的实际线程数)

KeepAlive On (开启可以提高性能,因为一个页面一般会有多个请求)

MaxKeepAliveRequests 50 (这个数目自己根据网页内容调节)

KeepAliveTimeout 5 (这个小于Timeout就行)

Windows下长期运行Apache还是不如Unix稳定,可以让Apache在凌晨人少时自动重启,用Windows的计划任务可以非常方便的实现这一点,这样网管基本上可以安心睡觉了。

PhpStudy开启Apache的gzip压缩功能

2014年9月10日 没有评论

PhpStudy是一款非常方便的搭建PHP动态网站或者服务器的国产集成软件包,包含apache、mysql、php等。可以到其官方网站查看并且下载。
注意这里的PhpStudy是Apache+php解决方案,另外一个PhpFind是Nginx+php解决方案。由于Apache的使用较多些,以下的所有示例均是针对Apache,当然,只要是Apache,不管是自己独立安装,还是选择象我这样的懒人方式,集成式一键安装。配置均相同。
gzip是GNUzip的缩写,它是一个GNU自由软件的文件压缩程序。当服务器开启gzip压缩功能以后,当有人访问服务器的网站时,服务器将网页内容压缩后传输到来访的电脑浏览器,浏览器进行解压再显示出来。一般对纯文本内容可压缩到原大小的70%甚至更高。
以前介绍过如何开启SAE的gzip压缩功能,以及Typecho的gzip压缩,另外还有tomcat的gzip的压缩。本文主要讲述如何开启Apache的gzip压缩功能。
要让apache支持gzip功能,要用到deflate_Module和headers_Module。打开apache的配置文件httpd.conf,大约在105行左右,找到以下两行内容:(这两行不是连续在一起的)

1
2
#LoadModule deflate_module modules/mod_deflate.so   
#LoadModule headers_module modules/mod_headers.so

然后将其前面的“#”注释删掉,表示开启gzip压缩功能。开启以后还需要进行相关配置。在httpd.conf文件的最后添加以下内容即可:

1
2
3
4
<IfModule deflate_module>  
    #必须的,就像一个开关一样,告诉apache对传输到浏览器的内容进行压缩   
    SetOutputFilter DEFLATE   
</IfModule>

最少需要加上以上内容,才可以生gzip功能生效。由于没有做其它的额外配置,所以其它相关的配置均使用Apache的默认设置。这里说一下参数“DeflateCompressionLevel”,它表示压缩级别,值从1到9,值越大表示压缩的越厉害。
注意,这里要强调一个地方,我是通过搜索引擎找到相关文章进行设置的,而这些文章可能是来回复制的,有错误都不知道,如果你也按照那些做法去做,八层是出错,直接Apache都启动不了。究其原因,主要是有个参数不匹配。在上面去掉注释的“#”,即:

1
LoadModule deflate_module modules/mod_deflate.so

这里以后会用到中间的名称,即deflate_module。后续开启gzip压缩中要使用该名称,即:

1
2
3
4
<IfModule deflate_module>  
      ......   
      ......   
</IfModule>

这两个deflate_module必须一致。网络上其它很多文章,都是不一致的,所以直接报错。
下面是另一个典型配置,供参考。这里不建议将图片视频等多媒体文件进行gzip压缩,一般只压缩纯文本格式的文件,如.php、.txt、.html、.css、.js等。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<IfModule deflate_module>  
    #必须的,就像一个开关一样,告诉apache对传输到浏览器的内容进行压缩   
    SetOutputFilter DEFLATE   
 
    #压缩级别,1-9,9为最高   
    DeflateCompressionLevel 9      
 
    #不进行压缩的文件   
    SetEnvIfNoCase Request_URI \.(?:gif|jpeg|png)$ no-gzip dont-vary #设置不对后缀gif,jpg,jpeg,png的图片文件进行压缩   
    SetEnvIfNoCase Request_URI \.(?:exe|tgz|zip|bz2|sit|rar)$ no-gzip dont-vary #同上,就是设置不对exe,tgz,gz。。。的文件进行压缩   
    SetEnvIfNoCase Request_URI \.(?:pdf|mov|avi|mp3|mp4|rm)$ no-gzip dont-vary     
 
    #针对代理服务器的设置   
    <IfModule headers_moudle>  
    Header append vary User-Agent   
    </IfModule>  
</IfModule>

MySQL忘记密码恢复密码的解决方法

2014年8月24日 没有评论

流传较广的方法,mysql中文参考手册上的,各位vps主机租用客户和服务器托管用户忘记mysql5.1管理员密码时,可以使用这种方法破解下

一、服务器环境
1、系统windows2003 中文企业版 sp2
2、mysql 5.1.55
3、php 5.2.17
4、IIS 6.0
二、破解过程
1、停止mysql服务(以管理员身份,在cmd命令行下运行)使用如下命令:
net stop mysql

2、.使用命令启动mysql数据库,命令如下

mysqld --skip-grant-tables 或者 mysqld-nt --skip-grant-tables

 

3.新开一个cmd窗口,进行如下命令操作
1、mysql -uroot
2、update mysql.user set password=password(‘root123456′) where user=’root’;

root123456就是你新的root密码。

4、打开任务管理器,停止mysql,mysqld进程,使用net start mysql启动mysqld服务,就可以使用root用户 root密码进入数据库了(这步可以省略重启机器)
至止,win下破解密码就到这里了。以下是一些系统下的其他办法。

据说可以用直接修改user表文件的方法:
关闭MySQL,Windows下打开Mysql\data\mysql,有三个文件user.frm,user.MYD,user.MYI找个知道密码的MySQL,替换相应的这三个文件,如果user表结构没改过,一般也没人去改,替换user.MYD就可以了。
也可以直接编辑user.MYD,找个十六进制编辑器,UltraEdit就有这个功能。关闭MySQL,打开user.MYD。将用户名root后面的八个字符改为565491d704013245,新密码就是123456。或者将它们对应的十六进制数字,(左边那里,一个字符对应两个数字),改为 00 02 02 02 02 02 02 02,这就是空密码,在编辑器右边看到的都是星号*,看起来很象小数点。重开MySQL,输入root和你的新密码。
今天有点事要进mssql,因为是很久以前装的,所以忘记了sa的密码,虽然用windows身份验证就可以进,但是如果用php连接mssql时就不行了,于是google了一下,找到了解决方法.

用windows身份验证机制进去,然后
输入下列命令,执行:
exec sp_password null,’newpass’,'sa’

示例
A.无原密码的情况下更改登录密码
下面的示例将登录 Victoria 的密码更改为 123
EXEC sp_password NULL,’123′,’sa’

B.更改密码
下面的示例将登录 Victoria 的密码由 123 改为 456
EXEC sp_password ’123′,’456′

另外我发现了一个问题,那就是windows和SQL Server身份验证机制有些不同
windows身份验证

服务器地址 登陆结果
127.0.0.1 ok
localhost wrong
. ok

SQL Server身份验证

服务器地址 登陆结果
127.0.0.1 ok
localhost wrong
. wrong

另外记录一下忘记mysql 密码的取回方法
如果 MySQL 正在运行,
首先杀之: killall -TERM mysqld(如果是windows,直接调出进程管理器,结束之)
以安全模式启动 MySQ:
/usr/bin/safe_mysqld –skip-grant-tables &
(windows 下 mysql安装所以盘/mysql/bin/safe_mysqld –skip-grant-tables )
就可以不需要密码就进入 MySQL 了.
然后就是
>use mysql
>update user set password=password(“new_pass”) where user=”root”;
>flush privileges;
重新杀 MySQL,用正常方法启动 MySQL.

linux下的解决方法:

一. MySQL密码的恢复方法之一
如果忘记了MySQL的root密码,可以用以下方法重新设置:
1. KILL掉系统里的MySQL进程;
killall -TERM mysqld
2. 用以下命令启动MySQL,以不检查权限的方式启动;
safe_mysqld –skip-grant-tables &
3. 然后用空密码方式使用root用户登录 MySQL;
mysql -u root
4. 修改root用户的密码;
mysql> update mysql.user set password=PASSWORD(‘新密码’) where User=’root’;
mysql> flush privileges;
mysql> quit
重新启动MySQL,就可以使用新密码登录了。
二. MySQL密码的恢复方法二
有可能你的系统没有 safe_mysqld 程序(比如我现在用的 ubuntu操作系统, apt-get安装的mysql) , 下面方法可以恢复
1. 停止mysqld;
/etc/init.d/mysql stop
(您可能有其它的方法,总之停止mysqld的运行就可以了)
2. 用以下命令启动MySQL,以不检查权限的方式启动;
mysqld –skip-grant-tables &
3. 然后用空密码方式使用root用户登录 MySQL;
mysql -u root
4. 修改root用户的密码;
mysql> update mysql.user set password=PASSWORD(‘newpassword’) where User=’root’;
mysql> flush privileges;
mysql> quit
重新启动MySQL
/etc/init.d/mysql restart
就可以使用新密码 newpassword 登录了。

windoe下的解决方法:

1、编辑MySQL的配置文件:my.ini
一般在MySQL安装目录下有my.ini即MySQL的配置文件。
在此配置文件的最后添加如下一行:
skip-grant-tables
保存退出编辑。

2、然后重启MySQL服务
在命令行下执行:
net stop MySQL
net start MySQL

3、设置新的ROOT密码
然后再在命令行下执行:
MySQL -u root -p MySQL或mysql -u root -p
直接回车无需密码即可进入数据库了。
此时,在命令行下执行 use mysql;
现在我们执行如下语句把root密码更新为:
update user set password=password(“root”) where user=”root”;
(注意:此时不用使用mysqladmin -u root -p password ‘你的新密码’这条命令修改密码,因为’skip-grant-tables’配置,
不信的话,你可以试用一下,它肯定会报如下所示的错误:
F:\Documents and Settings\long>mysqladmin -u root -p password ‘root’
Enter password:
Warning: single quotes were not trimmed from the password by your command
line client, as you might have expected.
mysqladmin:
You cannot use ‘password’ command as mysqld runs
with grant tables disabled (was started with –skip-grant-tables).
Use: “mysqladmin flush-privileges password ‘*’” instead)
exit 退出MySQL。

4、还原配置文件并重启服务

然后修改MySQL配置文件把刚才添加的那一行’skip-grant-tables’删除。
再次重起MySQL服务,密码修改完毕。
用新密码root试一下吧,又能登入重新进入mysql了.

SSH登陆错误 WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!

2014年7月8日 没有评论

Connection to 192.168.2.2 closed.
[root@localhost ~]# ssh 192.168.2.2
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that the RSA host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
1b:19:d2:4d:c8:88:bf:dc:d6:72:a7:0b:7b:73:07:d8.
Please contact your system administrator.
Add correct host key in /root/.ssh/known_hosts to get rid of this message.
Offending key in /root/.ssh/known_hosts:5
RSA host key for 192.168.2.2 has changed and you have requested strict checking.
Host key verification failed.

1.在客户端执行下述指令即可 #mv /root/.ssh/known_hosts /tmp

2.当然也可以直接编辑known_hosts文件,把里面与所要连接IP(192.168.10.20)相关的内容删掉即可.

解决apt-get的E: Could not get lock /var/lib/dpkg/lock方法

2014年6月26日 没有评论

世界杯年就是容易分心啊。为了看比赛没注意手上的一个在升级配置的服务器运行 apt-get upgrade 更新软件时,ssh超时了。直接关闭了终端,但apt-get进程没有结束,结果终端提示
:E: Could not get lock /var/lib/dpkg/lock

解决办法如下:
办法1 终端输入 ps aux | grep apt-get ,列出进程。找到含有apt-get的进程,然后再直接kill PID。如:kill 5677

办法2 强制解锁,命令:

rm /var/cache/apt/archives/lock
rm /var/lib/dpkg/lock

但这样后果就是如下:

再次运行apt-get upgrade提示。
E: dpkg was interrupted, you must manually run ‘dpkg –configure -a’ to correct the problem.

解决办法:
dpkg –configure -a

CentOS下安装fail2ban防暴力破解工具(转)

2014年6月15日 没有评论

CentOS下安装fail2ban防暴力破解工具:

前言:首先说说为什么笔者会想到写这篇博客,源于昨天下午,突然收到Nagios的报警邮件,说邮件服务器的进程数超过阀值。于是赶紧登录上去查看。

这里说下分析的过程:
1.既然说进程数超过阀值,肯定先查看进程:ps -ef;
2.如果不能即时看到问题,那就动态显示:top,看看究竟是哪个程序占用这么多进程;
3.最后确定了应该是courier-imap,但还不知道是什么原因导致;
4.查看ip连接,确认是否是其存在问题:netstat -ant,发现有大量的110连接;

5.既然是收信服务,那就赶紧追踪查看邮件日志:tail -f /var/log/maillog;
6.发现问题:日志里有大量的登录错误信息,发现是同一ip,并在用不同的用户名密码来暴力破解

7.稍等一会,确定目标IP后,将其ip的包丢弃:iptables -I INPUT -s 176.61.143.41 -j DROP #此ip为真实攻击ip,所以在此曝光
8.稍等一会,再次查看进程,进程数有明显下降,故障解决。

介于这种安全隐患的存在,我们以后可以利用fail2ban来实现防暴力破解,防止恶意攻击。
下面就来说说fail2ban具体是什么。
简介:
fail2ban可以监视你的系统日志,然后匹配日志的错误信息(正则式匹配)执行相应的屏蔽动作(一般情况下是调用防火墙屏蔽),如:当有人在试探你的SSH、SMTP、FTP密码,只要达到你预设的次数,fail2ban就会调用防火墙屏蔽这个IP,而且可以发送e-mail通知系统管理员,是一款很实用、很强大的软件!

功能和特性:
1、支持大量服务。如sshd,apache,qmail,proftpd,sasl等等
2、支持多种动作。如iptables,tcp-wrapper,shorewall(iptables第三方工具),mail notifications(邮件通知)等等。
3、在logpath选项中支持通配符
4、需要Gamin支持(注:Gamin是用于监视文件和目录是否更改的服务工具)
5、需要安装python,iptables,tcp-wrapper,shorewall,Gamin。如果想要发邮件,那必需安装postfix或sendmail
核心原理:
其实fail2ban就是用来监控,具体是调用iptables来实现动作!

好了,那下面来说说具体怎么安装、部署吧。
一、首先是服务安装
首先配置yum源,这里采用的是yum直接装(也可源码安装)
vim /etc/yum.repos.d/CentOS-Base.repo
在最后新增:
[atrpms]
name=Red Hat Enterprise Linux $releasever – $basearch – ATrpms
baseurl=http://dl.atrpms.net/el$releasever-$basearch/atrpms/stable
gpgkey=http://ATrpms.net/RPM-GPG-KEY.atrpms
gpgcheck=1
enabled=1
然后直接就yum装:yum -y install fail2ban
安装完成后,服务配置目录为:/etc/fail2ban
/etc/fail2ban/action.d #动作文件夹,内含默认文件。iptables以及mail等动作配置
/etc/fail2ban/fail2ban.conf #定义了fai2ban日志级别、日志位置及sock文件位置
/etc/fail2ban/filter.d #条件文件夹,内含默认文件。过滤日志关键内容设置
/etc/fail2ban/jail.conf #主要配置文件,模块化。主要设置启用ban动作的服务及动作阀值
/etc/rc.d/init.d/fail2ban #启动脚本文件

二、安装后配置
首先来看看日志文件的默认定义:
cat /etc/fail2ban/fail2ban.conf |grep -v ^#
[Definition]
loglevel = 3
logtarget = SYSLOG #我们需要做的就是把这行改成/var/log/fail2ban.log,方便用来记录日志信息
socket = /var/run/fail2ban/fail2ban.sock
再来看看主配置默认生效的配置:
cat /etc/fail2ban/jail.conf |grep -v ^# |less

[DEFAULT] #全局设置
ignoreip = 127.0.0.1 #忽略的IP列表,不受设置限制(白名单)
bantime = 600 #屏蔽时间,单位:秒
findtime = 600 #这个时间段内超过规定次数会被ban掉
maxretry = 3 #最大尝试次数
backend = auto #日志修改检测机制(gamin、polling和auto这三种)

[ssh-iptables] #针对各服务的检查配置,如设置bantime、findtime、maxretry和全局冲突,服务优先级大于全局设置
enabled = true #是否激活此项(true/false)
filter = sshd #过滤规则filter的名字,对应filter.d目录下的sshd.conf
action = iptables[name=SSH, port=ssh, protocol=tcp] #动作的相关参数
sendmail-whois[name=SSH, dest=root, sender=fail2ban@example.com] #触发报警的收件人
logpath = /var/log/secure #检测的系统的登陆日志文件
maxretry = 5 #最大尝试次数
PS:logpath(Centos5和Rhel5中)要写成/var/log/secure,这个是系统登陆日志,不能随意设置

service fail2ban start #启动服务即可(就用默认的主配置文件里定义的)
service iptables start #fail2ban依赖预iptables #之前改过日志路径,不行的话就再重启fail2ban
三、测试功能
测试机:192.168.30.251
fail2ban:192.168.29.253

在测试机上ssh 192.168.29.253,并且连续输入超过5次密码不对(经测试有延迟,多试几次),就会出现下图,连接不上

fail2ban上会产生日志记录:阻挡了此ip的续连

四、扩展说明
其实fail2ban的功能还是很丰富的,刚刚只是测试了它的防ssh暴力破解功能。
下面简单提下我用的一些功能:
本人是用在邮件服务器上,所以会监控pop、http等服务,具体配置见下(不做演示了)
[pop3]
enabled = true
filter = courierlogin
action = iptables[name=pop3, port=110, protocol=tcp]
logpath = /var/log/maillog
bantime = 1800
findtime = 300
maxretry = 30

[webmail]
enabled = true
filter = webmail
action = iptables[name=httpd, port=http, protocol=tcp]
logpath = /var/log/maillog
bantime = 900
findtime = 300
maxretry = 5

好了,就先到这里吧!

Sql Server 2008 还原数据库 3154错误

2014年6月13日 没有评论

sqlserver2008还原数据库时出现了3154错误,具体错误信息如下:
错误信息
标题: Microsoft SQL Server Management Studio
——————————
还原 对于 服务器“vps12com-PC”失败。 (Microsoft.SqlServer.SmoExtended)
——————————
其他信息:
执行 Transact-SQL 语句或批处理时发生了异常。 (Microsoft.SqlServer.ConnectionInfo)
——————————
尚未备份数据库 “vps12com” 的日志尾部。如果该日志包含您不希望丢失的工作,请使用 BACKUP LOG WITH NORECOVERY 备份该日志。请使用 RESTORE 语句的 WITH REPLACE 或 WITH STOPAT 子句来只覆盖该日志的内容。
RESTORE DATABASE 正在异常终止。 (Microsoft SQL Server,错误: 3159)

解决方法
不在数据库名字上右键点击还原,而是在上一层目录“数据库”上右键还原,然后选择要还原的数据库,和备份文件

什么是pps数据包

2014年5月22日 没有评论

经常看到一些国内外网站提供的防火墙防护单位级别以PPS为单位。对国内大部分朋友来讲有些陌生,是什么意思呢。又表示可以防护多少GB呢。国内一般多数表示为10G、20G硬件防火墙。比如好理解。我们先来了解下什么是pps。

数据包每秒(Packets per Second (PPS) )

  网络的性能通常用吞吐率(throughput)这个指标来衡量。常用的网络吞吐率的单位有:PPS(即每秒发送多少个分组数据包)、BPS(ByetsPer Second;即每秒发送多少字节)、bPS (bits Per Second;即每秒发送多少比特)、TPS(TransactionsPer Second;即每秒完成多少次发送过程)。

Precision Positioning System的简称。

  美国政府在GPS的最初设计中,计划向社会提供两种服务:精密定位服务(PPS)和标准定位服务(SPS)。精密定位服务的主要对象是美国军事部门和其他特许民用部门。使用C/A码和双频P码,以消除电离层效应的影响,使预期定位精度达到10m。标准定位服务的主要对象是广大的民间用户。它只使用结构简单、成本低廉的C/A码单频接收机,预期定位精度只达到100m左右。但是,在GPS试验阶段,由于提高了卫星钟的稳定性和改进了卫星轨道的测定精度,使得只利用C/A码进行定位的GPS精度达到14m,利用P码的PPS的精度达到3m,远远优于预期定位精度。美国政府考虑到自身的安全,于1991年7月在BlockⅡ卫星上实施SA和AS政策。其目的是降低GPS的定位精度。

示例:10 Mbps: 14,880 pps 表示什么?

包转发率标志了交换机转发数据包能力的大小。单位一般位pps(包每秒),一般交换机的包转发率在几十Kpps到几百Mpps不等。包转发速率是指交换机每秒可以转发多少百万个数据包(Mpps),即交换机能同时转发的数据包的数量。包转发率以数据包为单位体现了交换机的交换能力。
10Mbps就是10,000,000/8 字节/秒的传输速度 ,每秒10M位的传输速度 ,8位等于1字节 ,10M位相当于1.25M字节 ,就是每秒传输速度是1.25M字节
pps:每秒转发数据包的数量
就是在10 Mbps带宽,包转发速率是 14,880包/秒

以上,我们可以理解为防火墙的防护效率。

分类: 网络产品 标签: , ,

服务器重启后mysql服务启动得很慢的解决办法

2014年5月9日 没有评论

今天帮客户处理问题时遇到了一个非常郁闷的问题。

服务器重启后,mysql老是连接不上.网站打不开.要等上几十分钟甚至几小时MYSQL才能启动完。
并且服务器远程桌面也非常慢。经常卡死。

查了很久发现原来是C:\windows\temp下面存在大量的临时文件导致mysql启动缓慢,原因是长时间没有清理导致临时文件过多,影响到了mysql的正常启动。既然找到原因了就好下手解决问题。

经过如下方式处理后,mysql正常启动了!

开始——运行,输入CMD

然后再输入 del c:\windows\temp\*.* /s /q 回车。

就会自动删除C:\windows\temp下面所有的临时文件。

如果是Windows系统还可以使用以下方法解决。
MySQL Server目录下,打开my.ini,查找[mysqld],在其下加一行

tmpdir=”C:/mysql_temp/”

C:/mysql_temp/自己建立,这个作为mysql的临时目录。
该目录的权限仅为
Administrators:完全控制
SYSTEM:完全控制
即可。(假设你的mysql服务启动用户为”本地系统账户”)

让你的网站实现301重定向

2014年5月8日 没有评论

本文档用于帮助部分因空间不支持301重定向而困扰的用户提供解决办法。
该解决办法的前提:
空间必须支持伪静态,也就是mod_rewrite模块,这点应该绝大部分空间商都支持,如果你是自己搭建的服务器,可以到网上直接搜索301重定向需要的设置。
搞清楚你服务器环境的类型,你登录网站后台,系统配置-系统信息,下面有PHP环境,务必搞清楚是IIS还是apache。
以下是实现办法:
IIS下利用伪静态httpd.ini来实现301重定向
一、没有在后台开启伪静态,使用的是静态页面或动态页面
[ISAPI_Rewrite]
# 3600 = 1 hour
CacheClockRate 3600
RepeatLimit 32
RewriteCond Host: ^vps12.com$
RewriteRule (.*) http://www.vps12.com$1 [I,RP]
新建一个文本文档,把文件名以及后缀修改为:httpd.ini (windows系统一般要设置可见文件后缀或才能修改真正的文件后缀)
把上面的代码粘贴到httpd.ini文件中,且务必仔细将以上代码做修改,把vps12.com改成你的域名,如abc.com,注意.前面的也需要(最下面两行都需要做一样的修改)。
保存后,登录FTP,将该文件上传到你网站的根目录,然后就大功告成,访问网站试试吧!
二、如果在网站后台开启了伪静态
登录FTP,找到根目录下的httpd.ini文件,下载到本地,编辑该文件,在第4行 RepeatLimit 32 下新起一行(注意不要动下面的代码),把下面这段复制粘贴到新起的那行:
RewriteCond Host: ^vps12.com$
RewriteRule (.*) http://www.vps12.com$1 [I,R]
然后,务必把vps12.com修改为你的域名,如abc.com,注意.前面的也需要。
保存后,登录FTP,将该文件上传覆盖到你网站的根目录,然后就大功告成,访问网站试试吧!

apache下利用.htaccess来实现301重定向
一、没有开启伪静态功能
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www.vps12.com$ [NC]
RewriteRule ^(.*)$ http://www.vps12.com/$1 [L,R=301]
新建一个文本文档,把文件名以及后缀修改为:.htaccess (windows系统一般要设置可见文件后缀或才能修改真正的文件后缀)
把上面的代码粘贴到.htaccess文件中,且务必仔细将以上代码做修改,把vps12.com改成你的域名,如abc.com。
保存后,登录FTP,将该文件上传到你网站的根目录,即可。
二、开启了伪静态功能
登录FTP,找到根目录下的.htaccess文件,下载到本地,编辑该文件,在第1行 RewriteEngine On 下新起一行(注意不要动下面的代码),把下面这段复制粘贴到新起的那行:
RewriteCond %{HTTP_HOST} !^www.vps12.com$ [NC]
RewriteRule ^(.*)$ http://www.vps12.com/$1 [L,R=301]
然后,务必把vps12.com修改为你的域名,如abc.com。
保存后,登录FTP,将该文件上传覆盖到你网站的根目录,即可。