Day: January 27, 2014

  • Aptana Studio 3.4.2 crashes on JDK in Fedora 20

    最近重拾 Aptana Studio,下载了最新版 3.4.2,可一编辑代码就无故崩溃。Fedora 20 提示 JDK crashed。

    我一开始没注意到我用的是 OpenJDK,Aptana 说不支持 OpenJDK,赶紧去下 Oracle/Sun JDK,还换了两次版本,1.7.0_51、1.6.0_45 都试过,都不成。

    搜了一下此类问题,给我感觉 2010 年以来在各版本的 Aptana Studio 和 JDK 时有发生,坏也不知道什么原因,好也不知道什么原因。大概我之前人品好,没碰到此类问题。

    换用 Netbeans,当前环境没有问题,但实在不熟悉 Netbeans,仍纠结着想用 Aptana Studio。想了个办法,切换回 Oracle/Sun JDK 1.7.0_51,安装 Eclipse 4.3.1,再装 Aptana Studio plugin for Eclipse,嘿,不再无故崩溃了。

    Eclipse with Aptana Studio plugin
    Eclipse with Aptana Studio plugin
  • Change MySQL socket path for FreePBX

    FreePBX 12 alpha 如果掉电重启,已多次发生 DB error,改装 FreePBX 11 仍有发生。虽然我已查明这是 MySQL socket 被锁定造成的,删除 /var/lib/mysql/mysql.sock 即可,但嫌 MySQL 不能自行修复,于是想到将 socket 移入内存 /dev/shm,掉电即不复存在,重启时每次都是重新生成 socket,不再有被锁定之忧。

    怎么更改 MySQL socket path 呢?其实也不复杂,只需更改三个文件。

    1. /etc/my.cnf
    MySQL 自身的配置文件

    socket=/var/lib/mysql/mysql.sock
    

    更改为

    socket=/dev/shm/mysql.sock
    

    2. /etc/freepbx.conf
    告诉 FreePBX socket 的新位置

    $amp_conf['AMPDBHOST']  = 'localhost';
    

    更改为

    $amp_conf['AMPDBHOST']  = 'unix(/dev/shm/mysql.sock)';
    

    你可能觉得 ‘unix(/dev/shm/mysql.sock)’ 的写法很奇怪。我摸索了好久才找到 PEAR DB 所用的 dsn 字符串中 MySQL socket path 的格式。

    3. /etc/amportal.conf
    告诉 asterisk socket 的新位置

    AMPDBHOST=localhost;
    

    更改为

    AMPDBHOST=unix(/dev/shm/mysql.sock)
    

    重启 MySQL 和 asterisk,确认 FreePBX System Status 是不是一片优雅的绿色(主要看 Server Status 块中的 Asterisk 和 MySQL 是否正常)?

    FreePBX server green status
    FreePBX server green status