WhatAKitty Daily

A Programmer's Daily Record

搭建树莓派3私有云盘【二】部署LNMP环境

WhatAKitty  

前言

在前一章,我们搭建了操作系统并且做了一些基本设置,接下来需要部署一个LNMP环境,提供云盘运行基础。

准备

为了方便起见,我们将所有的源代码文件直接放到/root/src文件夹下。笔者基本想法是:编译安装Nginx和PHP,YUM安装MariaDB。至于为何如此做法,主要有如下原因:

  • CentOS ARM软件库内,PHP版本最新为5.4.x,达不到NextCloud的最低版本要求(5.6);
  • 编译安装更容易控制和操作;
  • MariaDB作为数据库存储,没必要做编译安装这些复杂步骤,特别是在树莓派下,编译安装MariaDB花费的时间简直令人瞠目结舌。
阅读全文 »

搭建树莓派3私有云盘【一】系统设置

WhatAKitty  

前言

按照上一章讲解的准备材料,我们开始构建硬件环境以及安装树莓派系统。

安装系统

在这里,笔者比较喜欢CentOS系统,所以,笔者选择了CentOS for ARM系统。当然,你也可以选择其他系统作为你的运行环境。

CentOS系统下载地址:http://mirror.centos.org/altarch/7/isos/armhfp/CentOS-Userland-7-armv7hl-Minimal-1708-RaspberryPi3.img.xz

不过,需要注意的是:这玩意是32bit,所以在选择程序的时候需要注意这一点。

烧录系统镜像

下载成功系统后,我们需要将系统的镜像烧录到SD内。到这里,就有很多方式可以选择了:

  • 使用windows系统,下载SDFormatter,并使用该工具将映像烧录到SD卡
  • 使用Ubuntu系统,gnome-disks打开磁盘工具,先删除分区并圈闭裁判工具,之后双击打开下载的镜像(.img.xz),选择需要烧录的目标,直接烧录到SD卡(笔者使用的就是这种方式,相当简单)
阅读全文 »

搭建树莓派3私有云盘【零】缘由介绍

WhatAKitty  

背景

前几天发生了一件令笔者无比抓狂的事情,这是我的一台Storage VPS主机上发来的邮件:

Move your VPS to a new server - PLEASE READ

Hello,
We have the problem with the hard disk on the Server node. We boot your VPS to rescue. Please login to
rescue via SSH and backup your data. Your data in /mnt/vda1
Here is information rescue:
IP: xxx.xxx.xxx.xxx
User: root
Password: xxxxxx
Also, we setup new VPS for you in new server node. You can backup data via rescue and upload to new VPS
and use it. Here is new VPS:
IP: xxx.xxx.xxx.xx1
User: root
Password: xxxxxx
We apologize for this and we added the one month extra to your VPS
We hope you understand this issue

Thanks!

GreenCloudVPS JSC.
Homepage: https://greencloudvps.com/index.php

简而言之,笔者的服务器硬盘挂了,然后数据据邮件所说存储到了一台备份服务器的/mnt/vda1下。并且,他们深感抱歉,免费送了我一个月的额外使用时间。不过,很不幸,笔者登录后,发现存储的数据库损坏,恢复起来遥遥无期。在尝试了N天的恢复无果后,终于放弃。

而为了防止这种惨剧的再次发生,笔者打算将私有云盘搭建在吃了一年多灰的树莓派3上。

生命不息,折腾不止!

阅读全文 »

以react-script重构antd-pro

WhatAKitty  

背景

在蚂蚁金服推出ant-design-pro的开源项目后,仔细了解了下,根据官网的介绍:

开箱即用的中台前端/设计解决方案

不过,该项目是基于dvaroadhog构建,我更倾向于使用react-script作为脚手架,所以也萌生了将现有的ant-design-pro项目的基础构建工具迁移到react-script的想法。

阅读全文 »

RealmJS在XCode编译安装下失败

WhatAKitty  

背景

RealmJS发布了2.x.x的版本,新增了一些特性和修复了一些bug,所以决定将它升级。

升级的过程很顺利,在虚拟机上运行的时候没有任何问题,不过在安装到真机进行测试的时候,却发生了一个错误:

1
2
3
4
5
6
7
PhaseScriptExecution Download\ Core /Users/me/Library/Developer/Xcode/DerivedData/Ology-dyfbenzvbbghgeebclxmorqgivwr/Build/Intermediates.noindex/RealmJS.build/Debug-iphonesimulator/RealmJS.build/Script-F63FF2C51C12462600B3B8E0.sh
cd /Users/me/project/node_modules/realm/src
/bin/sh -c /Users/me/Library/Developer/Xcode/DerivedData/Ology-dyfbenzvbbghgeebclxmorqgivwr/Build/Intermediates.noindex/RealmJS.build/Debug-iphonesimulator/RealmJS.build/Script-F63FF2C51C12462600B3B8E0.sh

/Users/me/Library/Developer/Xcode/DerivedData/Ology-dyfbenzvbbghgeebclxmorqgivwr/Build/Intermediates.noindex/RealmJS.build/Debug-iphonesimulator/RealmJS.build/Script-F63FF2C51C12462600B3B8E0.sh:
line 2: node: command not found
Command /bin/sh failed with exit code 127
阅读全文 »

React-script + Antd + CSS Module(非eject)

WhatAKitty  

缘由

由于项目需要,需要构建一个ReactJS的应用,恰巧看见了react-script这个开源项目,将一些webpack的配置都隐藏了,整体项目看起来更清晰明了。

所以,打算采用如下的技术栈:

  • React 16.0.0
  • React-script
  • React-app-rewired(用于扩展react-script的配置)
  • Antd

但是在构建过程中,发现并没有现成app-rewired的模块提供有less-css-module的功能。在这过程中,查阅了许多资料,最后在@andriijas的帮助下成功达成了目的。

阅读全文 »

更换畅言社会评论系统

WhatAKitty  

背景

由于多说下线,Disqus在国内的速度有点太过不堪;所以在查找了一番国内的社会评论系统后,决定采用搜狐的畅言。

安装使用

如果注册畅言这里不详细描述了,直接开始集成畅言代码:

1
2
3
4
5
6
7
8
9
<!--PC和WAP自适应版-->
<div id="SOHUCS" sid="请将此处替换为配置SourceID的语句" ></div>
<script type="text/javascript">
(function(){
var appid = 'xxx';
var conf = 'xxx';
var width = window.innerWidth || document.documentElement.clientWidth;
if (width < 960) {
window.document.write('<script id="changyan_mobile_js" charset="utf-8" type="text/javascript" src="https://changyan.sohu.com/upload/mobile/wap-js/changyan_mobile.js?client_id=' + appid + '&conf=' + conf + '"><\/script>'); } else { var loadJs=function(d,a){var c=document.getElementsByTagName("head")[0]||document.head||document.documentElement;var b=document.createElement("script");b.setAttribute("type","text/javascript");b.setAttribute("charset","UTF-8");b.setAttribute("src",d);if(typeof a==="function"){if(window.attachEvent){b.onreadystatechange=function(){var e=b.readyState;if(e==="loaded"||e==="complete"){b.onreadystatechange=null;a()}}}else{b.onload=a}}c.appendChild(b)};loadJs("https://changyan.sohu.com/upload/changyan.js",function(){window.changyan.api.config({appid:appid,conf:conf})}); } })(); </script>

阅读全文 »

封装Ngrok服务

WhatAKitty  

背景

在公司部署集成环境的时候,由于是内网环境,但是有时候常常需要在外网使用JIRA、GITLAB等等这些服务。查询了一下资料,采用了NGROK这款开源软件,用于将内网服务暴露到外网中。不过,因为ngrok的服务端和客户端只是简单的一个程序,对于习惯于直接进行服务管理的我来说不太方便。所以,在这片文章内,会介绍如何将NGROK封装为一个服务。

阅读全文 »