Back to MySQL

不知从什么时候开始,Fedora 和 CentOS 里的 MySQL 都给换成了 MariaDB。我一直搞不懂好端端的 MySQL 为什么还要分出一个 MariaDB,更搞不懂 MariaDB 的优越性在哪里,反正 MySQL 对我来说够用了,倒是 MariaDB 安装和启动时使用了不同于 MySQL 的名称,让我很不习惯。比如 换成了 换成了 幸好,除此之外,一切照旧,用到 MySQL 的 PHP 程序都能继续在 MariaDB 使用,所以我就一直用着 MariaDB。直到今天使用 Magento2,要求 MySQL 5.6 以上版本,而 CentOS 下把 MariaDB 用 yum update 到最新版本,仍是 5.5.40。 于是我被逼着去下载 MySQL 5.6。不用不知道,一用发现 CentOS 下安装 MySQL 超级方便,只要安装好 RPM 包——http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm,就可以恢复使用 执行安装。 早知如此,我真不该碰 MariaDB——这个并没有给我带来实际利益的程序也花了我一天去熟悉。

Change Grub timeout seconds

Changing Grub timeout seconds is not as many people said, by edit /etc/default/grub. At least with Fedora 20, I can proove it is not the right place to make the change. The corresponding file is /boot/grub2/grub.cfg. In the file look for 5 seconds is the default timeout. Change it to any seconds you want it… Continue reading Change Grub timeout seconds

Machine convert xls to csv

Linux is an excellent OS. Today something again proved my choice. I was looking for a solution to convert Excel xls to csv format. This conversion is required by a Magento dataflow project. Magento native dataflow comes with an XML Excel parser. For some reasons, it does not convert my xls files. I think it… Continue reading Machine convert xls to csv

Learned something basic

今天又长知识了。 首先,最简单的,更正了长久以来的想当然,php 下 explode(‘,’, ”) != array(),而是得到长度为 1 的数组,key 是数值 0,value 是空字符串。天哪,我有多少个程序是基于 explode(‘,’, ”) == array() 写下去的,这下影响大了,得好好查一查。 其次,发现一个不晓得是 sshfs 的 bug 还是 gedit 的 bug。复制错误的过程是:用 Nautilus 或 Dolphin 打开 sshfs 挂载的目录,右击创建一个新文件。文件创建是成功的,属性是 774,用 gedit 打开它却无法保存,提示是没有写权限;但用 kwrite 编辑保存一切正常;用 gedit 再编辑 kwrite 编辑过的文件又能保存。或者,在右击创建一个新文件后,执行一次 chmod 774 filename,也能用 gedit 编辑保存了。 再次,发现在 IE6 下,用 javascript 增大元素的尺寸(比如 jQuery widget 化,增加 border,增加 padding,等),会增大父元素的尺寸。哪怕父元素已用… Continue reading Learned something basic

Solve media type differencing after VirtualBox upgrade to 3.2.8

我在 VirtualBox 升级到 3.2.8 以后发现其中的 Windows XP Guest OS 无法启动,其他 Guest OS 正常。Windows XP Guest OS 用到的两个 harddisk 文件也显示 inaccessible,而且也 release 不了它们,强行访问还给一个错误信息。 Medium type of ‘/path/to/harddiskfile’ is differencing but it is not associated with any parent medium in the media registry (‘/path/to/.VirtualBox/VirtualBox.xml’). 我也没怎么上心,觉得是 VirtualBox 升级版中的 bug,指望在后续版本中把它修复。可是好久没见 Oracle 出更新,只好 google 求帮助。 我发现跟我有同样遭遇的人还不少,原因或许是 Host OS 使用了 ext4… Continue reading Solve media type differencing after VirtualBox upgrade to 3.2.8

Ftp user chroot setting on CentOS

在 CentOS 上,怎么把 linux user ftp 登录后限制在它的 home directory?很久以前我设置过一次,知道是很简单的一个设置,今天需要同样的事情再做一次,竟然怎么也想不起来。要命的是,google 了好几个小时都不得要领。 可以说半天时间是浪费掉的。最后当然是重新找到了办法,赶紧记下来: Edit /etc/proftpd.conf, add DefaultRoot ~ 当然前提预装有 proftpd。如果还预装 plesk,则更简单,/etc/proftpd.conf 已含有 DefaultRoot ~ psacln 只要把新建的用户归入 secondary group psacln 即可。

Clean temporary files left by editors

打开文件进行编辑或其他操作后,有时会留下一些临时文件。按理只有非正常中止会留下临时文件,但有时即使正常退出仍在硬盘上留下一堆垃圾,可能某些编辑器有 bug。 不过,清理临时文件也不费力,找准文件名特征可以一次性删除它们。 find /var/www -name “.goutputstream-*” -exec rm -rf {} \; 据说 .goutputstream-* 是 GNOME 拷贝粘帖文件时的临时文件。 find /var/www -name “.tmp*~” -exec rm -rf {} \; .tmp*~ 是 Text Editor 编辑时的临时文件。 保持良好的习惯,不要用 root 身份去执行此类操作,执行前也要再三检查查找起始位置是否正确。

A tool to synchronise Magento database between servers

我时不时需要在测试服务器上加载生产服务器的实时数据,以前都是把数据下载到本地的测试服务器后,手工键入一些命令完成数据加载,每次都要花费几分钟时间。为了避免一再“浪费”这几分钟,我今天一次性投入了几小时完成了一个 php 脚本。虽然这是为 magento 的数据迁移而写的脚本,但我写完一看,用在其他地方也是可以的。 为了安全起见,该脚本是用 php 命令行运行的,所有输出针对 terminal 美化,不是 browser。保存源码为 data_mover.php,同一目录下要有 mysqldump 得到的经 gzip 的 sql 文件,文件名以 FILENAME_PREFIX 开头,以 .sql.gz 结尾。启动时只需键入 /path/to/php -f data_mover.php 即可。 初始化 PDO 对象时,按理只需要 host=localhost,不需要 unix_socket=MYSQL_SOCKET。但奇怪的是,如果通过 apache 调用本程序(虽然不是本程序的初衷,但我希望它在浏览器下也能运行),仅指定 host=localhost 作 PDO __construct() 参数,会产生一个莫名其妙的错误: SQLSTATE[HY000] [2002] Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’ (2) 似乎是 PDO bug。可以通过 host=127.0.0.1 或者追加… Continue reading A tool to synchronise Magento database between servers

How can Magento generate sitemap.xml belongs to root?

今天看到 magento 目录下的 sitemap.xml 的属主和属组分别是 root:root,属性是644,而这一台的 webserver 是以 apache:apache 身份运行的,所以我觉得很奇怪: apache 怎么能建立一个 root:root 的文件? 如果这个文件不是 apache 建的,apache 怎么有权去更新它(最近更新就在今天)? 想了好一会明白过来,sitemap.xml 是 cron job 建的,crontab 这么写 */10 * * * * /usr/bin/php -f /path/to/magento/cron.php 那么 sitemap.xml 归 root:root 所有就不奇怪了。 我想这样写会好些: */10 * * * * sudo -u apache -g apache /usr/bin/php -f /path/to/magento/cron.php 2010年6月29日更新:上行命令不对,设想在 cron job 里以… Continue reading How can Magento generate sitemap.xml belongs to root?

Nautilus mount

Nautilus is quite good, easy to use in regards to its mount feature. It can automatically “mount” Windows Share via smb:// protocol. However, some software, e.g. FileZilla (now 3.2.4.1) can not read from or write to smb:// protocol. A genuine Linux mount is more helpful than Nautilus mount.