跳到内容

最新文章

应对网络变化,加快WordPress载入速度

最近由于众所周知的原因,Google访问出现问题,一部分用户可能发现WordPress似乎跟着躺枪了,本人也是其中的一员。

使用Chrome浏览器按F12调出开发工具,切换到“Network”页面,点击“Timeline”列,切换成“Duration”,这样可以查看网页元素载入时间,如图:

googlefonts

可以看到有个fonts.proxy.ustclug.org的文件载入时间足足有一分钟,而这个文件恰好又是在<head>引用的,这就导致页面打开时长时间无显示,点击文件链接可以看更详细的信息,如图:

googlefonts2

看来应该是一个字体文件,不过本博客好像没有使用这个“open sans”字体,在主题里面找了半天也没有找到是什么地方载入了这个文件,就直接用命令行查找了,命令如下:

#先切换到wordpress目录底下
grep -Rn 'fonts.proxy.ustclug.org' *

googlefonts4

然后就列出了两个文件,仔细对比一下链接就确定了是下面这个文件:
/wp-includes/script-loader.php(WordPress版本3.9)

打开查找“fonts.proxy.ustclug.org”就找到了一大段程序,如图:

googlefonts3

其实有个简单的修改方法,把圈里的on改成off就行了。

另外,如果你用了别的主题,可能在上面用命令的时候会有很多结果,请视实际情况进行更改。

查看内存/CPU使用

最近发现博客变得好慢了,看内存,512MB的小内存吃的差不多了,就想看一下是哪些进程把内存用了。

#查看CPU使用:

top
#然后按大写P按照CPU使用率排序

#或者

ps -aux | sort -k3nr | head -n 10 #显示前10个CPU使用最多的进程

#查看内存使用:

top
#然后按大写M按照内存使用率排序

#或者

ps -aux | sort -k4nr | head -n 10 #显示前10个内存使用最多的进程

发现是web服务吃内存了,果断把一个测试用的虚拟主机停了,然后重启了nginx、PHP和MySQL.

然后感觉整个人都变精神了 :smilies24:

解决PHPMyadmin提示:无法载入mcrypt模块

在Linux的发行版CentOS 6.3 系统下,LAMP(Linux+Apache+Mysql+php)环境搭建好后发现PHPMyadmin提示“无法载入mcrypt模块”的错误,尝试使用yum安装提示找不到模块。如下为执行过程:

yum install php-mcrypt
Setting up Install Process
No package php-mcrypt available.
Error: Nothing to do

原来CentOS官方默认不对mcrypt模块进行支持,所以使用Fedora的扩展库,EPEL (Extra Packages for Enterprise Linux)来安装。RHEL是Redhat的企业版,Fedora是Redhat的桌面版,CentOS是拿Redhat的源码由社区自己编译的免费版,所以Cent是可以使用Fedora的软件的。

打开网址:http://mirrors.sohu.com/fedora-epel/6/i386/,使用 Ctrl+F 搜索关键词“epel-release”找到当前最新的扩展包发现最新版本为:epel-release-6-8.noarch.rpm,然后执行命令:

rpm -ivh http://mirrors.sohu.com/fedora-epel/6/i386/epel-release-6-8.noarch.rpm

清除原有的yum信息

yum clean all

查看是否已经有了EPEL(Extra Packages for Enterprise Linux)扩展包,执行命令:

yum repolist|grep epel

输出下面类似的结果就为添加成功:

epel           Extra Packages for Enterprise Linux 6 - x86_64        8,986+1,907

执行命令,安装mcrypt扩展包:

yum install php-mcrypt

重启apache是扩展生效,执行命令:

service httpd restart

然后我这台机器的情况不太一样,安装的是nginx,是还有错误提示,

查看phpinfo,发现已经载入了/etc/php.d/mcrypt.ini,
而/etc/php.d/mcrypt.ini中没有指定路径,仅指定了extension=”/mcrypt.so”,
可能因为mcrypt.so是自己安装的所以路径不对,
用下面的命令:

find -name mcrypt.so

找到正确的路径在/usr/lib64/php/modules/mcrypt.so,
修改/etc/php.d/mcrypt.ini中的路径extension=”/usr/lib64/php/modules/mcrypt.so”
重启php,重启nginx。

EOF

Cannot open /var/log/sa/sa**: No such file or directory

偶尔在主机上鼓捣sendmail的时候,发现rot用户有邮件,都是本地发的,有如下的错误内容:

Cannot open /var/log/sa/sa**: No such file or directory

**一般是当天的日期,每天都有很多,导致/var/spool/mail/root文件不断增大,虽然目前只有3M多,但以后时间久了谁知到呢。

解决方法其实很简单,看一下/var/log下面是不是有sa目录,没有的话建一个就行了:

mkdir /var/log/sa
chmod 755 /var/log/sa

这样就不会再给root发送错误提示邮件了,但是会在/var/log/sa下面生成二进制日志文件-_-!
不过这些都是“有价值”的日志了。

其实根本原因是有cron任务在收集系统日志,查看任务:

cat /etc/cron.d/sysstat

显示为:

# Run system activity accounting tool every 10 minutes
*/10 * * * * root /usr/lib64/sa/sa1 1 1
# 0 * * * * root /usr/lib64/sa/sa1 600 6 &
# Generate a daily summary of process accounting at 23:53
53 23 * * * root /usr/lib64/sa/sa2 -A

不想有错误通知邮件和“有价值”的日志,把内容清掉就行了。

CentOS配置本地DVD源配置Iometer测试环境

实际操作经常遇见没有网络的的情况,这时候安装软件就需要使用光盘了。

光盘挂载操作就不说了,

禁用yum网络更新,备份yum网络更新配置文件:

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak

配置本地yum源:

vim /etc/yum.repos.d/CentOS-Media.repo

[c6-media]
name=CentOS-$releasever- Media
baseurl=file:///media/CentOS/
file:///media/cdrom/
file:///media/cdrecorder/
gpgcheck=1
enabled=0

修改为

[c6-media]
name=CentOS-$releasever- Media
baseurl=file:///media/CentOS_6.0_Final/
gpgcheck=1
enabled=1

其中baseurl修改为DVD的挂载目录,enabled=1开启本地更新模式。

清除原有的yum信息

yum clean all

检查DVD软件列表

yum list

然后运行Iometer的dynamo文件,在64系统里执行32位程序如果出现:

/lib/ld-linux.so.2: bad ELF interpreter: No such file or directory

安装下glic即可

yum install glibc.i686

然后又出现新的错误:

./dynamo: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory

安装下c++库即可

yum install libstdc++.so.6

如果在运行yum命令时加了-y参数导致有个key没装上出现下面的错误:

yum install -y libstdc++.so.6
warning: rpmts_HdrFromFdno: Header V3 RSA/SHA256 Signature, key ID c105b9de: NOKEY
Public key for libstdc++-4.4.4-13.el6.i686.rpm is not installed

在命令后加上–nogpgcheck参数即可:

yum install libstdc++.so.6 --nogpgcheck

如果出现下面的错误,确认运行iometer的windows机器和运行dynamo的linux机器是否可以互相ping通:

*** If dynamo and iometer hangs here, please make sure
*** you use a correct -m <manager_computer_name> that
*** can ping from iometer machine. use IP if need.

如果可以ping通就关闭linux防火墙:

service iptables stop

EOF