Raspberry
Raspberry Pi3 服务部署
其实网上教程是挺多的,这里只列出我自己所用到的几个,samba,nginx,aria2,git...
其实网上教程是挺多的,这里只列出我自己所用到的几个,samba,nginx,aria2,git…
Samba
$ sudo apt-get install samba samba-common-bin -y
$ sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.orig
#modify conf
$ sudo vim /etc/samba/smb.conf
修改以下内容:
[share]
comment = Guest access shares
path = /home/pi/shares
browseable = yes
writable = yes
#read only = yes
guest ok = yes
public = yes
[NAS]
comment = NAS folder
path = /home/pi/nas/
browseable = yes
writable = yes
valid users = pi
restart service
$ sudo service samba restart
or
$ sudo service smbd restart
Web Server
常见的lightweight web server有Nginx|Haproxy|Apache|lighttppd + PHP|Flask + Mysql|Sqlite.
下面以nginx为例
Install and Configure Nginx+Php
$ sudo apt-get install nginx
$ sudo apt-get install php5-fpm
修改nginx配置文件
$ sudo vi /etc/nginx/sites-available/default
注意nginx所运行的user和wwwroot目录的文件所有者
server {
listen 8080;
## listen for ipv4; this line is default and implied
server_name $domain_name;
root /var/www;
index index.html index.htm index.php;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
location ~\.php$ {
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_split_path_info ^(.+\.php)(/.*)$;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param HTTPS off;
try_files $uri =404;
include fastcgi_params;
}
}
restart nginx server, create test php
<?php echo phpinfo(); ?>
关于nginx的详细配置可以参见blog内nginx其他文章。
Configure MySQL and phpMyAdmin
Install MySQL, phpMyAdmin, and php5-mysql.
$ sudo apt-get install mysql-server mysql-client php5-mysql phpmyadmin
Make a link of phpMyAdmin from /usr/share/phpmyadmin to /var/www/phpmyadmin.
$ sudo ln -s /usr/share/phpmyadmin /var/www/phpmyadmin
上述只是简单配置。详情可参考SETTING UP AN NGINX WEB SERVER ON A RASPBERRY PI
另外nginx+flask也可以尝试一下,详细参考文档看这里BUILD A PYTHON-POWERED WEB SERVER WITH FLASK
Aria2 Download
Install aria2 use apt package manager
$ sudo apt-get install aria2
Prepare configuration
# make aria2 folder
$ sudo mkdir /etc/aria2
# make aria2 session file and configuration file
$ sudo touch /etc/aria2/aria2.session
$ sudo vim /etc/aria2/aria2.conf
Configure aria2 configuration
## Aria2 configuration ##
# download path, using harddisk base on samba
dir=/media/pi/ITABAS/download
# enable disk cache, 0 is disable,default is 16M(aria2 version>=1.16)
# 启用磁盘缓存, 0为禁用缓存, 需1.16以上版本, 默认:16M
disk-cache=32M
# enable continue process when process crash
# 断点续传
continue=true
# File pre allocation method can effectively reduce disk fragmentation,
# recommend value prealloc
# If external disk system is NTFS recommend use falloc
# 文件预分配方式, 能有效降低磁盘碎片, 默认:prealloc
# 预分配所需时间: none < falloc ? trunc < prealloc
# falloc和trunc则需要文件系统和内核支持
# NTFS建议使用falloc, EXT3/4建议trunc, MAC 下需要注释此项
file-allocation=falloc
## download connection ##
# max concurrent download connections(runtime can be modified), default is 5
# 最大同时下载任务数, 运行时可修改, 默认:5
max-concurrent-downloads=5
# max concurrent connections per server(runtime can be modified), default is 1
# 同一服务器连接数, 添加时可指定, 默认:1
max-connection-per-server=15
# download speed limit(runtime can be modified), default is 0(unlimited)
# 整体下载速度限制, 运行时可修改, 默认:0(不限制)
max-overall-download-limit=0
# sigle task download speed limit, default is 0(unlimited)
# 单个任务下载速度限制, 默认:0(不限制)
max-download-limit=0
# upload speed limit(runtime can be modified), default is 0(unlimited)
# 整体上传速度限制, 运行时可修改, 默认:0(不限制)
max-overall-upload-limit=0
# sigle task upload speed limit, default is 0(unlimited)
# 单个任务上传速度限制, 默认:0(不限制)
max-upload-limit=0
# disable ipv6, default is false
# 禁用IPv6, 默认:false
disable-ipv6=true
# minimum split file size(can be specified when added) range: 1M - 1024M, default is 20M
# 最小文件分片大小, 添加时可指定, 取值范围1M -1024M, 默认:20M
# 假定size=10M, 文件为20MiB 则使用两个来源下载; 文件为15MiB 则使用一个来源下载
min-split-size=10M
# sigle task maximum threads, default is 5
# 单个任务最大线程数, 添加时可指定, 默认:5
split=10
## progress preservation related ##
# read download session for session file
# 从会话文件中读取下载任务
input-file=/etc/aria2/aria2.session
# save download session when pause or other actions
# 在Aria2退出时保存错误的、未完成的下载任务到会话文件
save-session=/etc/aria2/aria2.session
# save session interval(seconds)
# 定时保存会话, 0为退出时才保存, 需1.16.1以上版本, 默认:0
save-session-interval=60
## RPC related ##
# enable rpc funtion, default is false
# 启用RPC, 默认:false
enable-rpc=true
# enable origin source, default is false
# 允许所有来源, 默认:false
rpc-allow-origin-all=true
# enable visit from external ip, default is false
# 允许外部访问, 默认:false
rpc-listen-all=true
# enable rpc listen port, default is 6800
# RPC端口, 仅当默认端口被占用时修改
rpc-listen-port=6800
# rpc authorized token
# 设置的RPC授权令牌, v1.18.4新增功能, 取代 --rpc-user 和 --rpc-passwd 选项
#rpc-secret=<TOKEN>
## BT/PT download related ##
# enable BT task when download file follow .torrent extension, default is true
# 当下载的是一个种子(以.torrent结尾)时, 自动开始BT任务, 默认:true
follow-torrent=true
# 客户端伪装, PT需要
peer-id-prefix=-TR2770-
user-agent=Transmission/2.77
# 强制保存会话, 即使任务已经完成, 默认:false
# 较新的版本开启后会在任务完成后依然保留.aria2文件
#force-save=false
# keep bt task without authorized, default is false
# 继续之前的BT任务时, 无需再次校验, 默认:false
bt-seed-unverified=true
# save bt metadata file, default is false
# 保存磁力链接元数据为种子文件(.torrent文件), 默认:false
bt-save-metadata=true
Check aria2 is work
$ sudo aria2c --conf-path=/etc/aria2/aria2.conf -D
Create auto start service
created init script
$ sudo vim /etc/init.d/aria2c
#!/bin/sh
### BEGIN INIT INFO
# Provides: aria2c
# Required-Start: $network $local_fs $remote_fs
# Required-Stop: $network $local_fs $remote_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: aria2c RPC init script.
# Description: Starts and stops aria2 RPC services.
### END INIT INFO
case "$1" in
start)
echo "Starting service Aria2..."
sudo -u pi aria2c --conf-path=/etc/aria2/aria2.conf -D
echo "Start service done."
;;
stop)
echo "Stoping service Aria2..."
killall aria2c
echo "Stop service done."
;;
restart)
$0 stop && sleep 3 && $0 start
;;
esac
exit
executable script and make auto start
$ sudo chmod +x /etc/init.d/aria2c
$ sudo apt-get -y install chkconfig
$ sudo chkconfig --add aria2c
$ sudo update-rc.d aria2cRPC defaults
aria2 UI frontend
Use webui-aria2 or Yaaw
PS. base on nginx
$ git clone https://github.com/ziahamza/webui-aria2.git /var/www/html/
# modify nginx configuration
$ sudo vim /etc/nginx/sites-available/default
# add location configuration
location webui-aria2 {
root html;
index index.html index.htm;
}
Git Local Server
官方install document已经很详细了。Setting up Git Server 按步骤一步步来~