树莓派安装的CentOS用不了第三方软件园,只好通过make install安装nginx

1. 下载nginx软件源码:

1
2
wget http://nginx.org/download/nginx-1.10.3.tar.gz
tar xf nginx-1.10.3.tar.gz

2. 利用yum 安装pcre pcre-devel openssl 等包

阅读全文 »

1. 下载NodeJS源码

如果是以前,可能是叫你去下载源码编译…以树莓派的性能来编译Node.js的源码,应该至少一个小时吧?

幸运的而是官方已经提供了,编译的树莓派二进制包,所以就不要再去下源码编译了…

1
2
3
wget https://npm.taobao.org/mirrors/node/v0.11.12/node-v0.11.12-linux-arm-pi.tar.gz
tar -xvzf node-v0.11.12-linux-arm-pi.tar.gz
node-v0.11.12-linux-arm-pi/bin/node --version
阅读全文 »

公司最近这个项目用的是spring boot,但是又需要前端使用Vue.js进行开发,单独使用requireJS和Vue.js配合又不方便,所以想到了直接使用webpack开发.

以下webpack介绍copy自:《入门Webpack,看这篇就够了》

为什要使用WebPack

现今的很多网页其实可以看做是功能丰富的应用,它们拥有着复杂的JavaScript代码和一大堆依赖包。为了简化开发的复杂度,前端社区涌现出了很多好的实践方法:

  • 模块化,让我们可以把复杂的程序细化为小的文件;
  • 类似于TypeScript这种在JavaScript基础上拓展的开发语言:使我们能够实现目前版本的JavaScript不能直接使用的特性,并且之后还能转换为JavaScript文件使浏览器可以识别;
  • Scss,less等CSS预处理器
  • …
阅读全文 »

我们知道canvas画布可以很方便的js原生支持转为图片格式并下载,但是svg矢量图形则并没有这方面原生的支持。
研究过HighChart的svg图形的图片下载机制,其实现原理大体是浏览器端收集SVG代码信息,并发送到到服务器端,由后端程序转换成图片格式后,以流的形式反射给浏览器端下载。

最近在项目中有需求将一个非HighChart的SVG地图转存为图片并下载的功能。
本希望模拟HighChart的原理实现,可是研究发现,该地图的SVG代码信息多达两万字节,然而HighChart后端制图程序却有着字节数限制,所以就不能这么处理了。

然后国外社区讨论的方法也多是前后端协同处理来完成这个功能的,这样实现会比较重, 而且部署不便。

阅读全文 »

一、准备 .ssh 目录(服务器端)

如果服务器上用户的家目录下不存在 .ssh 目录,需要先创建它,并设置正确的权限。SSH 服务要求 .ssh 目录的权限为 700,否则会拒绝公钥认证。

1
2
3
4
5
6
7
cd ~

# 若 .ssh 目录不存在则创建
[ ! -d .ssh ] && mkdir .ssh

# 设置权限为 700,确保只有属主有权访问
chmod 700 ~/.ssh

二、生成 SSH 密钥对(客户端)

在你的本地计算机(客户端)上执行以下操作。

1. 检查或生成密钥

首先检查本地是否已有 SSH 密钥。如果 ~/.ssh/id_rsa 文件不存在,则生成一个新的 4096 位 RSA 密钥对。

1
2
3
4
# 如果 RSA 私钥不存在,则创建一个新的
if [ ! -f ~/.ssh/id_rsa ]; then
ssh-keygen -t rsa -b 4096 -C "[email protected]"
fi

执行后,你的 ~/.ssh 目录下会生成两个文件:

文件名 描述
id_rsa 私钥(必须妥善保管)
id_rsa.pub 公钥(可以安全分发)

2. 查看并复制公钥

查看并复制公钥文件的内容,准备将其上传到服务器。

1
cat ~/.ssh/id_rsa.pub

三、配置服务器端

1. 将公钥写入 authorized_keys

登录服务器,将刚刚复制的客户端公钥内容追加到 ~/.ssh/authorized_keys 文件中。

1
2
3
4
5
6
7
8
cd ~/.ssh

# 将公钥内容追加到 authorized_keys 文件
# 注意:请将 "粘贴你本地 id_rsa.pub 的内容" 替换为实际的公钥字符串
echo "粘贴你本地 id_rsa.pub 的内容" >> ~/.ssh/authorized_keys

# 设置 authorized_keys 文件的权限为 600
chmod 600 authorized_keys

重要提示:authorized_keys 文件的权限必须是 600,否则 SSH 服务会因权限过于开放而拒绝认证。

2. 配置 SSH 服务

编辑 SSH 服务的配置文件 /etc/ssh/sshd_config,以启用公钥认证并增强安全性。

1
sudo vim /etc/ssh/sshd_config

建议修改或确认以下配置:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 开启公钥认证
PubkeyAuthentication yes

# 指定存放公钥的文件路径
AuthorizedKeysFile .ssh/authorized_keys

# (推荐)禁用密码登录,强制使用密钥
# PasswordAuthentication无效的话 查看/etc/ssh/sshd_config.d 目录下是否有.conf文件覆盖配置
PasswordAuthentication no

# (可选,但推荐)禁止 root 用户直接登录
PermitRootLogin no

# 确保 SSH 使用 v2 协议
Protocol 2

# 开启严格模式,检查目录和文件的所有权和权限
StrictModes yes

修改配置后,重启 SSH 服务使之生效。

1
sudo systemctl restart sshd

四、总结

通过以上步骤,你可以实现安全、免密登录 CentOS 7 服务器。核心要点包括:

  • 权限设置:确保 .ssh 目录权限为 700,authorized_keys 文件权限为 600。
  • 密钥分离:私钥 (id_rsa) 绝不泄露,公钥 (id_rsa.pub) 用于分发。
  • 服务配置:在 sshd_config 中开启公钥认证并禁用密码登录,提升系统安全性。
  • 服务重启:修改配置后务必重启 sshd 服务。

1. 添加Centos7的epel及remi源:

1
2
yum install epel-release
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

2.使用yum list命令查看可安装的包:

1
yum list --enablerepo=remi --enablerepo=remi-php56 | grep php
阅读全文 »

Promise in js

回调函数真正的问题在于他剥夺了我们使用 return 和 throw 这些关键字的能力。而 Promise 很好地解决了这一切。

2015 年 6 月,ECMAScript 6 的正式版 终于发布了。

ECMAScript 是 JavaScript 语言的国际标准,JavaScript 是 ECMAScript 的实现。ES6 的目标,是使得 JavaScript 语言可以用来编写大型的复杂的应用程序,成为企业级开发语言。

概念

ES6 原生提供了 Promise 对象。

所谓 Promise,就是一个对象,用来传递异步操作的消息。它代表了某个未来才会知道结果的事件(通常是一个异步操作),并且这个事件提供统一的 API,可供进一步处理。

Promise 对象有以下两个特点。

阅读全文 »
0%