跳到主要内容

· 阅读需 1 分钟

mysql开启远程访问(如navicat)需要修改两处地方:

  1. mysql授权某用户可以远程连接到哪些库:
grant all privileges on *.* to root@'%' identified by 'mypassword' with grant option;
flush privileges;

其中,all privileges表示所有权限,. 表示所有表,root@'%'表示root用户来自任何来源。

  1. mysql 服务允许远程连接,找到my.cnf,注释其中的bind-address = 127.0.0.1即可。ubuntu上在/etc/mysql/my.cnf。

p.s. mysql版本5.6

· 阅读需 1 分钟

有做一个远程开机的需要,所以python代码如下

-*- coding: utf-8 -*-
import socket
import struct

s = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
s.setsockopt(socket.SOL_SOCKET,socket.SO_BROADCAST,1)

data = ""
for i in range(6):
data += struct.pack('B',255)

mac = "DC-9C-52-11-3E-A8"
macs = map(lambda x:int(x,16),mac.split('-'))
for i in range(16):
data += struct.pack('6B',*macs)

print repr(data)

s.sendto(data,('255.255.255.255',7))
s.close()

其中那个端口为7或者9,有些说的是随便什么端口都行。实测88是可以的。

· 阅读需 3 分钟

家庭媒体服务器,听起来就很现代啊。 可以提供网络存储,媒体共享等功能。 像在server上下载好视频,然后在家里任何一台设备上点开就看,多过瘾。

硬件需求只有一个:路由器能开启upnp

步骤如下:

  1. 路由器开启upnp
  2. ubuntu上安装ushare: sudo apt-get install ushare
  3. 配置之: sudo dpkg-reconfigure ushare
  4. 用netstat -l找到upnp的端口,如我的是49193,访问http://192.168.0.54:49193/web/ushare.html然后设置位置即可。 至此,你就架好了基于upnp的家庭媒体服务器了。

访问的话,iphone android windows都有相应的播放器,大不了会做广告而已,差不到哪里去。linux下的我还没找到好用的。

另外:

  • 我的硬盘太小,于是还是播移动硬盘里的东西好了,于是需要mount,命令是: sudo mount /dev/sdb1 /media/mymedia 当然啦,在之前要先确定自己的移动硬盘是不是sdb1,还有要自己建mymedia这个文件夹。
  • 我房间的wifi热点信号无法遍布全家,于是拉了一根网线出去用迷你路由器架了一个热点,发现,选择热点模式就能让upnp中继出去,估计是一个网段的比较好说话吧。而我之前用普通模式,用的是两个网段,upnp就无法中继了。
  • 至于用于播放的播放器嘛,windows下的windows media center是可以的。但我在实际使用中,因为共享了10000+张照片,而wmp会把所有照片集中在一起展示,于是卡死了。个人使用推荐XBMC(x-box media center)。

· 阅读需 4 分钟

我的任务是把python的一个项目移植到linux下。pyactivemq在windows下只用直接下载一个pyd就好,而linux要编译。而这个项目已经好几年没有人动过了,所以有很多依赖的项目需要选择特定版本而不是最新版本。

首先解释几个名词:

  • JMS(java message service):java信使服务。一般称为jms中间件。
  • activemq:大概是active message queue的意思吧。我不太了解activemq和jms之间的关系,但是把他俩等价视之在大部分情况下都是对的。
  • openwire & stomp:activemq支持的两种协议,区别好像是stomp只支持文本信息,而openwire支持文本和字节流两种。估计也是因为如此,openwire只支持C、C++以及C#;而stomp在各类主流语言中都有现成的客户端。
  • pyactivemq:这是python下支持openwire的module,这不跟上面我说的矛盾,因为他就是由C++版本的activemq编译成的。

好了,因为公司的架构是基于openwire的,而重新开一个stomp协议给我动静比较大(我一个人搞不定),所以先试着编译个linux下的pyactivemq。

这个教程很重要,在pyactivemq的项目中有链接过去。

  1. 首先去上面的4点过去看看,上面写得很清楚了,需要activemq-cpp,而且要2.2.6的版本的。好了,下载好准备编译。另外需要几个包: sudo apt-get install libboost-python-dev libcppunit-dev uuid-dev autoconf automake libtool build-essential
  2. 看看readme,也说得很清楚,需要别的几个项目,能够apt掉的自然直接apt,但是apr(apache portable runtime)需要自己编译,因为我发现通过apt-get来的apr版本太高,会configure不过。
  3. 好,去下载apr和apr-util。嗯,实测apr-1.3.12和apr-util-1.3.12能编译运行,是我千辛万苦找来的下载地址。
  4. 好,编译安装要教吗?先装apr:进入文件夹,./configure --prefix=/opt/apr/,make,sudo make install。再装apr-util:进入文件夹,./configure --prefix=/opt/apr-util/ --with-apr=/opt/apr/,make,sudo make install。这里在configure的时候指定了安装地址,因为后面的安装需要找到之前的项目地址,而我又不想把他装到系统中,因为老版本的apr会影响别的项目的,比如我的apache2服务器在把这些东西安装到系统环境中就运行不了了。
  5. 然后就是activemq-cpp了。进入文件夹,mkdir config,./autogen.sh,./configure --prefix=/opt/activemq-cpp --with-apr=/opt/apr/ --with-apr-util=/opt/apr-util/,make,sudo make install。这里呢要先用autogen.sh来生成configure,然后再继续。
  6. 最后是编译pyactivemq了。在pyactivemq的源码文件夹,可以看到说明文档,两步,python setup.py build以及sudo python setup.py install。但是在这之前,你要先修改setup.py,把里面3处地址改正确。 好了,大功告成。

· 阅读需 3 分钟

一直觉得架设更新源是很牛逼的事情,放google一下才发现加起来就两分钟的操作,然后等就行了。

我是按着这里来搞的。

其实我就这样转发一下链接应该也就差不多了,但若真的如此,我的博客就白花心思去架设了。我还是把我的操作说一下,给大伙儿做个印证。

 

首先是获取更新源镜像的过程:

sudo apt-get install apache2 apt-mirror
sudo vi /etc/apt/mirror.list
sudo apt-mirror

我先打印一下我的mirror.list:

set nthreads 20
set _tilde 0
deb-i386 http://mirrors.ustc.edu.cn/ubuntu precise main restricted universe multiverse
deb-i386 http://mirrors.ustc.edu.cn/ubuntu precise-security main restricted universe multiverse
deb-i386 http://mirrors.ustc.edu.cn/ubuntu precise-updates main restricted universe multiverse
clean http://mirrors.ustc.edu.cn/ubuntu

安装apt-mirror之后,在/etc/apt/下就会有一个可以使用的配置文件存在,不过我们一般要自行进行少许配置的。比如说我使用的源就是用ubuntu软件中心帮我测速得到的地址,这里少说要60G的,自然是越快越好。我因为暂时用的都是32位机子,所以配置的都是deb-i386,deb指的是64位,deb-src则是源码包。

按我的配置,运行apt-mirror之后,它会发出20个线程去wget各个目标文件,然后要下60G左右的deb包。正在挂着的时候,跑上来写个日志,现在跑到1G了。嗯,看某文件夹的大小是这样:

du -sh /var/spool/apt-mirror

完成之后,在/var/spool/apt-mirror的3个目录下,各会有个mirrors.ustc.edu.cn文件夹,把这个文件夹用apache2映射到http上,便可以成为ubuntu源了。apache2的配置也不复杂,会在以后献上。