用树莓派做业务服务器(RaspberryPi + raspbian 跑 mediawiki 与 trac)[draft]

(草稿,待完善)

需求

有时候需要在互联网上建设一个多人交流的场所,需要一个 wiki 与一个 bug tracing 软件,这需要一台安装了相应服务软件的服务器来支持,还需要外网IP。眼下缺少服务器,但手头正好有个树莓派(Raspberry Pi 3 Model B),于是想试试看,毕竟是少数人群使用,能否用这个来做服务器呢?

安装系统

树莓派官方已经给我们提供了一个建议,基于 Debian 的 raspbian,当前是基于 Debian 9 制作的。官网提供的是一个完整的镜像,下载后直接用 Etcher 写入一张16G 左右的 SD 卡,插入树莓派即可运行。

安装好后,用 raspi-config 命令,启用 SSH,连接 WIFI,做好无线路由器的端口映射,并在路由器的 DHCP 设置上树莓派的 IP 绑定,以便重启树莓派后能够获得同样的 IP 地址。的如此,就可以在外网访问这台树莓派了。

使用阿里提供的安装包的源,提高速度,修改 /etc/apt/sources.list 如下:

deb http://mirrors.aliyun.com/raspbian/raspbian/ stretch main contrib non-free rpi
deb-src http://mirrors.aliyun.com/raspbian/raspbian/ stretch main contrib non-free rpi

然后更新之

$ sudo apt-get update

安装基础平台

基础平台包括 web 服务器、脚本支持系统、数据库。考虑到资源占用问题,web 服务器选用 nginx,脚本支持将安装 PHP7 与 python3,数据库用 mysql。

安装 nginx

$ sudo apt-get install nginx

这将默认安装 nginx 1.10.3 版本。然后微调配置文件

$ sudo vi /etc/nginx/nginx.conf

	include /etc/nginx/conf.d/*;
	include /etc/nginx/sites-enabled/*;

改为

	include /etc/nginx/conf.d/*.conf;
	include /etc/nginx/sites-enabled/*.conf;

以便符合本人的文件命名美学。然后

$ mkdir ~/www
$ cd ~/www
$ echo "<html>hello world</html>" >> index.html

现在通过浏览器查看 http://127.0.0.1 ,如果看到 hello word 字样,表示一切 ok。

安装 PHP7

$ sudo apt-get install php7.0 php7.0-fpm

其中第一个包用于提供 PHP 支持,第二个包实现 fastcgi 用于与 nginx 通信。然后修改 nginx 配置,以便支持 php:

$ cd /etc/nginx/sites-available
$ cp default php_at_pi.conf
$ vi php_at_pi.conf
$ ln -s php_at_pi.conf ../sites-enabled/php_at_pi.conf

其中, php_at_pi.conf 这个文件,主要修改了 root 命令,启用 php 支持等相关几条配置,主要改动如下:

	...
	root /home/pi/Public/www;
	
	index index.php
	
	location ~ \.php$ {
		include snippets/fastcgi-php.conf;
		fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
	}
	...

接下来,新建一个php文件测试一下

$ echo "<?php echo phpinfo(); ?>" >> ~/www/index.php
$ sudo nginx -s reload

现在,打开浏览器,看看 http://127.0.0.1,看看是否出现正常页面。

安装 mysql

安装 uwsgi

安装业务系统

wiki

bugtracing

TroubleShooting

忘记密码

树莓派采用后台模式提供服务,无需管理,这就导致一个小问题:长时间不用,密码忘记了。

恢复密码需要三步骤,参考How To Raspberry Pi

  1. 启动单用户模式
    • 关闭系统,取下 SD 卡,插入其他计算机
    • 修改其中 cmdline.txt 文件,该文件一般就一行,在这一行最末尾,添加 init=/bin/sh 这几个字
    • 将 SD 卡插回树莓派,启动之
  2. 修改密码
    • 在此时,整个操作系统可能是处于 readonly 模式下的,无法修改密码,会出现 authentication token manipulation error 错误,应使用 mount -o remount, rw / 命令将系统加载成可以读写的
    • 现在可以用 passwd pi 命令修改密码了
    • 然后用 sync && exec /sbin/init 重启系统,看看是否一切正常
  3. 回归正常系统
    • 关机,取下 SD 卡,修改 cmdline.txt ,将步骤一添加进去的文字删除
    • 插回树莓派,over

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值