2008年10月25日 by 樂思蜀
近日樂思蜀将服务器MySQL版本升级后,SEO论坛在后台优化数据库时出现下面提示信息,到PHPWind官方论坛上去查找,只见提同样问题的,不见一个可行的解决办法。
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'EXTENDED' at line 1 ( 1064 )
因不影响正常使用,也就没太在意。今日偶然想起,打开 PHPWind 程序的此文件,解决了问题,现分享方法如下。
打开“安装目录/admin/repair.php文件”,将下面一行中的 EXTENDED 删除:
$query = $db->query("OPTIMIZE TABLE $table EXTENDED ");
参考了相关资料,EXTENDED 参数用在 MySQL 数据库修复数据表时(只对MyISAM和ARCHIVE类型的表有效),起逐行重建索引的效果,同样的参数有:
老乐也是知其然不知其所以然,抱着试一试的想法去掉 OPTIMIZE 一行中的 EXTENDED 参数,一测试竟然好了。
难道 OPTIMIZE TABLE 不支持 EXTENDED 参数?希望熟悉的朋友留言告诉我一下,我的数据库版本是 5.0.67,谢谢!
2008年02月19日 by 樂思蜀
MYSQL定期备份是一项重要的工作,但人工操作太繁琐,也难避免有所疏漏,使用下面的方法即可让系统定期备份数据。
1、创建备份文件夹
#cd /www
#makedir backup
2、编写运行脚本
#vi autobackup
写入以下内容:
filename=`date +%Y%m%d`
mysql_bin_dir/mysqldump –opt dataname -u user -ppassword | gzip > /www/mysqlbackup/name$filename.gz
保存退出
说明:
(1)mysql_bin_dir:mysql的bin路径;
(2)dataname:数据库名;
(3)user:数据库用户名;
(4)password:用户密码;
(5)name:自定义备份文件前缀标识。
如上例,将自动备份mysql数据库,并以gzip压缩方式存储,文件名为name20080101.gz的形式。
3、为脚本添加执行权限
#chmod +x autobackup
4、让crontab来完成定期执行的任务
这一步中,Redhat的方法会不一样,后面专门给出。
编辑crontab:
#vi /etc/crontab
在最后一行中加入:
01 5 * * * root /www/autobackup
每天5点运行脚本,也可以修改5为其他指定时间。
Redhat方法:
Redhat的crontab采用按时间调用4个目录(/etc/cron.hourly:每小时;/etc/cron.daily:每天;/etc/cron.weekly:每周;/etc/cron.monthly:每月)中脚本出来运行的方式。
Redhat中只需要将刚才编辑的脚本复制到相应的目录即可。
5、重启crontab
#/etc/rc.d/init.d/crond restart
完成
其实原理很简单,自己制作一个脚本,让Linux系统自动运行。我们还可以再扩展一下,编辑一个自动备份网站文件的脚本,让Linux来完成,每天自动备份整个网站,等等……
2008年02月19日 by 樂思蜀
1、mod_evasive 介绍
mod_evasive 是Apache(httpd)服务器的防DDOS的一个模块。对于WEB服务器来说,是目前比较好的一个防护DDOS攻击的扩展模块。虽然并不能完全防御DDOS攻击,但在一定条件下,还是起到缓服Apache(httpd)服务器的压力。如果配合iptables、硬件防火墙等防火墙设备配合使用,可能有更好的效果。可惜LinuxSir.Org 并没有硬件防火墙,所以是否这种组合效果有更好的效果,我没办法验证。
mod_evasive 的官方地址: http://www.zdziarski.com/projects/mod_evasive
2、mod_evasive 的安装和配置
2.1 mod_evasive 下载:
2.2 mod_evasive 安装
安装 mod_evasive 之前,你要用安装Apache(httpd)服务器软件包,还要安装httpd-devel或 apache-dev。在Slackware 12.0中,安装httpd软件即可;
对于Apache 1.x 请用下面的编译方法:
#/usr/sbin/apxs -iac mod_evasive.c
对于Apache 2.x 可以用下面的办法:
#tar zxvf mod_evasive_1.10.1.tar.gz
#cd mod_evasive
#/usr/sbin/apxs -i -a -c mod_evasive20.c
注:apxs 用于编译模块工具;如果是用系统自带的软件包,一般位于/usr/sbin目录。如果您是自己编译安装Apache(httpd)的,你应该自己来指定路径;
我们然后修改/etc/ld.so.conf 文件,把编译出来的动态模块的所在位置指定在 ld.so.conf中;比如我用的是Aapche 2.x ,编译完成后,模块mod_evasive20.so 安装到了 /usr/lib/httpd/modules 目录中;那我们就要把 这个目录写入到ld.so.conf中。
#echo “/usr/lib/httpd/modules” >> /etc/ld.so.conf
#ldconfig
2.3 mod_evasive 的配置
在编译安装完成后,会自动插入一行到Apache 配置文件中,对于Apache 2.x 版本中,应该在其配置文件中有类似下面的一行;
LoadModule evasive20_module lib/httpd/modules/mod_evasive20.so
对于Apache 1.x来说,也应该差不多,大体只是路径不同罢了;
然后我们再修改 Apache 的配置文件,配置文件名为httpd.conf;
在Apache v1.x 版本中,要加入:
<IfModule mod_evasive.c>
DOSHashTableSize 3097
DOSPageCount 2
DOSSiteCount 50
DOSPageInterval 1
DOSSiteInterval 1
DOSBlockingPeriod 10
</IfModule>
在Apache v2.x加入:
<IfModule mod_evasive20.c>
DOSHashTableSize 3097
DOSPageCount 2
DOSSiteCount 50
DOSPageInterval 1
DOSSiteInterval 1
DOSBlockingPeriod 10
</IfModule>
如果您不知道把这些插入到哪,用下面的办法做也是可以的;
在/etc目录中创建一个文件,比如mod_evasive.conf:
#touch /etc/mod_evasive.conf
然后把根据自己的Apache版本来加入相应的内容;
接着我们再修改 httpd.conf ,在最后一行加入
Include /etc/mod_evasive.conf
修改完成后,我们要重启Apache服务器;
比如在Slackware 12.0中,Apache 2.x的重启,我们要用到
#/etc/rc.d/rc.httpd restart
在Redhat、Fededora、Debian、Ubuntu、CentOS中的Apache,可以用:
#/etc/init.d/httpd restart
或
#/etc/init.d/apache restart
2.4 对mod_evasive测试验证
防DDOS的模块做好后,我们可以要验证,可以用Apache 自带的ab工具,系统默认安装在/usr/sbin目录中;比如:
#/usr/sbin/ab -n 1000 -c 50 http://www.google.com:80/
注:上面的例子的意思是,如果您的服务器是google的WEB服务器,我们要发送数据请求包,总共1000个,每次并发50个;
另外一个测试工具就是mod_evasive的解压包的目录中,有个test.pl ,你可以修改IP地址,然后用
#perl test.pl
是不是有效果,请根据 ab工具或 测试脚本出来的结果来查看;
因为我们编译mod_evasive时,用的是默认配置,所以日志被存放在/tmp目录中。如果有DDOS攻击,会在/tmp产生日志。日志的文件是以 dos-开头的;
3、mod_evasive 的高级配置
如果想更改一些适合自己的参数,有些必要的参数,并不是通过配置文件修改就一下起作用的,我们要修改源码包中的 mod_evasive.c(Apache 1.x用之) 或 mod_evasive20.c (Apache 2.x用之);
#define DEFAULT_HASH_TBL_SIZE 3097ul // Default hash table size
#define DEFAULT_PAGE_COUNT 2 // Default maximum page hit count per interval
#define DEFAULT_SITE_COUNT 50 // Default maximum site hit count per interval
#define DEFAULT_PAGE_INTERVAL 1 // Default 1 Second page interval
#define DEFAULT_SITE_INTERVAL 1 // Default 1 Second site interval
#define DEFAULT_BLOCKING_PERIOD 10 // Default for Detected IPs; blocked for 10 seconds
#define DEFAULT_LOG_DIR “/tmp” // Default temp directory
比如我们改改其中的数字,根据英文很容易理解。比如修改日志存放目录,就把/tmp改成别的目录。如果您不知道放在哪好,还是用默认的吧;
如果您在这里更改了参数,不要忘记修改Apache 配置文件中关于mod_evasive 的参数;
如果您想加入一些其它的参数,请查阅源码包中的README,里面有详细说明,大多来说没太大的必要……
这个文件相当重要,如果您想更改某些设置,就要修改这个文件……
参考文档
参考 mod_evasive 源码包中的README
2008年02月19日 by 樂思蜀
中文名称:REDHAT 企业版 LINUX 5.0
英文名称:REDHAT ENTERPRISE LINUX 5.0
别名:REDHAT
类型:ISO
版本:企业版5.0
发行时间:2007年03月14日
制作发行:REDHAT for X86 版本
下载地址(如无法直接下载,请尝试使用迅雷):
CD1: http://rhel.bw999.com/rhel-5-server-i386-disc1.iso
CD2: http://rhel.bw999.com/rhel-5-server-i386-disc2.iso
CD3: http://rhel.bw999.com/rhel-5-server-i386-disc3.iso
CD4: http://rhel.bw999.com/rhel-5-server-i386-disc4.iso
CD5: http://rhel.bw999.com/rhel-5-server-i386-disc5.iso
2008年02月19日 by 樂思蜀
Apache日志精准的记录了Web访问的记录,但对于访问量很大的站来说,日志文件过大对于分析和保存很不方便。可以在http.conf(或虚拟主机设置文件httpd-vhosts.conf)中进行设置,限制日志不记录指定文件类型,减少日志文件空间占用。
〈FilesMatch “\.(ico|gif|jpg|swf)”〉
SetEnv IMAG 1
〈/FilesMatch〉
CustomLog logs/access_log combined env=!IMAG
第一行中:蓝色部分为指定文件类型,设置后将不记录这些文件的访问;
第四行中:绿色部分为日志路径,根据实际情况设置;蓝色部分为apache日志4种记录方式(common、combined、referer、agent)之一,根据实际需要选择;env=!IMAG一定要加在最后,指令不记录上面设定的文件类型。
注:红色的括号为全角,使用时转换成半角。
2008年01月20日 by 樂思蜀
服务器再次遭受攻击,很郁闷。实在不明白,这些人能攻击别人服务器,技术就不一般了,为什么不干点好事,找个发展的路子,寻找自己的人生方向,净干些损人的事。
搞的人很没心情,坚持“每日一博”的事也中断了。
近日西安天天大雪,好冷啊!高速封路,火车没票,飞机飞不了,过年回家是个问题。
气温降的很厉害,像枫林这些要回西安的朋友要注意了,多穿点衣服,最好是防水的