Tag: Apache

Apache httpd 设定默认首页

Apache 设定了 DirectoryIndex 后, Apache 会自动开启目录下的相应页面, 例如: DirectoryIndex index.html index.htm index.php 如果没有 DirectoryIndex 设定的页面, 会显示 403 Forbidden 或者显示所有档案。 用 YUM 安装好 httpd 后, 如果网页根目录没有 DirectoryIndex, 默认会出现一个 “Testing 123” 的页面, …

Fail2ban 拦截暴力入侵 WordPress

WordPress 是目前最受欢迎的 CMS, 而针对 WordPress 的攻击也很多, 本文会讲述使用 Fail2ban 拦截对 WordPress 的暴力入侵。 如果未安装 Fail2ban, 先安装 Fail2ban, 可以参考本站另一篇文章: 拦截暴力入侵的 IP — Fail2Ban 安装好 Fail2ban 后, 在 Fail2ban 的 filter 目录建立 wordpress …

Shell Script – 发现 Load Average 高自动执行指令

当系统的 Load Average 很高时, 可能面临当机的风险, 遇到这个问题可以用 Shell Script 定时检查系统的 Load Average, 当发现 Load Average 到达某一个设定好的数值时, 便自动执行一些指令, 例如重启服务, kill process 或向系统管理员发出电邮通知等。 以下 Shell Script 会透过定时读取 /proc/loadavg 的数值, 当发现 Load Average …

Shell Script 检查并自动重启 Apache httpd

如果主机出现问题时, 可能负载过高或者服务当掉, 最理想的做法还是要找出原因, 很多时只要修改一些设定便可以。 早前遇到一位客户, 他安装在 VPS 的 Apache 会无故当掉, 间隔由几小时到一天不等, 检查后 Load Average 一点也不高, 当掉后只要重新启动 Apache 便没问题, 初部估计可能是 mpm_prefork 的设定问题。 由于修改后要观察一段时间, 这段时间 Apache 也可能当掉, 便写了这支 Shell Script, 会自动检查 …

强制 PHP 显示错误讯息

很多主机基于保安理由, 将 PHP 执行时的错误讯息隐藏, 当 PHP 程式执行时遇到错误, 即使是 run time error 这类错误, 都只会显示空白内容。 原因是在 php.ini 设定了这两行: display_errors = Off error_reporting = Off 上面两个设定, 只要其中其中一个设定成 Off, 都不会显示错误讯息, 这样对于程式除错很麻烦, 要暂时显示 PHP …

禁止个别 VirtualHost 或目录使用 PHP mail() 函式

PHP 的 disable_functions 选项可以停用某些特定的 PHP 函式, 主要是基于安全理由, 将一些对系统有威胁的函式停用, 但 disable_functions 必须透过 php.ini 设定, 因为如果可以在 httpd.conf 或 .htaccess 设定, 使用者便很容易将停用的函式开启。 之前遇到一个情况, 要将个别 VirtualHost 的 mail() 函式停用, 但主机内其他 VirtualHost 仍要继续开启 mail()。虽然 …

PHP 5.4 或以上重现 Register Globals

很久以前的 PHP 默认开启 Register Globals 选项, 这样写程式就很方便, 但这个方便也带来安全性问题, 所以后来 PHP 默认会将 Register Globals 关闭, 对于一些要开启 Register Globals 的程式, 在不修改程式码的情况下, 还可以透过修改 php.ini 或 .htaccess 的方法解决。 但在 PHP 5.4 开始, PHP …

Apache Log 储存到 MySQL

Apache 默认会将 Log 记录档储存到文字档,一般会在 logs/ 目录,或者 /var/log/httpd/ 目录。将 Apache Log 储存到 MySQL 除了可以方便过滤记录档内资讯外,也可以实现多个 Apache Log 集中管理。 以前试过自己写 Shell Script 将 Log 插入 MySQL,但原来已经有 Apache Module 可以做这件事,十分方便。以下是 Apache 设定将 Log …