关于安装在阿里云上的wordpress MySQL进程总是被kill掉

查询mariadb.log,mariadb崩掉时的日志如下

170217 23:19:26 mysqld_safe Number of processes running now: 0
170217 23:19:26 mysqld_safe mysqld restarted
170217 23:19:37 [Note] /usr/libexec/mysqld (mysqld 5.5.52-MariaDB) starting as process xxx ...
170217 23:19:40 InnoDB: The InnoDB memory heap is disabled
170217 23:19:40 InnoDB: Mutexes and rw_locks use GCC atomic builtins
170217 23:19:40 InnoDB: Compressed tables use zlib 1.2.7
170217 23:19:40 InnoDB: Using Linux native AIO
170217 23:19:40 InnoDB: Initializing buffer pool, size = 128.0M
InnoDB: mmap(xxx bytes) failed; errno 12
170217 23:19:40 InnoDB: Completed initialization of buffer pool
170217 23:19:40 InnoDB: Fatal error: cannot allocate memory for the buffer pool
170217 23:19:40 [ERROR] Plugin 'InnoDB' init function returned error.
170217 23:19:40 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
170217 23:19:41 [Note] Plugin 'FEEDBACK' is disabled.
170217 23:19:41 [ERROR] Unknown/unsupported storage engine: InnoDB
170217 23:19:41 [ERROR] Aborting

几经Google之后,找到两个解决方法:加内存和调低Innodb_buffer_pool_size

没钱加物理内存,就加swap吧:

1.创建要作为swap分区的文件:增加1GB大小的交换分区,则命令写法如下,其中的count等于想要的块的数量(bs*count=文件大小)。

dd if=/dev/zero of=/root/swapfile bs=1M count=1024

2.格式化为交换分区文件:

mkswap /root/swapfile #建立swap的文件系统

3.启用交换分区文件:

swapon /root/swapfile #启用swap文件

4.使系统开机时自启用,在文件/etc/fstab中添加一行:

/root/swapfile swap swap defaults 0 0

参考:

LINUX新建和增加SWAP分区:http://smilejay.com/2012/09/new-or-add-swap/

一些关于swap的指令:swapon、swapoff、free

调低Innodb_buffer_pool_size:

innodb_buffer_pool_size参数用来设置Innodb最主要的Buffer(Innodb_Buffer_Pool)的大小,也就是缓存用户表及索引数据的最主要缓存空间,对Innodb整体性能影响也最大。官方手册建议在整个系统 物理内存的50%~80%之间。

在cent os 7系统下,在/usr/share/mysql目录下可以查看到mariadb给出的一些my-xxx.cnf实例文件,按照自己的内存选择对应的文件,我选的是my-huge.cnf,在[mysqld]下查询到如下内容

# You can set .._buffer_pool_size up to 50 - 80 %
# of RAM but beware of setting memory usage too high
#innodb_buffer_pool_size = 384M

将innodb_buffer_pool_size = 384M粘贴至/etc/my.cnf.d/server.cnf文件的对应位置即可,记得去掉#

参考:

MySQL Crash with Fatal error: cannot allocate memory for the buffer pool:http://www.webtrafficexchange.com/solved-mysql-crash-fatal-error-cannot-allocate-memory-buffer-pool

其他参考:

Mysql日志报The InnoDB memory heap is disabled解决办法:http://blog.sina.com.cn/s/blog_a55699a601019t5d.html

简单粗暴解决,过程仅供参考。

chromebook修改host文件

参考:

Chromebook修改hosts简易教程:http://jieyujing.blogspot.com/2013/05/chromebookhosts.html

【吧主教程】chromebook hosts 替换教程 ~:http://tieba.baidu.com/p/4196419557?see_lz=1

host文件下载:https://laod.cn/hosts

CentOS 7 yum方式配置LAMP环境

1、安装Apache

yum install httpd
nano /etc/httpd/conf/httpd.conf

允许htacess重写:找到全部的AllowOverride none 修改为AllowOverride All

允许所有请求访问资源:把Require all denied 修改为Require all granted

systemctl start httpd.service //启动
systemctl enable httpd.service //设置开机启动
systemctl restart httpd.service //重启
systemctl status httpd.service //查看状态

另外,还需要配置一下防火墙,打开80和443端口

安装firewall

yum -y install firewalld firewall-config
systemctl start firewalld.service
systemctl enable firewalld.service

配置防火墙

firewall-cmd --permanent --zone=public --add-service=http 
firewall-cmd --permanent --zone=public --add-service=https
firewall-cmd --reload

2、安装PHP

yum install php php-fpm php-mysql php-gd php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-snmp php-soap curl curl-devel -y
systemctl start php-fpm.service
systemctl enable php-fpm.service
systemctl restart httpd
nano /var/www/html/test.php //测试

3、安装Mysql

yum install mariadb mariadb-server -y
systemctl start mariadb-server
systemctl enable mariadb-server
systemctl restart httpd
mysql_secure_installation //设置root密码等
mysql -uroot -p123456 //测试登录

4、安装phpMyAdmin

如果无法直接yum,需要先安装EPEL源

yum install epel-release
yum install phpmyadmin
nano /etc/httpd/conf.d/phpMyAdmin.conf

在<Directory /usr/share/phpMyAdmin/>中,把Require ip 127.0.0.1和Require ip ::1两个回环地址#掉,增加一句Require all granted

systemctl restart httpd

参考:

什么值得买逛丢等爆料网站 淘宝返利/淘点金链接自动转换 不靠谱的教程(雾)

填坑!

本教程主要针对想做类似什么值得买、逛丢、发现值得买等特价爆料导购网站的朋友。

我已经不知道该写什么标题了,如果你真看不懂后面的文,还是放弃做导购网站的想法吧。

继续阅读

ul居中方法

横向列表的居中,自己搜了半天,只觉得越搜脑子越乱,后来试了试传统的text-align:center方法,居然成功了。不过,想想这也真不算啥技术,随手记一下得了。

<ul style="text-align: center;">
	<li style="display: inline;">aaaaaaa</li>
	<li style="display: inline;">bbbbbbb</li>
	<li style="display: inline;">ccccccc</li>
</ul>

国产的美工浏览器

noname

最近写了点小东西,需要做IE8的兼容测试。我忽然好奇那些国产浏览器目前都更新到什么地步了,于是又在另一台电脑上把它们都装了上。

果然不出所料,虽说大部分都用上了webkit内核,可还是有IE8一辈子不动摇的,比如QQ浏览器,在一堆国产的美工浏览器里UI简直美到爆,可是检查一下navigator.useragent,居然是主力IE8,纯种单核。

记得QQ以前明明是双核,我真是搞不懂——虽说咱手里也没有最新分析数据,大公司要赚钱,可是标准也要推广啊。当初,咱原本觉得这些国产美工浏览器都用上了webkit,虽说版本都会低那么几版,但好歹也算是为了HTML5标准在天朝推广做出了一些贡献,无论如何总比IE8强吧。历史的潮流好不容易干掉一个IE6,这又冒出来一个IE8,还有这么一堆顶风上的拥趸者。

做前端简直要疯了……

QQ20150524212203

做了两天,终于把这种自适应的菜单做出来了。

很久以前就想着自己要学着弄一个自适应菜单(responsive navbar),试了几次才知道这东西真不好做,尤其还套在wordpress里面的……原本是自己写了一个,以screen width为条件做了相应的隐藏,然后用jquery的slideToggle()方法做一个动画,实际操作起来才发现,slideToggle()会内联一个display的样式,把screen width的样式表覆盖掉,然后你就会动画在小尺寸屏上明明很正常,把屏幕一拉大,忽然发现网页上的元素display:hidden了。

最后没办法,想找个范本来学一学,搜到了这么一个教程 How to Create a Responsive Navigation 才把这个东西搞定,里面的一段jquery代码,应该是根据屏幕尺寸修改元素display属性值的,我想自己写可是半天都没写成功,人家写的代码我又读不懂,感觉稍稍复杂一点的js代码我都不懂……

天啊,这两天整天在电脑上各种google,google的什么我自己都不知道,需要查的东西实在太多了,索性把浏览器改成启动时“从上次停下的地方继续”。jquery至今还是学的一知半解啊,经常看着php就忘了js怎么写啊,我指的是最基础的语法啊……

鉴于自己一年前连<img>代码都记不住,我对自己学js还是应该持以乐观的态度,让时光慢慢拖好了。最近还是多找点材料看看,虽说前端开发这一行是自己选的,实际学起来困难真的太多了。

(对了,顶部的nav,ul li又没居中……还得继续搞,天啊)

关于max-width和min-width的闲话

看了看这个HTML5blank默认的媒体查询,写的都是 @media only screen and (min-width: xxx) ,想想倒也正常,像bootstrap的自适应媒体查询早就是min-width了。现在大环境改变,上网端的主力军早已经变成了手机+pad,网站这个东西自然也要“移动设备优先”,好多网站曾经还是桌面版+自适应移动端(桌面版网页+各种max-width的媒体查询),现在已经变成移动端+自适应桌面版,媒体查询自然也要倒过来。

不得不感慨世界变化快啊。

正在做新的主题

这个屎绿色的主题我已经用了将近一年了,那还是我用twelve eleven改的。自从打算走前端开发这条路以后,我对“穷折腾”网站这种事情显然理性了很多,别人的主题我已经很少用了,因为自己毕竟有能力写,对非定制的东西左右总有不满意。可是自己又时常抽不出时间。

至于水平嘛,这一年好像也没啥大长进。wordpress和php这方面,虽说现在会查codex了,无非就是调用一些函数,英文看的太懵大不了去google一些中文的资料。不过我对前端开发还是太生疏了,经常写着写着php就忘记js怎样声明变量,或者js写多了就忘记php如何声明数组,还得时常翻书看看,或者有时候一些基本的css属性我还得边用边在w3school查,毕竟我没有在计算机系系统学习的经历,好多基本功不扎实,总觉得自己还是那么菜。

其实很早就想自己亲手写个主题,这一阵子被重装机兵的同人游戏占去了太多时间,但我发现我对做游戏实在是没啥兴趣,以至于现在不得不决定把那游戏“烂尾”地收个尾,姑且就扔掉吧。眼看着就要工作了,还有更重要的事情做。

QQ20150514234601