Tag: RHEL & CentOS
如果主机出现问题时, 可能负载过高或者服务当掉, 最理想的做法还是要找出原因, 很多时只要修改一些设定便可以。 早前遇到一位客户, 他安装在 VPS 的 Apache 会无故当掉, 间隔由几小时到一天不等, 检查后 Load Average 一点也不高, 当掉后只要重新启动 Apache 便没问题, 初部估计可能是 mpm_prefork 的设定问题。 由于修改后要观察一段时间, 这段时间 Apache 也可能当掉, 便写了这支 Shell Script, 会自动检查 …
用 Liunx 的 rm 删除档案时, 如果档案的容量很细小, 通常看不到变化; 但如果档案的容量很大, 用 df 指令查看硬盘空间是没有释放, 但用 du 指令检视目录的使用量, 则没有计算已删除档案。 出现这个问题的原因, 是已删除的档案被其他 process 开启, 用 lsof 指令可以检视正在开启已删除档案的 process: # lsof | grep deleted 找到开启已删除档案的 …
Shell Script 要读取网页内容,并将输出结果储存到变量,可以用一些在 CLI 下执行的文字浏览器,由于很多系统都有安装 wget 及 curl, 以下文章会介绍使用 wget 及 curl 这两种方法完成。 如果系统并未安装 wget 及 curl,可以用以下指令安装,如果已经安装了,则不用安装: RHEL, CentOS # yum install curl wget Debian, Ubuntu $ sudo apt-get …
有时一些内部使用的加密 SSL 网页使用自签凭证, 如果用 curl 撷取这些使用自签凭证的 SSL 网页内容, 会出现以下错误: $ curl https://localhost/ curl: (60) Peer’s certificate issuer has been marked as not trusted by the user. More details here: …
在 Shell Script 要检查某一个 Process 是否正在执行, 可以用 pgrep 完成。pgrep 可以根据 Process 名称, 返回所有名称相符及正在执行的 process 的 process id 的工具, 例如要查询 MySQL 的 process id 可以用以下指令: $ pgrep mysql 1784 2144 …
Fail2ban 是十分好用的防御暴力破解攻击的工具, 将 Fail2ban 封锁的 IP 解除封锁, 只要使用 Fail2ban 内建的 fail2ban-client 即可完成。 首先用 iptables 检视被封锁的 ip: # iptables -nvL 然后要知道被封锁的 IP 被 Fail2ban 那一个 Jail 封锁, 因为主机内可以设定了多个 Fail2ban jail, …
在 Unix Like 环境下用 crontab 排程执行指令或 Shell Script 时, 很多时最后都会加上 “> /dev/null 2>&1”, 例如: * * * * * /path/to/my-script.sh > /dev/null 2>&1 以下是对 “> /dev/null 2>&1” 分拆的解释: >: …
PHP 的 disable_functions 选项可以停用某些特定的 PHP 函式, 主要是基于安全理由, 将一些对系统有威胁的函式停用, 但 disable_functions 必须透过 php.ini 设定, 因为如果可以在 httpd.conf 或 .htaccess 设定, 使用者便很容易将停用的函式开启。 之前遇到一个情况, 要将个别 VirtualHost 的 mail() 函式停用, 但主机内其他 VirtualHost 仍要继续开启 mail()。虽然 …
在 Linux 安装 Apache 及 PHP 后, 可以按需要设定个别 VirtualHost 或目录停用 VirtualHost, 例如一个只用作储存上载图片的目录, 不需要执行 PHP 的权限, 以下的设定方法。 VirtualHost 停用 PHP: 首先开启储存 VirtualHost 的档案, RHEL 及 CentOS 是 /etc/httpd/conf/httpd.conf, 而 Debian …
libmysql 是 PHP 沿用已久的 MySQL driver, 而在 PHP 5.3 开始, PHP 内建了 PHP 专用连接 MySQL 的 Driver — mysqlnd, 而从 PHP 5.4 之后的版本, mysqlnd 更被 PHP 作为默认安装选项。 如果在 RHEL …