如何在CentOS 7上安装Turtl Server Evernote Alternative
Turtl是一个安全和加密的Evernote替代品。 这是一款开源应用程序,可让您记录笔记,书签网站,存储文档,与同事共享密码等等。 Turtl允许您在私人场所控制所有数据。 turtl客户端和turtl服务器应用程序的源代码在github上可用 - 您可以在您的服务器上手动部署它。
在本教程中,我们将逐步向您展示如何在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
Libuv库已安装在CentOS 7系统上。
第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'init'文件并加载'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 init文件。
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服务器现在在端口为'8181'的本地IP'127.0.0.1'下运行,现在我们将安装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 hakase@hakase-labs.co
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
Apache2 / httpd Web服务器已安装在CentOS 7系统上,它在端口8181上充当Turtl应用程序的反向代理。
使用下面的netstat命令检查它。
netstat -plntu
第9步 - 测试
下载turtl客户端应用程序并打开它。
点击“创建帐户”链接。
现在点击“我将记住我的登录信息”按钮。
用密码和你的Turtl服务器域名输入你的电子邮件地址。
然后点击“加入”按钮。
现在您将看到一个新窗口 - 点击“跳过此步骤”按钮。
你会得到空白的turtl仪表板。 在这里,您可以添加新的笔记,密码,文件,书签等。
CentOS 7系统上的Turtl服务器安装已成功完成。