前言
弄了個視頻號下載后,同一個問題每天都會被問,回答的有點煩了。想了想根本原因還是缺少一個交流平臺,微信群的話,剛進群的看不到之前的聊天記錄。想整個知識星球,發(fā)現(xiàn)只能弄個收費的,免費的需要激活碼才能創(chuàng)建。
而有些人不會使用github,所以這篇文章寫一下如何使用開源項目搭建一個問答平臺。本來是想弄個論壇,但是在搜索的過程中發(fā)現(xiàn)這個問答平臺更符合我的要求(支持搜索、輕量和搭建簡單)。
開始搭建
我使用的系統(tǒng)是Ubuntu server20.04
使用的項目
- 問答平臺:https://github.com/apache/incubator-answer
- NGINX web管理: https://github.com/NginxProxyManager/nginx-proxy-manager
- MySQL
MySQL安裝
這個項目也可以不安裝MySQL,使用sqlite3來作為數(shù)據(jù)庫體驗一下。不過正式環(huán)境下還是建議使用數(shù)據(jù)庫
sudo apt update
sudo apt install mysql-server
安裝完成后,可以使用sudo systemctl status mysql.service
查看運行狀態(tài)。
MySQL默認(rèn)的配置文件在/etc/mysql/my.cnf
,但是這里面就兩行內(nèi)容
!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/
看了下這些目錄里的文件,mysqld的一些配置都在/etc/mysql/mysql.conf.d/mysqld.cnf
首先需要設(shè)置MySQL對docker容器開放,將bind-address
改成0.0.0.0
(注釋掉也可以),端口不改了,因為只對內(nèi)網(wǎng)ip開放。
然后重啟MySQL: sudo systemctl restart mysql.service
先使用sudo mysql
進入到SQL命令行
創(chuàng)建數(shù)據(jù)庫
CREATE DATABASE answer;
創(chuàng)建用戶
CREATE USER 'answer'@'%' IDENTIFIED BY '123456';
給用戶賦予answer數(shù)據(jù)庫的完整權(quán)限
GRANT ALL PRIVILEGES ON answer.* TO 'answer'@'%';
現(xiàn)在在命令行使用mysql -uanswer -Danswer -p
輸入密碼后應(yīng)該能進入到SQL命令行
放通防火墻
sudo ufw allow from 172.17.0.0/16
我查看了我的docker使用的ip段就是172.17.*.*
,所以只需要放通這個ip段即可。這樣容器就能訪問宿主機的所有服務(wù)
安裝問答平臺
docker安裝就不說了
docker pull apache/answer:latest
docker run -d \
-p 19080:80 \
-v /home/ubuntu/answer-data:/data \
--name answer \
apache/answer:latest
安裝NGINX管理平臺
docker pull docker.io/jc21/nginx-proxy-manager:latest
docker run -d \
-p 80:80 \
-p 18081:81 \
-p 443:443 \
--name nginx_proxy \
-v /home/ubuntu/nginx-proxy/nginx-proxy-data:/data \
-v /home/ubuntu/nginx-proxy/letsencrypt:/etc/letsencrypt \
docker.io/jc21/nginx-proxy-manager:latest
先放通下防火墻的18081端口
然后訪問http://服務(wù)器ip:18081
會看到登錄頁面,默認(rèn)用戶名密碼: admin@example.com
/changeme
登錄進去要被要求設(shè)置用戶名和修改密碼,修改完進入到主頁
點擊Proxy Hosts然后點Add Proxy Host,填寫如下信息(域名輸完按回車,可輸入多個域名)。要代理的ip就是宿主機的docker ip,也就是上面ifconfig看到的172.17.0.1
,而端口是docker映射的19080。
如果需要開啟https的話,如下圖所示,點Save即可申請完成。我一開始容器沒有映射80端口導(dǎo)致失敗了,因為申請證書要保證80端口能被連接。
另外也可以將18081這個端口反向代理到一個域名,這樣就能使用域名訪問NGINX-Proxy界面。
這里就可以使用域名訪問問答平臺的安裝界面http://answer.ikanade.cn/install
,輸入一些基本信息和MySQL的連接信息即可。當(dāng)然你也可以防火墻放通19080,先安裝完在做域名反代。
搭建的問答網(wǎng)站
https://answer.ikanade.cn/
以后遇到的問題我都會記錄在這上面,你也可以在上面給我提問。網(wǎng)站名稱叫每日隨筆, 是因為域名備案的名稱是這個。文章來源:http://www.zghlxwxcb.cn/news/detail-855021.html
本文由博客一文多發(fā)平臺 OpenWrite 發(fā)布!文章來源地址http://www.zghlxwxcb.cn/news/detail-855021.html
到了這里,關(guān)于搭建一個問答交流平臺的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!