wordpress mysql数据库挂件的解决办法

近期我的博客迁到了vultr vps上。开始内存为1G,搭建好环境,安装好wordpress。使用17ce测试一下访问速度,这时发现自己博客已经挂了。提示:mysql无法连接。重启mysql恢复正常。就在那几天里,每天时不时的出现这种情况。怎么原因内?百度一下,发现是vps内存太小。所以升级内存到2G。再使用17ce测试时,没有出现数据库挂掉问题。几个月过去了,又一次出现这种情况。这时在网上找到了解决办法。原来vultr vps的磁盘没有swap分区。
解决办法:
1、更改mysql配置文件参数
#vim /etc/my.cnf
在mysqld下加上
innodb_buffer_pool_size = 64M

2、添加swap分区的步骤:
执行:
dd if=/dev/zero of=/swapfile bs=1M count=1024
mkswap /swapfile
swapon /swapfile
添加这行内容 /swapfile swap swap defaults 0 0 到 /etc/fstab

重启服务器

参考网址:http://stackoverflow.com/questions/10284532/amazon-ec2-mysql-aborting-start-because-innodb-mmap-x-bytes-failed-errno-12

发表在 学习笔记 | 留下评论

PHP下划线的字符串与驼峰命名转换

//将下划线字符串转换为驼峰命名
function string2camel($string) {
return preg_replace_callback(‘/_[a-z]/’, function ($mathes){ return trim(strtoupper($mathes[0]), ‘_’);}, $string);
}
//将驼峰命名转换为下划线字符串
function camel2string($string) {
return ltrim(preg_replace_callback(‘/[A-Z]/’, function ($mathes) { return ‘_’ . strtolower($mathes[0]); }, $string), ‘_’);
}

发表在 学习笔记 | 留下评论

PHP使用curl模拟访问伪造来源的ip和url

$curlObj = curl_init();

curl_setopt($curlObj, CURLOPT_URL, “http://localhost/process.php”);
//构造IP
curl_setopt($curlObj, CURLOPT_HTTPHEADER, array(‘X-FORWARDED-FOR:8.8.8.8’, ‘CLIENT-IP:8.8.8.8’));
//构造来路
curl_setopt($curlObj, CURLOPT_REFERER, “http://www.doitphp.com/ “);
curl_setopt($curlObj, CURLOPT_HEADER, 1);
$out = curl_exec($curlObj);

curl_close($curlObj);

发表在 学习笔记 | 留下评论

PHP函数:ignore_user_abort

ignore_user_abort($value);

设置客户端断开连接时是否中断脚本的执行。

PHP以命令行脚本执行时,当脚本终端结束,脚本不会被立即中止,除非设置 value 为 TRUE,否则脚本输出任意字符时会被中止。

发表在 学习笔记 | 留下评论

CentOS6.5更换Yum源

#cd /etc/yum.repos.d
#mv CentOS-Base.repo CentOS-Base.repo.backup
#wget http://mirrors.163.com/.help/CentOS6-Base-163.repo
#mv CentOS6-Base-163.repo CentOS-Base.repo
#yum clean all
#yum update

发表在 学习笔记 | 留下评论

IE9.0的javascript兼容问题

一个项目,使用了fancybox。在Firefox, chrome这些浏览器上一切正常,IE6.0 ,IE7.0, IE8.0, IE11.0均运行正常,偏偏在IE9.0时无法使用(能弹出窗口,可窗口内该显示的内容则没有),在代码放在本地使用apache作为webserver,本地测试没有问题。放在线上服务器(nginx作为webserver),IE9.0显示不正常。使用console.log()进行调试,也没有找到原因。结果又换成colorbox,也是同样的问题。折腾了半天,最后通过google一下才知道,IE9.0的JS兼容有问题。所以采取了如下办法:
在hmtl的head间加入下面代码,强行在IE9.0上使用IE8.0的标准。

发表在 学习笔记 | 留下评论

rsync+inotify实时同步

技术参考:http://lxw66.blog.51cto.com/5547576/1331048

三台服务器均开启rsyncd服务,其中一台安装inotify tool,这台服务器作为服务端,负责文件推送。
服务端的脚本内容如下:

#!/bin/bash

/usr/local/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f' -e modify,delete,create,attrib /www/ | while read file
do
/usr/local/rsync/bin/rsync -azP --delete --password-file=/root/hadult.pass /www/ tommy@10.50.201.81::demo
/usr/local/rsync/bin/rsync -azP --delete --password-file=/root/hadult.pass /www/ tommy@10.50.201.88::demo
done

/etc/rc.local 文件中添加
/root/sync.sh

重启服务端,然后进行如下测试。
在服务端/www目录中添加文件,更改文件属性,删除文件,这些操作在两台客户端服务器均实现了同步。

测试成功!

发表在 学习笔记 | 留下评论

rsync常用命令范例

rsync进行数据传输分为push, pull两个模式。
下面发两个范例。
1、push
rsync -azP –delete –password-file=rsyncd.pass –exclude-from=not_sync_list.txt /local_path username@xx.xx.xx.xx::modulename

2、pull
rsync -azP –password-file=rsyncd.pass username@xx.xx.xx.xx::modulename /local_path

预知详细的参数及用途,请点击:rsync同步的艺术

发表在 学习笔记 | 留下评论

session save_path使用子目录

session.save_path使用一个目录的弊端是: session量比较大并且所有的session文件都在同一个子目录下的话,那么可能会由此带来很严重的负载问题,甚至导致网站无法使用。在linux共目录下,所支持的子目录及文件总数为三万三千多,当达到一万时,磁盘的IO效率就变得较低了。所以使用session.save_path 分级子目录是一个不错的选择。
具体设置方法:
php源码目录ext/session目录中,mod_file.sh是生成子目录的shell脚本。假设存放session的总目录为 /tmp/php_session。使用3个层级的子目录 每个子目录中又有32个子目录。
则执行命令如下:
#sh mod_file.sh /tmp/php_session 3 32

执行完上面命令后,session的存放目录刚创建完毕,修改目录权限
#chmod 0777 -R /tmp/php_session

更改php.ini将session.save_path设置为:
session.save_path="3;/tmp/php_session"

重启php-fpm或apache(webserver software). OVER

具体资料可参考php官方资料:
http://www.php.net/manual/en/session.configuration.php#ini.session.save-path

注:session存放目录使用子目录的缺点是:过期的session不会自动清除,需定期清除。
如:来个shell脚本删除45分种之前的session
#find /tmp/php_session -mmin +45 | xargs rm -fr

当然也可以放在crontab里,定期执行。

发表在 学习笔记 | 标签为 , | 留下评论

CentOS上yum 安装memcached


#yum -y install memcached

配置文件:
/etc/sysconifg/memcached

参数解释:

-d 以守护程序(daemon)方式运行 memcached;
-m 设置 memcached 可以使用的内存大小,单位为 M;
-l 设置监听的 IP 地址,如果是本机的话,通常可以不设置此参数;
-p 设置监听的端口,默认为 11211,所以也可以不设置此参数;
-u 指定用户,如果当前为 root 的话,需要使用此参数指定用户。

操作命令:

service memcached start
service memcached stop
service memcached restart

发表在 学习笔记 | 标签为 , | 留下评论