如何在 CentOS 7 上安装 Turtl Server Evernote Alternative
在此页
- 先决条件
- 我们将做什么
- 第 1 步 - 安装开发工具
- 第 2 步 - 在 CentOS 7 上安装 Libuv
- 第 3 步 - 安装和配置 RethinkDB
- 第 4 步 - 安装 Common Lisp
- 第 5 步 - 安装 Quicklisp
- 第 6 步 - 下载并安装 Turtl 服务器
- 第 7 步 - 将 Turtl 服务器作为服务运行
- 第 8 步 - 安装 Apache/httpd 并将其配置为 Turtl 的反向代理
- 第 9 步 - 测试
- 参考资料
Turtl 是一种安全且加密的 Evernote 替代品。它是一个开源应用程序,允许您做笔记、为网站添加书签、存储文档、与同事共享密码等等。 Turtl 允许您在一个私密的地方控制您的所有数据。 github 上提供了 turtl 客户端和 turtl 服务器应用程序的源代码——您可以在您的服务器上手动部署它。
在本教程中,我们将逐步向您展示如何在 CentOS 7 上安装和配置 Turtl 服务器。Turtl 服务器是用 Common Lisp 编写的,因此我们需要在系统上安装 Common Lisp 和 QuickLisp。本教程将涵盖一些主题,包括在 CentOS 7 系统上安装 Libuv 和为 turtl 数据存储安装 RethinkDB。
先决条件
- CentOS 7
- 根权限
我们将要做什么
- 安装开发工具
- 在 CentOS 7 上安装 Libuv
- 安装和配置 RethinkDB
- 安装 Common Lisp
- 安装 Quicklisp
- 下载并安装 Turtl 服务器
- 将 Turtl 服务器作为服务运行
- 安装 Apache 并将其配置为 Turtl 的反向代理
- 测试
第 1 步 - 安装开发工具
对于本指南,我们需要在 CentOS 系统上安装开发工具包。
使用下面的 yum 命令安装开发工具。
sudo yum group install "Development Tools"
等待所有开发工具包安装。
第 2 步 - 在 CentOS 7 上安装 Libuv
Libuv 是一个专注于异步 I/O 的多平台支持库。 Turtl 服务器需要这个库,我们将手动安装这个库。
在手动安装 Libuv 到系统之前,让我们安装 openssl 和 openssl-devel。
yum -y install openssl openssl-devel
现在转到 /usr/local/src 目录并使用 wget 下载 libuv.targz 文件。
cd /usr/local/src
wget http://dist.libuv.org/dist/v1.9.1/libuv-v1.9.1.tar.gz
提取 libuv.tar.gz 并删除主文件。
tar -xf libuv-v1.9.1.tar.gz
rm -f libuv-v1.9.1.tar.gz
转到 libuv 目录。
cd libuv-v1.9.1/
通过运行以下所有命令使用开发工具安装 Libuv。
sh autogen.sh
./configure
make
make install
完成后,运行以下命令。
sudo ldconfig
CentOS 7系统已经安装了Libuv库。

第 3 步 - 安装和配置 RethinkDB
RethinkDB 是一个开源和分布式的面向文档的数据库,而 Turtl Server 使用 RethinkDB 作为数据存储。
在此步骤中,我们将从其自己的存储库安装 RethinkDB。
将 CentOS 7 的 RethinkDB 存储库添加到系统中。
sudo wget http://download.rethinkdb.com/centos/7/`uname -m`/rethinkdb.repo \
-O /etc/yum.repos.d/rethinkdb.repo
已添加 RethinkDB 存储库,现在使用 yum 命令按以下方式安装它。
sudo yum -y install rethinkdb
安装完成后,将默认配置复制到/etc/rethinkdb/instances.d目录下。
cp /etc/rethinkdb/default.conf.sample /etc/rethinkdb/instances.d/default.conf
并使用 vim 编辑器为 RethinkDB 创建新的服务文件。
cd /etc/systemd/system
vim rethinkdb.service
将以下配置粘贴到那里。
# Automatically generated by systemd-sysv-generator
[Unit]
Documentation=man:systemd-sysv-generator(8)
SourcePath=/etc/init.d/rethinkdb
Description=LSB: This starts a set of rethinkdb server instances.
Before=multi-user.target
Before=multi-user.target
Before=multi-user.target
Before=graphical.target
Before=shutdown.target
After=remote-fs.target
Conflicts=shutdown.target
[Service]
Type=forking
Restart=no
TimeoutSec=5min
IgnoreSIGPIPE=no
KillMode=process
GuessMainPID=no
RemainAfterExit=yes
ExecStart=/etc/init.d/rethinkdb start
ExecStop=/etc/init.d/rethinkdb stop
现在重新加载systemd系统并启动RethinkDB服务。
systemctl daemon-reload
systemctl start rethinkdb
RethinkDB现已安装并运行在CentOS 7系统上。

使用以下命令检查它。
systemctl status rethinkdb
netstat -plntu
你应该得到如下结果。

第 4 步 - 安装 Common Lisp
Common Lisp (CL) 是 Lisp 编程语言的一种方言。它是 Lisp 家族的一员。在这一步中,我们将手动安装 Clozure Common Lisp 到 CentOS 系统。
转到 /usr/local/src 目录并使用 wget 命令下载适用于 Linux 86/64 位的 Clozure Common Lisp。
cd /usr/local/src
wget https://github.com/Clozure/ccl/releases/download/v1.11.5/ccl-1.11.5-linuxx86.tar.gz
提取 Clozure Common Lisp 压缩文件并删除主文件。
tar -xf ccl-1.11.5-linuxx86.tar.gz
rm -f ccl-1.11.5-linuxx86.tar.gz
您将获得 ccl 目录。进入ccl目录,复制ccl64 bin文件到/usr/bin目录下。
cd /usr/local/src/ccl
sudo cp scripts/ccl64 /usr/bin/
现在通过运行 ccl64 命令验证 Clozure Common Lisp 安装。
ccl64
并确保你得到如下结果。

现在安装了 Clozure Common lisp。如果你想退出 ccl shell,输入 quit 命令。
(quit)
第 5 步 - 安装 Quicklisp
Quicklisp 是 Common Lisp 的库管理器。我们需要在系统上安装 Quicklisp,因为 turtl 通过 Quicklisp 系统加载它的所有依赖项。
在安装 Quicklisp 之前,请为 turtl 安装添加一个新用户。
useradd -m -s /bin/bash turtl
passwd turtl
现在以 turtl 用户身份登录。
su - turtl
使用 wget/curl 命令下载 quicklisp.lisp 和 asdf.lisp 文件。
wget https://common-lisp.net/project/asdf/asdf.lisp
curl -O https://beta.quicklisp.org/quicklisp.lisp
现在使用 ccl64 命令加载 quicklisp.lisp,如下所示。
ccl64 --load quicklisp.lisp
您将获得 ccl shell 命令行。使用以下命令安装 Quicklisp。
(quicklisp-quickstart:install)
该命令将下载 Quicklisp 的所有依赖项。完成后,添加 Quicklisp 初始化文件并加载 asdf.lisp。
(ql:add-to-init-file)
(load (compile-file "asdf.lisp"))
完成后,退出 ccl shell。
(quit)
并删除 quicklisp.lisp 和 asdf.lisp 文件。
rm -f asdf.lisp quicklisp.lisp
已安装 Quiclisp。

第 6 步 - 下载并安装 Turtl 服务器
在此步骤中,我们将在我们在顶部创建的 turtl 用户下安装 Turtl。
以 turtl 用户身份登录并使用 git 克隆 turtl 源代码。
su - turtl
git clone https://github.com/turtl/api.git
转到 api 目录并使用 vim 创建新文件 launch.lisp。
cd /home/turtl/api
vim launch.lisp
将以下配置粘贴到那里。
(pushnew "./" asdf:*central-registry* :test #'equal)
(load "start")
保存并退出。
接下来,我们需要为 turtl 安装一些依赖项。转到 quicklisp 目录并克隆所有依赖项。
cd ~/quicklisp/local-projects
通过运行以下所有命令来下载所有依赖项。
git clone git://github.com/orthecreedence/cl-hash-util
git clone git://github.com/orthecreedence/vom
git clone git://github.com/orthecreedence/cl-async
git clone git://github.com/orthecreedence/cffi
git clone git://github.com/orthecreedence/wookie
git clone git://github.com/orthecreedence/cl-rethinkdb
git clone git://github.com/orthecreedence/cl-libuv
git clone git://github.com/orthecreedence/drakma-async
git clone https://github.com/Inaimathi/cl-cwd.git
并编辑 ccl 初始化文件。
vim /home/turtl/.ccl-init.lisp
转到该行的末尾,将以下配置粘贴到那里。
(cwd "/home/turtl/api")
(load "/home/turtl/api/launch")
保存并退出。
现在复制默认的 turtl 配置 config.lisp 并使用 vim 编辑它。
cp /home/turtl/api/config/config.default.lisp /home/turtl/api/config/config.lisp
vim /home/turtl/api/config/config.lisp
在服务器绑定行中,添加本地主机 IP 地址,如下所示。
defvar *server-bind* "127.0.0.1"
保存并退出。

完成所有配置后,使用 ccl64 命令启动 turtl 服务器。
ccl64
该命令将安装 Turtl 服务器 API,完成后您将获得如下结果。

按 Ctrl + c 并键入 (quit) 退出。
第 7 步 - 将 Turtl 服务器作为服务运行
Turtl 服务器 API 已安装在 turtl 用户下。对于本教程,我们将运行 turtl 作为服务。
转到 /lib/systemd/system 目录并使用 vim 创建一个新的 turtl.service 文件。
cd /lib/systemd/system/
vim turtl.service
将以下 turtl 服务配置粘贴到那里。
[Unit]
Description=turtl_service
After=network.target mysql.service postgresql.service
[Service]
User=turtl
ExecStart=/usr/bin/ccl64
Restart=always
[Install]
WantedBy=multi-user.target
保存并退出。
现在重新加载 systemd 并使用 systemctl 命令启动 turtl 服务。
systemctl daemon-reload
systemctl start turtl

开机时加入turtl服务,查看turtl服务状态。
systemctl enable turtl
systemctl status turtl
你应该得到如下结果。

turtl 服务现在作为服务运行在 CentOS 7 系统上。
第 8 步 - 安装和配置 Apache/httpd 作为 Turtl 的反向代理
在本教程中,我们将在 Apache/httpd 反向代理服务器下运行 Turtl 服务器。 Turtl 服务器现在运行在本地 IP 127.0.0.1 和端口 8181 下,现在我们将安装 Apache2 Web 服务器并将其配置为 Turtl 服务器的反向代理。
使用下面的 yum 命令安装带有所有依赖项的 apache2。
yum -y install httpd mod_proxy_html
安装完成后,为 Turtl 添加新的虚拟主机文件。
转到 /etc/httpd/conf.d 目录并创建一个新的虚拟主机文件 turtl.conf。
cd /etc/httpd/conf.d/
vim turtl.conf
将以下虚拟主机配置粘贴到那里。
<VirtualHost *:80>
ServerName turtl.hakase-labs.co
ServerAdmin
ProxyPreserveHost On
ProxyRequests off
RewriteEngine On
<Proxy http://localhost:8181>
Order deny,allow
Allow from all
</Proxy>
ProxyPass / http://127.0.0.1:8181/ Keepalive=On timeout=1600
ProxyPassReverse / http://127.0.0.1:8181/
LogLevel info
CustomLog /var/log/httpd/turtl.log combined
</VirtualHost>
保存并退出。
现在检查 Apache 配置并确保没有错误。
apachectl configtest
现在,重新启动 httpd 服务并使其在每次系统启动时启动。
systemctl restart httpd
systemctl enable httpd

CentOS 7系统上安装了Apache2/httpd web服务器,作为8181端口上Turtl应用的反向代理。
使用下面的 netstat 命令检查它。
netstat -plntu

第 9 步 - 测试
下载 turtl 客户端应用程序并打开它。
单击“创建帐户”链接。

现在单击我会记住我的登录按钮。

输入您的电子邮件地址和密码以及您的 Turtl 服务器域名。

然后单击“加入”按钮。
现在您将获得一个新窗口 - 单击跳过此步骤按钮。

您将获得空白的 turtl 仪表板。在这里,您可以添加新的备注、密码、文件、书签等。

CentOS 7系统上的Turtl服务器安装已经成功完成。
参考
- <李>
- https://community.nethserver.org/