将MySQL存储类型从InnoDB修改为MyISAM

又有一段时间没更新了,最近也没啥心情,最不好意思的就是各位友链鸡油了。今天来说下wordpress数据库表的存储引擎类型,mysql不支持InnoDB这种存储类型的数据表进行优化,优化的时候提示下面错误:
note     : The storage engine for the table doesn’t support repair
相信也有很多人使用过WP-Optimize这个wordpress优化插件,其中一个功能就是对wordpress数据表进行优化,如果你的数据表带有InnoDB的存储引擎,这个插件是不会讲该类型的表进行优化的,就算你到mysql服务器上也是无法进行优化,所以我们要修改下wordpress数据表的存储引擎类型,进入phpmyadmin管理数据库—-选中数据库—-SQL—执行下面修改表数据的语句即可:
ALTER TABLE 数据表名 ENGINE=MyISAM;
有多个表可以一起修改的,但每条SQL查询语句应有(;)分号隔开。续上面一篇关于本站mysql数据库出问题而写。目前本站已经所以数据库表的存储引擎类型修改为MyISAM类型。

各位,网站数据库出问题

各位基友,站点数据库出问题。等待恢复。。。给您带来不便请谅解。谢谢。

历时10多个时辰—终于,还是恢复过来了。之间有很多的想法。还好自己先去看下数据库,发觉这东西是可以恢复的。而后就是把站点根目录下的wp-config.php的配置文件重命名了下—-新建数据库—-重新安装进行等待恢复。

具体什么原由我也不大清楚,大概就是原来的数据库表存储引擎类型不一样。一个为MyISAM一个为InnoDB的类型。而昨天却是MySQL服务器竟然出现不知道InnoDB 引擎类型。。。。

上面两段更新于2013-05-22

不管怎么做,英文垃圾评论还是不断

不管怎么做,英文垃圾评论还是不断。这个真的是一个烦恼。每次更新了wordpress自带的防垃圾配置,立马就好很多。可是。不知道为啥,更新配置后不到两天,英文垃圾评论又来了。不过,自带还是有点点效果吧。至少是防住了不少垃圾评论。可这两天又是垃圾评论不断哈。好吧,本来英文就烂得如泥的我都不想去什么Akismet申请个API的。逼不得已了,只好这样。使劲的去申请了个API过来,说回来比没有自己想象得难。

现在本博客也启用了Akismet的免费服务来了。待两天看看效果。想来应该还是不错的。毕竟全球第一防垃圾服务商的产品哈。小小激动下。关于申请过程真的不值得一提了。有需要的友友就稍微Google一下便有一堆好用的教程。待测试~~~

小试搭建Squid反向代理服务器

好吧,更新个文章,有段时间没写技术博文了。今天就说说squid反向代理这个服务,当然,这是在Linux下配置完成的。说自己没偏见似乎不可能了。大概是相对喜欢Linux而已。但我从不否认Windows Server功能及性能会比Linux差。只是个人爱好哈,不多说。下面说下搭建squid反向代理多个域名,多个web站点的方法。

环境(这个很重要哦)

两台CentOS6.3一台RHEL6.2

网卡信息和DNS记录信息比较多,似乎有点烦,有需要的看清楚就是了。纯属个人喜好和习惯划分的。

DNS Server IP:192.168.2.10 (VMnet2)

Squid Server IP:(双网卡哦,一般代理都是代理Internet的访客吗,内外自己就不必麻烦了)外网(VMnet8‘NAT’模式并不要启用VMware的DHCP分配,即查看信息后手动对应更新为静态IP)192.168.8.113/24,内外(VMnet2)192.168.2.20/24

内部WEB Server IP:192.168.2.30-33/24(VMnet2)对应虚拟主机配置的名称查阅下面DNS配置:

[root@localhost named]# more 2.168.192.zone
$TTL 1D
@       IN SOA  @ rname.invalid. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      @
        MX 5    @
        A       192.168.2.10
        PTR     ns.zwz.com.
20      PTR     mail.zwz.com.
        PTR     pop3.zwz.com.
        PTR     smtp.zwz.com.
        PTR     www.zwz.com.
        PTR     squid.zwz.com.
        PTR     www.wl.com.
30     PTR     ftp.zwz.com.
30     PTR     www1.zwz.com.
31      PTR     www2.zwz.com.
32      PTR     www3.wl.com.
33      PTR     www4.wl.com.
[root@localhost named]#

上面红色字对应的DNS记录全是指向内部WEB服务器的相应站点。蓝色字是指向Squid服务器的,即外网访问的域名。这些是用CNAME方式做的,由于有两个域名,并都是同一个反向区域记录,所以这里就只more出反向解析的配置文件了。正向解析有需要的自个配置哈。

Note:事实上,www.zwz.com和www.wl.com就是申请的公网IP地址了。

从WEB服务器的配置开始吧,下面是Apache虚拟主机相关站点的配置:

NameVirtualHost 192.168.2.30:80
NameVirtualHost 192.168.2.31:80
NameVirtualHost 192.168.2.32:80
NameVirtualHost 192.168.2.33:80
<VirtualHost 192.168.2.30:80>
    ServerAdmin admin@zwz.com
    DocumentRoot /var/www/html/web1
    ServerName www1.zwz.com
    DirectoryIndex index.html index.html.var
    ErrorLog logs/dummy-host.example.com-error_log
    CustomLog logs/dummy-host.example.com-access_log common
</VirtualHost>
<VirtualHost 192.168.2.31:80>
    ServerAdmin webmaster@dummy-host.example.com
    DocumentRoot /var/www/html/web2
    ServerName www2.zwz.com
    DirectoryIndex index.html
    ErrorLog logs/dummy-host.example.com-error_log
    CustomLog logs/dummy-host.example.com-access_log common
</VirtualHost>
<VirtualHost 192.168.2.32:80>
    ServerAdmin admin@wl.com
    DocumentRoot /var/www/html/wl1
    ServerName www3.wl.com
    directoryindex index.html
    ErrorLog logs/dummy-host.example.com-error_log
    CustomLog logs/dummy-host.example.com-access_log common
</VirtualHost>
<VirtualHost 192.168.2.33:80>
    ServerAdmin webmaster@dummy-host.example.com
    DocumentRoot /var/www/html/wl2
    ServerName www4.wl.com
    directoryindex index.html
    ErrorLog logs/dummy-host.example.com-error_log
    CustomLog logs/dummy-host.example.com-access_log common
</VirtualHost>
[root@localhost html]#

有关Apache虚拟主机的配置这里不多说鸟。

最后是squid反向代理服务器的配置。其实squid的acl还是很强大哈,本人倒也没有深入学习过。但隐隐约约感觉到和微软的ISA有点点相似。结合Linux下的iptables应该也可以实现一个相对简单的局域网内的软件防火墙了。

1.安装squid软件—–本地yum吧。yum install -y squid 即可。

2.配置文件并不多,全在目录/etc/squid/下。而且这里我们都是只需要修改该目录下的squid.conf配置文件即可。话又说回来,该文档中只有squid软件的些许参数,很多都没在该文档中出现。

acl all src 0.0.0.0/0.0.0.0
http_access allow all ##Note:注意该句应该写在默认的的deny all前面哈。acl了,不解析,顺序读取嘛。
cache_log /usr/local/squid/var/logs/cache.log
access_log /usr/local/squid/var/logs/access.log squid
cache_dir ufs /usr/local/squid/var/cache/ 1000 16 256
coredump_dir /var/spool/squid ##不用多说吧,相关日志/缓存等目录的具体路劲。
http_port 80 accel vhost vport ## 配置 squid 为加速模式,并且都是是用虚拟主机的配置。
cache_mem 64 MB ##squid 用于缓存的内存量,由于我是用VMware完成的,而且系统一共才给了265MB,所以也就只给了64MB了。
cache_swap_low 90
cache_swap_high 95
cache_effective_user squid ##指定缓存的有效用户
cache_effective_group squid ##缓存的有效用户组
visible_hostname squid.zwz.com ## 设定 squid 的主机名 , 如无此项 squid 将无法启动,可以任意取。
cache_peer 192.168.2.30 parent 80 0 no-query originserver round-robin name=www1
cache_peer_domain www1 www.zwz.com
cache_peer 192.168.2.31 parent 80 0 no-query originserver round-robin name=www2
cache_peer_domain www2 www.zwz.com
##上面四句的意思是将www.zwz.com这个站点的请求通过RR轮询方式进行请求,如果用户请求的数据本地
##Squid服务器上有,那么就直接返回,否则向web源站点请求数据,然后再返回给用户。从这里看出虾米哦(Cdn吧,嘿!)
cache_peer 192.168.2.32 parent 80 0 no-query originserver round-robin name=www3
cache_peer_domain www3 www.wl.com
cache_peer 192.168.2.33 parent 80 0 no-query originserver round-robin name=www4
cache_peer_domain www4 www.wl.com
##同上四句~

上面配置可以清楚有冲突的acl然后直接添加至该文档的最后面。该配置文件安装后就有,在/etc/squid/目录下有几个是配置文档,还是几个是相对应的存档(带.default的)

好啦。至此,启动相关服务器上的相关服务进行测试呗,我是用物理机修改hosts的方法进行测试的。添加物理机hosts记录对应的squid服务器的NAT网卡IP指向www.zwz.com和www.wl.com即可。hosts文件一般在C:\Windows\System32\Drivers\etc目录下。

Note:不要使用chrom浏览器进行测试。貌似该浏览器自带有种代理请求的东东,其实也就是本软件范围内的缓存,好像还是比较顽固的,用IE或者Firefox测试都行,(我都是用隐私模式浏览滴)。好吧,上图看下:
修改hosts文件进行解析测试

第一次访问www.zwz.com
第一次访问www.zwz.com
刷新访问www.zwz.com
刷新访问www.zwz.com
第一次访问www.wl.com
第一次访问www.wl.com
刷新访问www.wl.com
刷新访问www.wl.com

配置完成,还有些想法哈,目前貌似这东东也不是很流行了捏。但应该也还是用人在使用的。下次倾向于Nginx哪~

wordpress博客自动关联新浪围脖

之前很纠结到底网络上说的wordpress博客关联新浪围脖。。。使劲找也没找到。最后在微博里看到了来源是 关联博客 的微博。最后我懂了。。。。有需要就使劲点击进行关联吧。我有放弃使用了哈。不能关联文章分享的图片信息。就使发布了都没人看。。。So~~~~

博客两天没更新了

这博客两天没更新了哈。这几天离职—晚班—设计—练习—各种忙—一天就都那么几个钟休息的,而且几个钟都不能睡得安稳~~~~来来来。。。离职协议今晚填好了。更新个短博文。。。。上班一个多月来,收获还是有的~已经算不枉此行了。原计划毕业后离职的。目前形势不容~~~(呵,开玩笑了),各种解析不想~

下一站—–DG or SZ  ? 求解答!~

最后送上个来自法国的MM,然后全世界晚安~!

Alizee Latest
Alizee Latest
Alizee-desktops
Alizee-desktops

防火墙常用配置(iptables)

1、语法:
iptables [-t table] command [chains] [rule-matcher] [ -j  target ]
操作指令 指定表 指定操作命令 指定链 指定匹配规则 指定目标动作
2、参数:
① 表通常有三个。
Filter表    (过滤表)
Nat表       (网络地址转换表)
.Mangle表    (数据包处理表)
② 常用操作命令
-A 或–append    在所选的链尾加入一条或多条规则。
-D 或–delete    从所选的链中删除一条或多条匹配的规则。
-R 或–replace    在所选的链中替换一条匹配的规则,需指定规则中的数字。
-I 或–insert    按给出的规则号在所选的链中插入一条规则。
-L 或–list    列出指定链的全部规则,如未指定链,则列出所有链的全部规则。
-F 或–flush    清除指定链和表中的全部规则,如未指定链,则所有链都将被清。
-N 或–new-chain    以给定的名字创建一条新的用户自定义链,不能与已有的链同名。
-X 或–delete-chain     删除指定的用户自定义链,必须保证链中的规则不在使用才能删除,若未指定链,则删除所有用户自定义链。
-P 或–policy    为内置链指定默认规则(链政策)。用户自定义链没有默认规则,其默认规则是规则链中的最后一条规则,用-L命令时它显示在第一行。
-E 或–rename-chain    根据用户给出的名字对指定的自定义链进行重命名,该命令不影响Table的结构。
-C 或–check    检查给定的包是否与指定的规则相匹配。
-Z 或–zero    将指定链中所有规则的数据包(PKTS)和字节(byte)计数器清零。该计数器用来计算同一数据包出现的次数,是过滤阻断式攻击不可或缺的工具。
-h 或–help    给出当前命令语法的简短说明。
③ 链(Chains)
.INPUT链    处理输入包的规则链。
.OUTPUT链    处理输出包的规则链。
.FORWARD链    处理转发包的规则链。
PREROUTING链    对到达且未经路由判断之前的包进行处理的规则链。
POSTROUTING链    对发出且经过路由判断之后的包进行处理的规则链。
用户自定义链    是由filter表内置链来调用的,它是针对调用链获取的数据包

(CentOS)Centos6.3下Apache配置https证书访问

这里简单演示一下Apache下基于加密的认证访问—-https加密方式访问。

1.DNS解析这里不再赘述了哈,相见本次演示的dns解析情况:

[root@localhost html]# nslookup www.abc.com
Server:         192.168.2.115
Address:        192.168.2.115#53
Name:   www.abc.com
Address: 192.168.2.115

2.安装Apache SSL支持模块:# yum install -y mod_ssl (默认yum安装httpd是没有安装该模块的,安装后自动生产/etc/httpd/conf.d/ssl.conf文件)并生成证书。

[root@localhost certs]# pwd
/etc/pki/tls/certs
[root@localhost certs]# ls
ca-bundle.crt        index.html      localhost.crt    Makefile
ca-bundle.trust.crt  localhost1.crt  make-dummy-cert
[root@localhost certs]# openssl req -utf8 -new -key ../private/localhost.key -x509 -days 3650 -out abc_com.crt
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter ‘.’, the field will be left blank.
—–
Country Name (2 letter code) [XX]:CN
State or Province Name (full name) []:510510
Locality Name (eg, city) [Default City]:GZ
Organization Name (eg, company) [Default Company Ltd]:ABC.COM
Organizational Unit Name (eg, section) []:Mr.Zhang
Common Name (eg, your name or your server’s hostname) []:www.abc.com
Email Address []:root@abc.com
[root@localhost certs]#

3.配置Apache,基本配置这里不多说了,下面是配置www.abc.com站点http访问的情况。

[root@localhost html]# tail -n 8 /etc/httpd/conf/httpd.conf
NameVirtualhost 192.168.2.115:80
<VirtualHost www.abc.com: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
</VirtualHost>
[root@localhost html]# tail /var/www/html/index.html                      
www.abc.com
[root@localhost html]#

4.配置Apache支持https访问www.abc.com站点,编辑 vim /etc/httpd/conf.d/ssl.conf 文件,制定www.abc.com站点https访问时的相关信息。添加下面配置。

<VirtualHost www.abc.com:443>
DocumentRoot “/var/www/html/www.kuteatest.net”    #//为了显示效果,这里的站点目录不一样,一般情况一个域名应该指向同一目录的。
ServerName www.abc.com:443
ErrorLog logs/ssl_error_log
TransferLog logs/ssl_access_log
LogLevel warn
SSLEngine on
SSLProtocol all -SSLv2
SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW
SSLCertificateFile /etc/pki/tls/certs/abc_com.crt
SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
<Files ~ “\.(cgi|shtml|phtml|php3?)$”>
    SSLOptions +StdEnvVars
</Files>
<Directory “/var/www/cgi-bin”>
    SSLOptions +StdEnvVars
</Directory>
SetEnvIf User-Agent “.*MSIE.*” \
         nokeepalive ssl-unclean-shutdown \
         downgrade-1.0 force-response-1.0
CustomLog logs/ssl_request_log \
          “%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \”%r\” %b”
</VirtualHost>

4.重启Apache服务,测试访问。

测试http访问的结果
测试http访问的结果
测试https访问的结果
测试https访问的结果
查看证书信息和自建crt信息一致
查看证书信息和自建crt信息一致
https访问的最终结果
https访问的最终结果

(CentOS)Centos6.3下搭建sendmail/dovecot邮局服务器

接上面博文继续吹~~~~

1.MX解析不说了。

2.安装配置dovecot也不多说了。

3.安装配置sendmail软件  yum install -y sendmail sendmail-cf m4

切换系统MTA服务

[root@localhost postfix]# service postfix stop
关闭 postfix:                                             [确定]
[root@localhost postfix]# alternatives –config mta
共有 2 个程序提供“mta”。
  选择    命令
———————————————–
 + 1           /usr/sbin/sendmail.postfix
*  2           /usr/sbin/sendmail.sendmail
按 Enter 来保存当前选择[+],或键入选择号码:2
[root@localhost postfix]#

配置sendmail—–1

[root@localhost mail]# cat sendmail.mc |grep -v ‘^dnl ‘|awk -F: ‘{ print $1 }’
divert(-1)dnl
include(`/usr/share/sendmail-cf/m4/cf.m4′)dnl
VERSIONID(`setup for linux’)dnl
OSTYPE(`linux’)dnl
define(`confDEF_USER_ID’, “8
define(`confTO_CONNECT’, `1m’)dnl
define(`confTRY_NULL_MX_LIST’, `True’)dnl
define(`confDONT_PROBE_INTERFACES’, `True’)dnl
define(`PROCMAIL_MAILER_PATH’, `/usr/bin/procmail’)dnl
define(`ALIAS_FILE’, `/etc/aliases’)dnl
define(`STATUS_FILE’, `/var/log/mail/statistics’)dnl
define(`UUCP_MAILER_MAX’, `2000000′)dnl
define(`confUSERDB_SPEC’, `/etc/mail/userdb.db’)dnl
define(`confPRIVACY_FLAGS’, `authwarnings,novrfy,noexpn,restrictqrun’)dnl
define(`confAUTH_OPTIONS’, `A’)dnl
TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN’)dnl   (大约在53行,去掉注释)
define(`confAUTH_MECHANISMS’, `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN’)dnl (去掉注释)
define(`confTO_IDENT’, `0′)dnl
FEATURE(`no_default_msa’, `dnl’)dnl
FEATURE(`smrsh’, `/usr/sbin/smrsh’)dnl
FEATURE(`mailertable’, `hash -o /etc/mail/mailertable.db’)dnl
FEATURE(`virtusertable’, `hash -o /etc/mail/virtusertable.db’)dnl
FEATURE(redirect)dnl
FEATURE(always_add_domain)dnl
FEATURE(use_cw_file)dnl
FEATURE(use_ct_file)dnl
FEATURE(local_procmail, `’, `procmail -t -Y -a $h -d $u’)dnl
FEATURE(`access_db’, `hash -T<TMPF> -o /etc/mail/access.db’)dnl
FEATURE(`blacklist_recipients’)dnl
EXPOSED_USER(`root’)dnl
DAEMON_OPTIONS(`Port=smtp,Addr=0.0.0.0, Name=MTA’)dnl 原为 Addr=127.0.0.1 修改为 :Addr=0.0.0.0
FEATURE(`accept_unresolvable_domains’)dnl
LOCAL_DOMAIN(`localhost.localdomain’)dnl
MAILER(smtp)dnl
MAILER(procmail)dnl
[root@localhost mail]#

配置sendmail—-2

[root@localhost mail]# cat access |grep -v ^#
Connect:localhost.localdomain           RELAY
Connect:localhost                       RELAY
Connect:127.0.0.1                       RELAY
Connect:abc.com                         RELAY  //#添加转发中继或许允许那些源可以使用该邮局服务器
[root@localhost mail]#

配置sendmail—-3(将mc文件转换为cf格式和生成access.db的数据库文件)

[root@localhost mail]# m4 sendmail.mc>sendmail.cf /*将mc文件转换为cf
[root@localhost mail]# makemap hash access.db < access /*将access生成access.db的数据库文件
[root@localhost mail]# service sendmail start
正在启动 sendmail:                                        [确定]
启动 sm-client:                                           [确定]
[root@localhost mail]#

创建用户进行测试。这里上面创建了test0 和test1用户了。不再新建用户了。使用不同的邮件客户端(thunderbird)进行测试

测试
测试

(CentOS)Centos6.3下搭建postfix/dovecot服务

当作记录,纯的~~~mail邮局系统的MX记录这里就不再多说明了。mx记录很重要~~~直接看下面配置

1.安装和配置dovecot软件 yum install -y dovecot

[root@localhost conf.d]# nslookup
> set type=mx
> abc.com
Server:         192.168.2.115
Address:        192.168.2.115#53
abc.com mail exchanger = 5 mail.abc.com.
> exit
[root@localhost conf.d]# dovecot -n
# 2.0.9: /etc/dovecot/dovecot.conf
# OS: Linux 2.6.32-279.el6.x86_64 x86_64 CentOS release 6.3 (Final)
disable_plaintext_auth = no /*配置文件在/etc/dovecot/conf.d/10-auth.conf
login_trusted_networks = 0.0.0.0/0
mail_location = mbox:~/mail:INBOX=/var/mail/%u /*配置文件在/etc/dovecot/conf.d/10-mail.conf
mbox_write_locks = fcntl /*配置文件在/etc/dovecot/conf.d/10-mail.conf
passdb {
  driver = pam
}
ssl_cert = </etc/pki/dovecot/certs/dovecot.pem
ssl_key = </etc/pki/dovecot/private/dovecot.pem
userdb {
  driver = passwd
} /*其余配置文件在/etc/dovecot/dovecot.conf
[root@localhost conf.d]#

2.安装和配置postfix软件 yum install -y postfix (Note:postfix配置大部分在/etc/postfix/main.cf下,这里也只需配置该文件即可,根据下面对应修改就好。中英文对译,不是很难,〒_〒)

[root@localhost conf.d]# postconf -n
alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
command_directory = /usr/sbin
config_directory = /etc/postfix
daemon_directory = /usr/libexec/postfix
data_directory = /var/lib/postfix
debug_peer_level = 2
html_directory = no
inet_interfaces = all
inet_protocols = all
mail_owner = postfix
mailq_path = /usr/bin/mailq.postfix
manpage_directory = /usr/share/man
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain, mail.$mydomain, pop3.$mydomain, smtp.$mydomain, www.$mydomain
mydomain = abc.com
myhostname = mail.abc.com
mynetworks = 192.168.2.0/24, 192.168.8.0/24, 127.0.0.0/8
mynetworks_style = subnet
myorigin = $mydomain
newaliases_path = /usr/bin/newaliases.postfix
queue_directory = /var/spool/postfix
readme_directory = /usr/share/doc/postfix-2.6.6/README_FILES
relay_domains = $mydestination
sample_directory = /usr/share/doc/postfix-2.6.6/samples
sendmail_path = /usr/sbin/sendmail.postfix
setgid_group = postdrop
unknown_local_recipient_reject_code = 550
[root@localhost conf.d]# cd ..

3.创建用户进行测试 test0和test1 不多说了。使用fixmail进行测试。

客户端发送邮件测试
客户端发送邮件测试