安装LNMP
安装Wordpress
参考文章
教程会安装wordpress旧的版本,没有关系后面可以在网页内升级
首先去修改WordPress地址(URL)
cd /home/wwwroot/ && mv default old && wget https://wordpress.org/latest.tar.gz && tar -zxvf latest.tar.gz && mv wordpress default && chown -R 755 /home/wwwroot && chown -R www:www /home/wwwroot/
创建一个数据库
mysql -u root -p
create database wordpress;
show databases;
exit
安装Acme
curl https://get.acme.sh | sh
或者
wget -O- https://get.acme.sh | sh
DNSPOD API
export DP_Id="你的 ID"
export DP_Key="你的 KEY"
1.使用命令acme.sh的时候可能会出现command not found
这个时候就要使用绝对命令:
~/.acme.sh/acme.sh --issue --dns dns_dp -d banana-zone.tk -d '*.banana-zone.tk'
这里的意思是给banana-zone.tk以及像*.banana-zone.tk(子域名)申请证书
2.要把证书和密钥另存到别的文件夹比如root/ssl
自己需要去root目录下建立ssl文件夹,代码为:
~/.acme.sh/acme.sh --installcert -d banana-zone.tk \
--key-file /root/ssl/banana-zone.tk.key \
--fullchain-file /root/ssl/banana-zone.tk.fullchain.cer \
--reloadcmd "nginx -s reload"
3.最重要的是配置nginx的配置文件
修改nginx配置来使用https功能,在原来nginx配置下面添加以下内容,该配置是http强制跳转https,注意看##的备注
server {
listen 80;
server_name banana-zone.tk;##你的域名
rewrite ^(.*)$ https://$host$1 permanent; ##这句是强制HTTP跳转HTTPS
}
server
{
listen 443;
server_name banana-zone.tk;##你的域名
#ssl on;
ssl_certificate /root/ssl/banana-zone.tk.fullchain.cer; ##证书位置
ssl_certificate_key /root/ssl/banana-zone.tk.key; ##证书位置
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
index index.html index.htm index.php;
root /home/wwwroot/default;
#error_page 404 /404.html;
# Deny access to PHP files in specific directory
#location ~ /(wp-content|uploads|wp-includes|images)/.*\.php$ { deny all; }
include enable-php.conf;
location /nginx_status
{
stub_status on;
access_log off;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
}
location ~ .*\.(js|css)?$
{
expires 12h;
}
location ~ /.well-known {
allow all;
}
location ~ /\.
{
deny all;
}
access_log /home/wwwlogs/access.log;
}
把listen 80还有server_name这两句删掉,然后增加
listen 443;
server_name banana-zone.tk;##你的域名
ssl on;##如果要和80共存就需要在前面加上#
ssl_certificate /root/ssl/banana-zone.tk.fullchain.cer; ##证书位置
ssl_certificate_key /root/ssl/banana-zone.tk.key; ##证书位置
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
修改完配置后,输入nginx -s reload
意思是重新载入配置,如果有误会提示错误在配置文件的第几行,没有就succeed
http和https共存的配置,对比上一个配置,把server80那段直接删掉,listen 80;添加到443这里,同时443后面加上ssl,ssl on前面加个#,因为你要80和443共存,ssl on必须关闭
listen 80;
listen 443 ssl;##加了ssl
server_name banana-zone.tk;##你的域名
#ssl on;##前面加了#
...
Nginx.conf路径:cd /usr/local/nginx/conf
接下来测试网站打开是否是https,记得去wordpress那里设置固定链接
如果需要自定义固定链接的话,需要在nginx.conf中的最后面的location字段那里添加
if (-f $request_filename/index.html){
rewrite (.*) $1/index.html break;
}
if (-f $request_filename/index.php){
rewrite (.*) $1/index.php;
}
if (!-f $request_filename){
rewrite (.*) /index.php;
}
如图
即可,重启nginx -s reload
安装Tg-bot
创建机器人
@BotFather 通过BotFather创建自己的机器人,这一步是为了获取token
PS:
就是找BotFather申请一个新的BOT,然后会给出这个机器人的token,后面会用到
获取https证书文件(你必须要有才可以使用bot)
参考上面的Acme
获取tg-bot源码
git clone https://github.com/DkWyatt/tg_push_bot.git
cd tg_push_bot
PS:
用过centos\ubuntu\debian,不同系统对于git curl apt yum wget等命令真的是有很大差别,有的兼容有的不兼容,不兼容就要去安装,总的下来我选择的debian系统是安装这个机器人的命令debian都完美适配
创建Sqlite3数据库
apt install sqlite3 -y
sqlite3 bot.db
sqlite> CREATE TABLE users (chatId int unique, chatToken text unique);
sqlite> .quit
PS:
当输入sqlite3 bot.db敲回车之后,就直接出现sqlite>,所以你只要复制CREATE …unique);这段就可以了,下一句也是同理
创建配置文件 config.js
PS:
配置文件放入/root/tg_push_bot
PS:
- 域名这行,原作者备注这里是填写域名的,我试过填写域名,会导致502 Bad Request。我用的也是这个0.0.0.0
- key文件,就是我们前面获得并放入/root目录下的
- csr文件,就是我们把两个文件合并成一个的ssl.crt文件
- 对于链接中的{}一定要去掉,不要留着
- bot.token这行的格式是:https://api.telegram.org/bot{token}/
- 推送链接这里把yourdomain换成你自己的就行了,但是不能和博客是同一个域名,应该是一个子域名
- 举例
https://tgbot.banana-zone.me/sendMessage/%s
将server.js 197行443端口修改为8443
PS:
这个文件就在/root/tg_push_bot下,一般在197行,我的就在212,这个不好说,而且这一行下面还有一个443,但是不需要更改
安装Node
安装Node.js一定要cd /root/tg_push_bot
然后再安装,不然会报错
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash
sudo apt-get install -y nodejs
npm install #安装依赖(安装完后可能会出现几个warn,不用管的)
npm install -g pm2 #安装pm2模块
pm2 start server.js #运行服务
pm2 startup #设置开机启动
pm2 save #保存当前 pm2 运行的各个应用保存到 /root/.pm2/dump.pm2 下,开 机重启时读取该文件中的内容启动相关应用
可能会用到的PM2命令
pm2 list #列表 PM2 启动的所有的应用程序
pm2 restart all #重启所有程序
pm2 kill #终止PM2
卸载pm2
pm2 kill
npm remove pm2 -g
卸载npm
npm uninstall npm -g
配置Nginx反向代理
反向代理配置文件路径:/usr/local/nginx/conf/vhost
然后创建一个文件,*.conf
即可,相关数据替换成自己的
改好之后可以用nginx -t检查一下有没有错误,没有就重启nginx
service nginx restart
PS:
按流程安装即可,注意的地方:安装Nodejs、config.js 、server.js、反向代理配置文件、子域名
Tgbot的域名不能和博客的一样,应该用子域名,可以共用一套证书
设置Bot webhook地址
浏览器访问下面地址,将token和域名替换成自己的地址
如果发送/start没有反馈,可以在浏览器中再次访问下面的网址
https://api.telegram.org/bot{token}/setWebhook?url=https://{domain}/inlineQuery
PS:
token和domain旁边的{}要去掉的
再通过下面链接检查webhook是否正常
https://api.telegram.org/bot{token}/getWebhookInfo
PS:
重新搭建的时候,经常会遇到显示502 Bad request
,重新更换API token也没有用,需要删除bot重新建
XsHell内测试tgbot
curl https://tgbot.banana-zone.tk/sendMessage/xpfu6420jqf7wy86?text=1
可能会出现服务器测试发送成功,但是插件推送不了的问题
解决办法
在tg里面给自己申请的机器人发送/start
就能获取自己的推送链接了,这个链接放到chrome扩展上,就大功告成了
以后就可以方便快捷的把chrome上的东西推送到手机上了~~~~
十分感谢原作者Fndroid 和DK大神的指导,以上命令和模板是Fork两位大佬的!!
腾讯云设置子域名步骤
wordporess固定链接弄错
可以到数据库进行修改,步骤如下
- mysql -u root -p ##密码登录mysql
- show databases; #显示有哪些数据库
- use wordpress; #选择使用wordpress的数据库
- show tables; #显示有哪些表
- select * from wp_options limit 0,5 ; #查询wp_options表中的内容,并只查看前5行
- update wp_options set option_value="url" where option_name="siteurl";
- update wp_options set option_value="url" where option_name="home";
Comments | NOTHING