lala.im:关于之前的Mastodon部署教程的一点更改和补充

運維技術·lala.im · 2018-10-26 · 123 人浏览

原文地址:https://lala.im/4370.html,請支持原作者!該處僅作轉載。

今天重新按照自己之前的文章部署了一遍Mastodon,发现到连接数据库这块的时候死活连不上数据库。。。
估计是开发者改了点什么不允许空密码登录了?下面是解决办法:
首先还是按照往常一样安装并初始化postgresql。接着更改postgresql的配置文件:

vi /var/lib/pgsql/10/data/pg_hba.conf

默认的是这样:

範例
改为下面这样,启用MD5加密:

範例
如果你之前已经启动了postgresql,那么这里要重启使配置文件生效:

systemctl restart postgresql-10

接着切到postgres用户下:

su postgres

创建一个数据库用户:

createuser mastodon

再切到psql:

psql

执行:

ALTER USER mastodon WITH ENCRYPTED password '设置一个你的数据库密码' CREATEDB;

完成之后退出:

exit

这样Mastodon数据库无法连接的问题就应该解决了。
另外之前那篇文章安装ruby是使用的rbenv,说实话这玩意有点蛋疼,今天部署的时候我把它换成了rvm,使用起来顺滑一些。下面是rvm的安装方法。
导入GPG密钥

gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB

直接就可以安装了:

\curl -sSL https://get.rvm.io | bash -s stable

使rvm命令生效:

source /etc/profile.d/rvm.sh

然后我们就可以使用rvm安装ruby了(依赖什么的还是要按照我之前的文章先装好):

rvm install 2.5.1

完成之后设置使用的版本:

rvm use 2.5.1

除此之外,之前我那篇文章是把Mastodon跑在Mastodon这个用户下的,感觉还不如跑在root用户下面,再加上现在用了rvm,所以systemd的配置文件也要做相应更改:

vi /etc/systemd/system/mastodon-web.service
[Unit]
Description=mastodon-web
After=network.target

[Service]
Type=simple
User=root
WorkingDirectory=/root/live
Environment="RAILS_ENV=production"
Environment="PORT=3000"
ExecStart=/bin/bash -lc 'bundle exec puma -C config/puma.rb'
ExecReload=/bin/kill -SIGUSR1 $MAINPID
TimeoutSec=15
Restart=always

[Install]
WantedBy=multi-user.target
vi /etc/systemd/system/mastodon-sidekiq.service
[Unit]
Description=mastodon-sidekiq
After=network.target

[Service]
Type=simple
User=root
WorkingDirectory=/root/live
Environment="RAILS_ENV=production"
Environment="DB_POOL=5"
ExecStart=/bin/bash -lc 'bundle exec sidekiq -c 5 -q default -q push -q mailers -q pull'
TimeoutSec=15
Restart=always

[Install]
WantedBy=multi-user.target
vi /etc/systemd/system/mastodon-streaming.service
[Unit]
Description=mastodon-streaming
After=network.target

[Service]
Type=simple
User=root
WorkingDirectory=/root/live
Environment="NODE_ENV=production"
Environment="PORT=4000"
ExecStart=/usr/bin/npm run start
TimeoutSec=15
Restart=always

[Install]
WantedBy=multi-user.target

最后关于Mastodon发邮件的一点补充,之前的文章是使用的本地发信,所以直接装个sendmail应该就可以成功发信了:

yum -y install sendmail

运行并设置开机启动:

systemctl start sendmail
systemctl enable sendmail

这种垃圾文章不发点图,会有人看?(我又侵犯肖像权了)

範例

運維技術 lala.im
Theme Jasmine by Kent Liao