为Nginx开启SSI模块以支持SHTML解析

SSI 是 Server Side Include 的首字母缩略词。包含有嵌入式服务器方包含命令的 HTML 文本。在被传送给浏览器之前,服务器会对 SHTML 文档进行完全地读取、分析以及修改。

在 Nginx 中,开启 SSI 支持非常简单,通过向 nginx.conf 中添加几行设置命令即可实现。

将下面的3行代码添加到 nginx.conf 文件的 http{} 段中,以开启 SSI 模块的支持:

ssi on;
ssi_silent_errors on;
ssi_types text/shtml;

阳光部落原创,更多内容请访问http://www.sunbloger.com/

PHP-FPM启动报“fpm_unix_conf_wp(), line 124”错误解决方法

启动 PHP-FPM 时,如遇到下面这个错误信息:

Starting php_fpm Feb 07 10:52:35.508786 [ERROR] fpm_unix_conf_wp(), line 124: please specify user and group other than root, pool ‘default’

解决方法:

打开 php-fpm.conf 配置文件,找到下面这个部分:

Unix user of processes
<!–     <value name=”user”>nobody</value>   –>
Unix group of processes
<!–     <value name=”group”>nobody</value>   –>

去掉注释,并将user和group改为实际实用的用户和组即可。

修复PHP 5.2.x的Hash漏洞

近来爆发出来的Hash DOS漏洞威力十足,杀伤力很大。随便一台服务器就可以发起DDOS攻击,导致CPU长期占用100%,从而使服务器宕机。下面给出PHP 5.2.x的修复方法:

  • 下载补丁:https://github.com/laruence/laruence.github.com/tree/master/php-5.2-max-input-vars,下载对应的补丁版本;
  • 进入PHP目录,执行patch -p1 < php-5.2.*-max-input-vars.patch,打上补丁;
  • 重新编译安装,makemake install即可。

备注:最新发布的PHP 5.3.9和后续版本已经修复了这一漏洞。

Linux防火墙应用

随着互联网的飞速发展,毫无疑问,互联网上的安全,操作系统平台的安全也逐渐成为人们所关心的问题。而许多网络服务器、工作站所采用的平台为Linux/UNIX平台。Linux平台作为一个安全性、稳定性比较高的操作系统也被应用到了更多领域。本文带领大家探讨了Linux系统管理员应该掌握的20个防火墙应用技巧。

广为人知的iptables命令行

Netfilter作为Linux内置的主机防火墙,它可以使用iptables命令处理IPv4协议,也可以使用ip6tables命令处理IPv6协议。在iptables之前,Linux 2.2中使用ipchains来配置防火墙,Linux 2.0中则使用ipfwadm,它基于BSD的ipfw命令实现。

阅读更多

修改Linux用户使用资源限制ulimit

如果ulimit设置的过小,对于并发量大的网站,可能会出现too many open files的错误。因此需要我们对ulimit设置进行调整,方法如下:

例如apache以www用户身份运行

首先,打开limits.conf文件
vi /etc/security/limits.conf

在末尾加上如下内容:
www soft nofile 32768
www hard nofile 65536

上面两行的含义是:
www – 所指定的用户名
soft – 软限制
hard – 硬限制
nofile – 允许打开的文件数量,后面的数字就是具体的数量。

Apache日志文件每日自动切割的配置方法

打开Apache的httpd.conf文件,分别找到:

错误日志
ErrorLog logs/error_log
修改为
ErrorLog “| /usr/local/apache/bin/rotatelogs /usr/local/apache/logs/error_log_%Y%m%d 86400 480”

访问日志
CustomLog logs/access_log common
修改为
CustomLog “| /usr/local/apache/bin/rotatelogs /usr/local/apache/logs/access_log_%Y%m%d 86400 480” common

定时处理MySQL超时Locked进程的Shell脚本

最近一段时间,我刚刚进入一家新公司,并接手了这里的一个站点,由于这个站点的架构设计不太合理,导致MySQL的压力始终很大,经常出现超时的Locked进程,于是编写了一段Linux的Shell脚本来定时kill掉这些进程。

脚本如下:

#!/bin/bash
mysql_pwd="xxxxxx" #mysql的root密码
mysql_exec="/usr/local/mysql/bin/mysql"
tmp_dir="/tmp"
file_sh="$tmp_dir/mysql_kill_locked.sh"
file_tmp="$tmp_dir/mysql_kill_locked.tmp"
file_log="$tmp_dir/mysql_kill_locked.log" #日志
$mysql_exec -uroot -p$mysql_pwd -e "show processlist" | grep -i "Locked" > $file_tmp
cat $file_tmp >> $file_log
for line in `cat $file_tmp | awk '{print $1}'`
do
echo "$mysql_exec -uroot -p$mysql_pwd -e \"kill $line\"" >> $file_sh
done
chmod +x $file_sh
sh $file_sh #执行临时脚本
> $file_sh #清空临时脚本

最后,将这段脚本加入到crontab,定时执行即可。

阳光部落原创,更多内容请访问 http://www.sunbloger.com/

WordPress多站点模式 在Nginx下的rewrite配置方法

最近在把很多应用从Apache转入Nginx下,遇到最棘手的问题莫过于两个平台下rewrite规则的重新调整,下面就拿WordPress为例,和大家分享一下WordPress在多站点模式下,如何配置Nginx中的rewrite规则。

我们在开启WordPress(版本:3.2.1)多站点模式的过程中,会提示我们将一段rewrite写入.htaccess文件中,如下:

阅读更多