在树莓派上搭建代码托管服务(SVN)

1、首先需要安装Subversion软件:

sudo apt-get install subversion

2、创建仓库

svnadmin create /var/svn

/var/svn 为所创建仓库的路径,理论上可以是任何目录
3、修改配置文件/var/svn/conf/svnserve.conf
#去掉#[general]前面的#号

[general]
#匿名访问的权限,可以是read,write,none,默认为read
anon-access = none
#认证用户的权限,可以是read,write,none,默认为write
auth-access = write
#密码数据库的路径,去掉前面的#
password-db = passwd

注意:所有的行都必须顶格,否则报错。 建议:为了防止不必要的错误,建议你直接用我上面的内容覆盖掉文件原来的内容.
4、修改配置文件passwd

[users]
svnuser = password
ukonline2000 = ukonline2000

注意:
一定要去掉[users]前面的#,否则svn只能以匿名用户登录,客户端不会出现登录窗口,除非你的anon不为none,否则将返回一个错误。
这里的密码都是没有加密的,我按照一些教程所说的用htpasswd生成的密码无法使用。
5、停止Subversion服务器:

killall svnserve

6、启动Subversion服务器 对于单个代码仓库,启动命令:

svnserve -d -r /var/svn

其中-d表示在后台运行,-r指定服务器的根目录,这样访问服务器时就可以直接 用svn://服务器ip来访问了。

另外,客户端推荐用TortoiseSVN。

树莓派配置为无线路由器

首先需要一个受驱动支持的无线网卡,配置的结果就是把树梅派的网络连接通过无线网卡分享出来。做分享的无线网卡当然就不能同时来连接网络了。
安装hostapd

sudo apt-get install hostapd

配置hostapd.conf

interface=wlan0
driver=nl80211
ssid=网络名称
channel=6
hw_mode=g
wpa=2
wpa_passphrase=密码
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP

安装isc-dhcp-server

sudo apt-get install isc-dhcp-server

配置/etc/dhcp/dhcpd.conf,在末尾添加

subnet 192.168.111.0 netmask 255.255.255.0 {
range 192.168.111.50 192.168.111.150;
option routers 192.168.111.1;
option domain-name-servers 8.8.8.8;
option ip-forwarding off;
option broadcast-address 192.168.111.255;
}

启动hostapd

sudo hostapd hostapd.conf -B

设置无线网卡地址

ifconfig wlan0 192.168.111.1

启动isc-dhcp-server

/etc/init.d/isc-dhcp-server start

配置iptables

echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

这样就可以把树梅派的的有线网络连接通过无线网卡信号分享出去,可以用手机或平板测试一下。如果对iptables足够了解还可以配置很多高级内容。树梅派仅仅配置成为一个无线路由可能还不够,可以配合文件服务器一起用。并不是所有网卡都能配置成功,下面是简单测试结果:
|树梅派|pc|
|TP-Link 722N|可以|可以|
|NW336|不可以|可以|
关于传输速度方面也可以做更多的测试。

树莓派播放FM电台音频流

基本需要:
– RaspBIAN WHEEZY 系统
– 网络
– 耳机或者音响
1.启动树莓派(raspberry pi)
2.登录raspberry pi但是不要启动桌面
3.终端中输入:

sudo apt-get install mpd mpc alsamixer

4.添加一个网络FM音频流(例如SKY.FM:http://46.249.57.192:8016):

mpc add http://URL

5.播放音频流:

mpc play

6.提高音量:

mpc volume +10

7.减少音量:

mpc volume -10

8.停止播放:

mpc stop

9.使用alsamixer GUI:

alsamixer

10.保存FM站:

mpc save 站名称

11.加载以保存的站点

mpc load 站点

via

树莓派系统精简Wheezy-Raspbian

删除python_games目录服务器用不到

rm -rf python_games

删除桌面,浏览器,python等…

sudo apt-get purge x11-common midori lxde lxde-common lxde-core lxde-icon-theme lxinput lxpanel lxpolkit lxrandr lxsession-edit lxshortcut lxtask lxterminal xinit xserver-xorg xserver-xorg-video-fbdev desktop-base desktop-file-utils gnome-icon-theme gnome-themes-standard leafpad menu-xdg scratch xarchiver zenity leafpad dillo netsurf python3 python3-minimal

删除opt目录下的示范代码

sudo rm -rf opt

删除pyton…

sudo apt-get purge `sudo dpkg --get-selections | grep -v "deinstall" | grep python | sed s/install//`

清除剩余的x11组件

sudo apt-get purge `sudo dpkg --get-selections | grep -v "deinstall" | grep x11 | sed s/install//`

服务器也不需要音频组件

sudo apt-get purge `sudo dpkg --get-selections | grep -v "deinstall" | grep sound | sed s/install//`

接下来删除build-essential库

sudo apt-get purge gcc-4.4-base:armhf gcc-4.5-base:armhf gcc-4.6-base:armhf

删除不需要的键盘支持字体等…

sudo apt-get purge ca-certificates libraspberrypi-doc xkb-data fonts-freefont-ttf locales manpages

执行清洁

sudo apt-get autoremove
sudo apt-get clean

删除所有日志

cd /var/log/
sudo rm `find . -type f`

via

树莓派搭建LNMP环境

Raspberry Pi的固件有很多,我安装的是官方的Raspbian。配置ip。然后ssh上去后开始安装。

推荐root权限执行

sudo apt-get update
sudo apt-get install nginx php5-fpm php5-cli php5-curl php5-gd php5-mcrypt php5-mysql php5-cgi mysql-server

首次安装mysql的时候会提示输入密码,密码不要忘记就行了。
接下来我们来配置Nginx,首先打开配置文件,/etc/nginx/nginx.conf ,按照下面的配置进行修改。

worker_processes 1;

worker_connections 256;

gzip on;
gzip_disable "msie6";

gzip_vary on;
gzip_proxied any;
gzip_comp_level 6;
gzip_buffers 16 8k;
gzip_http_version 1.1;
gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;

接下来打开/etc/nginx/sites-available/default也是按照下面的配置进行修改。

server {
	listen 80;#Web服务端口号,大陆用户可能需要修改为81或8080等
	server_name raspiweb.dyndns.org;
	root /media/usb/www/;

	access_log	/var/log/nginx/localhost.access.log;
	#error_page	404 /404.html;

	if (!-e $request_filename)
	{
		rewrite ^(.*)$ /index.php$1 last;
	}

	location / {
		index  index.html index.htm index.php default.html default.htm default.php;
	}

	location ~* ^.+.(jpg|jpeg|gif|css|png|js|ico|xml)$ {
		access_log	off;
		expires	1d;
	}

	location ~ .*\.php(\/.*)*$ {
		fastcgi_split_path_info ^(.+\.php)(/.+)$;
		fastcgi_pass unix:/var/run/php5-fpm.sock;
		fastcgi_index index.php;
		include fastcgi_params;
	}
}

下面是对mysql的调优,打开配置文件/etc/mysql/my.cnf修改以下几处。

[mysqld]
key_buffer = 16k
max_allowed_packet = 1M
thread_stack = 64K
thread_cache_size = 4
query_cache_limit = 1M
default-storage-engine = MYISAM

最后我们来配置php.ini,php-fpm,打开配置文件/etc/php5/fpm/php.ini和/etc/php5/fpm/php-fpm.conf修改以下几处。

memory_limit=16M
process.max=4

重启nginx。

sudo /usr/sbin/nginx -s reload

到这里我们的lnmp环境配置已经大功告成!接下来是安装phpmyadmin到指定目录~这里只讲如何配置lnmp。
via

基于 Samba 实现 NAS 系统

摆弄了几天Raspberry Pi,在搞定了无线网络、FTP服务之后,打算更进一步,通过Samba实现NAS系统与PC共享文件。
需要安装的软件:
sudo apt-get install samba samba-common-bin
sudo apt-get install netatalk (可选,用于支持AFP)
sudo apt-get install avahi-daemon(可选,用于支持网内的计算机自动发现)
接下来就是配置了:
[Samba 配置] /etc/samba/smb.conf 文件尾部增加

[public]
comment = Public Storage
path = /home/pi
read only = no#任何人都具有了访问修改的权限
#因为是公共文件夹,所以给了所有用户全部权限,可以自定义
create mask = 0777#新创建文件的默认属性
directory mask = 0777#新创建文件夹的默认属性
guest ok = yes#默认的访问用户名为guest
browseable = yes

有关 Samba 的详细配置可以参考资料1资料2。然后就可以 smbd restart 了。这时候已经可以通过网上邻居看到共享文件目录,只是进不去。提示需要输入口令,尝试用本地帐户也无法进入。查了资料原来因为 Samba 使用了自己一套用户帐号资料库。要登录的话还需要向该库添加帐号信息,方法有两种:
1.直接用 mksmbpasswd.sh 将系统用户转换成 Samba 用户:

cat /etc/passwd | mksmbpasswd.sh >/etc/samba/smbpasswd

2.用 smbpasswd 命令直接设置,需要首先要添加系统用户然后用 smbpasswd -a 用户名 添加 Samba 用户;smbpasswd -e 用户名 激活用户。
[Netatalk 配置] /etc/netatalk/AppleVolumes.default 方法参考资料3
最后就是挂载USB移动硬盘了:

mount /dev/sda1 /home/shares/public/

有时候卸载USB移动硬盘的时候会提示设备忙(Device is busy),只需要加上 –l 参数就行了:

umount -l /home/shares/public/

via