俗人斋

搜索
热搜: 建站
这里是一个私人的根据地,想进入小圈子的就快来注册吧!
立即注册

合作站点账号登陆

快捷导航
查看: 1129|回复: 6

[大事件记] 【冬寂春生】论坛叕活了

[复制链接]

63

主题

531

帖子

2万

积分

洞悉因果

High Templar

Rank: 10Rank: 10Rank: 10

积分
21195

千山暮雪霜寒仙境七彩神话论坛元老星尘契约长乐未央亘古刻痕任我心意星际争霸II人理存续暗黑破坏神IIIDotA2PhotoshopAfter EffectPremiereAuditionDreamweaverMayaNuke冰雪学徒紫玉慕君长空白隼柠檬飞天刺客信条

威望
4341
金钱
7392
贡献
4560
QQ
透明的星尘 发表于 2022-1-25 16:20:53 | 显示全部楼层 |阅读模式
本帖最后由 透明的星尘 于 2022-1-25 16:31 编辑

之前skyfalco.club使用的服务器直接关闭了,于是俗人斋关闭了许久。最后的备份资料也是2020.05.09的,一年多的数据就这样消失了。月初整理电脑的时候,突然发现一个好朋友15年的日记。虽然有点不厚道,还是忍不住读了读,毕竟总是很好奇别人眼中的自己是什么样。其中还是有几段和自己相关的事情的,细节就不在这里讲了,只是读完之后特别感慨。毕竟15年自己经历了休学,和ex分手,做直播,决定quit等一系列巨大的波折,虽然日记里并没有记录这些,却让我意识到这么多年能挺过来,少不了这位朋友一直以来的关心。然后想写点什么,又不知道可以去哪里写,只能跟萌萌轻描淡写地说了几句。
于是就有了很强烈的复活俗人斋的念头,一方面是记录这些想说的话,我的确很需要一个很小众可以记录东西的平台,另一方面站长也说了“翻以前的东西就是容易笑死”,随着年龄的增长,生活压力越来越大,有这些东西看一看,还是挺欣慰的。

有了想法就要开始行动了,本来以为并不难的事情,却各种碰壁,来来回回折腾了将近10个工作日了。
首先是论坛放在哪?站长为了搭梯子搞了个服务器,但是梯子1.0的性能太差了,导致php和mysql同时打开就崩掉了,而且由于梯子1.0是shadows-sock架构的,还没怎么用就被GFW封掉了,服务器连着梯子一起阵亡。
于是站长又买了一个新的服务器梯子2.0,梯子2.0是基于Nginx构建的Trojan架构,通过Nginx的url解析,将墙外数据伪装成普通的http数据,基本不会被GFW察觉。然而就是这个高端的Nginx把我折腾惨了。nginx的原理是将不同特征的请求转给不同的后台程序去解析,安装了php和mysql之后,nginx并不会直接做好连接,甚至连http都要自己写,http还算顺利,但是php怎么都解析不了,php-fpm这些都在运行,最后发现是虚拟服务器配置的问题。
  1. server {
  2.     listen 80;
  3.     listen [::]:80;
  4.     server_name localhost;
  5.     access_log /var/log/nginx/falco.star.access.log;
  6.     error_log /var/log/nginx/falco.star.error.log;
  7.         root /var/www/html;
  8. location / {
  9.         index index.html index.php;
  10. }

  11. location /lrm{
  12.         alias /home/lrm/;
  13.         try_files $uri $uri/index.html $uri/index.php;
  14. }

  15.     location ~ \.php$ {
  16.         fastcgi_pass unix:/run/php/php7.2-fpm.sock;
  17.         fastcgi_index index.php;
  18.         fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
  19.         include fastcgi_params;
  20.     }
  21. }
复制代码
问题出在第18行,大部分的教程都写的是“fastcgi_pass 127.0.0.1:8000”,也就是本地的8000端口。我最初以为是8000被防火墙禁用了,然后无论是白名单,还是干脆关掉防火墙,都无济于事。最后才发现,这个8000的写法是针对php5.6的,从7.0开始适用的fastcgi模块,就必须写对应的sock文件的位置了,总之改成上述的样子之后,终于能看到php写的hello world了。
4124F683-16D1-4395-8F3E-BD7A74557B71.png

本以为这样就好起来了,结果发现mysql怎么都连不上,还有一个php解析xml的bug。也是查了好多教程试了很多方法都没有成功,最后只能就此作罢。

QQ截图20220125145416.png

想起建站初始的时候,我就随口说过这么一句话,实在是迫于无奈,我选择了将俗人斋迁移到化院课题组的服务器上。本来以为是个非常容易的过程,却又是各种碰壁,旧版论坛是php5.6 mysql5.7 discuz3.2的组合,而我在做课题组论坛的时候,安装的是php7.2+mysql8.0+discuz3.4。虽然可以通过IIS里修改模块映射,让不同的文件夹调用不同版本的php,但是没办法让两个版本的mysql同时生效。尝试了以下几个思路:
1.安装3.4版本,还原数据库文件,但是数据库文件无法识别,而且找不到restore.php,后来在3.2的安装包中找到了restore.php运行之后提示不是论坛备份的数据。
2.安装3.2版本,然后升级或者干脆就这么用,首先是在php7.2下安装,需要根据报错修改几个php7.0开始被淘汰的语法,后来成功运安装了,但是网站本身还是各种bug。后来在php5.6版本下安装,但是因为mysql密码设定的问题,总是连接不上;修改密码加密方式之后,连上了但还是各种报错,说是找不到数据库的各种表。因为服务器还有另一个论坛需要依赖mysql8.0,我这里也不敢对sql大动干戈,这条路也没走通。
3.本地安装3.2,最后又在自己的笔记本上构建了一个php5.6+mysql5.7的环境,装3.2,看似一切顺利,进入管理界面,就会出现fastcgi闪退的问题,其实弄到这一步,人已经有点接近崩溃了。这篇帖子的每一句话,基本上代表了几十分钟的查教程,排错,测试。

也好在没有因此放弃,再观察了一些现象之后发现,终于发现database的备份并不是论坛自己生成的,而是mysql的导出功能(mysqldump)生成的,最后我又在服务器上装了一个全新的3.4版本,然后把数据库备份文件用mysql的导入命令导入,就看到了一个朴素的俗人斋。
  1. ./mysql.exe -uroot
  2. >>>source $path$/backup_mysql_20200509.sql;
复制代码

WechatIMG475.png


根据我多年来与各种bug搏斗的经验,这已经是胜利的曙光了。然后把ucenter,data,static,template等文件夹里的内容还有favicon.ico等文件复制过去,后台更新缓存,修改ucenter的地址,就基本上是原来的样子了。门户主页显示小头像的地方并没有显示,打开模块代码,把{avatar_middle}改成{avatar_big}就可以了,这个问题之前也遇到过,不清楚为什么中尺寸读不出来。用手机登陆一下,发现一切也都正常工作,自此俗人斋迁移复活完毕。

----------------------------------------------------------------

简单总结一下自己这次使用的相对靠谱的论坛迁移步骤吧。

A.备份:

1.论坛本体:把论坛文件夹下的所有文件打包即可。得到bbs.zip

2.数据库:适用mysqldump命令:mysqldump --all-databases>backup.sql
迁移论坛需要用到bbs.zip和backup.sql文件。打开这个sql文件可以看到数据表前缀,比如pre_forom_post:xxxx,前缀就是pre。只要有这个文件,不记得也没关系。

B.迁移:
1.部署php,mysql.
2.安装纯净版的discuz,注意数据表前缀要和之前保持一致。
3.把backup.sql上传到服务器,运行mysql,输入命令:source $path$/backup.sql; 注意分号。然后会看到很多行数据表依次导入,一般需要几分钟,耐心等待即可。
4.把旧版bbs的部分文件夹覆盖新版bbs,大致内容如下:
uc_client/uc_server:存储用户头像等信息
template:论坛主题
static:一些静态的图片元素,比如本论坛的徽章系统
data:我也不知道有什么,也许不覆盖也可以
5.然后登陆bbs/admin.php,在站长那里修改ucenter的目录,把localhost改成域名或者ip即可,否则头像无法显示。
6.然后在工具选项卡里更新缓存即可。


用这种方法实现了视觉元素和数据库的独立迁移,版本适应性更强一些,也可以顺带升级了。网上提供的复制install.php重新安装的方法是针对3.2版本的,会带来很多因为历史遗留因素引起的后果,3.4可以用本帖的方法进行迁移。

评分

参与人数 1威望 +640 贡献 +640 收起 理由
木綿 + 640 + 640 部长居功至伟!

查看全部评分

用科学造福社会,
用艺术渲染人生。
回复

使用道具 举报

6

主题

32

帖子

2万

积分

洞悉因果

Rank: 10Rank: 10Rank: 10

积分
23365

千山暮雪

威望
4590
金钱
9533
贡献
4620
Akane 发表于 2022-1-26 09:27:15 | 显示全部楼层
技术部分看不太懂,总之感谢大佬的付出!
回复

使用道具 举报

12

主题

19

帖子

1910

积分

磐石

Rank: 4

积分
1910

七彩神话

威望
258
金钱
1062
贡献
313
学徒Chris 发表于 2022-1-28 15:26:20 | 显示全部楼层
可喜可贺,可喜可贺。
回复

使用道具 举报

52

主题

372

帖子

1万

积分

超级版主

第三视角

Rank: 8Rank: 8

积分
10139

千山暮雪七彩神话论坛元老空之境界SteamGithub

威望
1200
金钱
6077
贡献
1265
木綿 发表于 2022-1-28 15:46:18 | 显示全部楼层
发来贺电!
回复

使用道具 举报

2

主题

18

帖子

1641

积分

磐石

Rank: 4

积分
1641

千山暮雪七彩神话DotA2人理存续

威望
151
金钱
1165
贡献
156
pt_MuXue 发表于 2022-1-28 16:10:22 | 显示全部楼层
牛哇牛哇
回复

使用道具 举报

63

主题

531

帖子

2万

积分

洞悉因果

High Templar

Rank: 10Rank: 10Rank: 10

积分
21195

千山暮雪霜寒仙境七彩神话论坛元老星尘契约长乐未央亘古刻痕任我心意星际争霸II人理存续暗黑破坏神IIIDotA2PhotoshopAfter EffectPremiereAuditionDreamweaverMayaNuke冰雪学徒紫玉慕君长空白隼柠檬飞天刺客信条

威望
4341
金钱
7392
贡献
4560
QQ
 楼主| 透明的星尘 发表于 2022-1-29 20:19:52 | 显示全部楼层
放在化学院的服务器终究有些不妥,但是nginx我又一直没搞定,这个事也就陷入Jiang局了。
好在站长木绵今天把php,php-fpm, php-xml, mysql这坨东西全部卸载重装了一遍,然后上传了一个x3.4的discuz并安装成功了。

然后我就登陆nmns服务器上的bbs的后台,备份数据库,然后将整个论坛打包。
将旧论坛的data,static,template,uc_client(这个也许不需要,我覆盖了),uc_server等文件夹以及favicon.ico覆盖到新的论坛目录里。
登陆新论坛的后台,发现并不能找到刚才备份的数据。于是在后台->站长->数据备份哪里随便备份一下,这时会在新的论坛的data目录下发现一个backup_0cae00的文件夹,然而旧论坛的备份是在backup_bbe0a1文件夹下,我怀疑这个后缀是论坛环境等因素hash出来的某个字符串。吧0cae00里的东西全删了,然后吧bbe0a1里的备份复制过去,在后台就能看到这个备份了,后边有个导入,点击之后稍等片刻,再回到论坛主页刷新就可以了。
论坛复活迁移升级正式完成!
用科学造福社会,
用艺术渲染人生。
回复

使用道具 举报

52

主题

372

帖子

1万

积分

超级版主

第三视角

Rank: 8Rank: 8

积分
10139

千山暮雪七彩神话论坛元老空之境界SteamGithub

威望
1200
金钱
6077
贡献
1265
木綿 发表于 2022-1-29 21:41:38 | 显示全部楼层
本帖最后由 木綿 于 2022-1-29 22:01 编辑

再回顾一下新站历程:

1. 购买配置VPS服务器 + 域名 + DNS解析

ramnode.png

网上有铺天盖地的国外VPS介绍和推荐。多番对比之下,最终选择了https://www.ramnode.com/ 这个服务器。原因是:
1) 稍微小众一点,不像其他有名的站,注册的人中国人太多了 据说会被经常封IP
2) 价格比较便宜,最低档的512MB + 1 CPU + 1000G带宽每月只需3刀,基本是我看到的网站中最便宜的价格了。然而后面测试发现,512MB内存带不起来mysql+apache服务,所以最后买的是1G + 2CPU的机器,每月5刀也还能接受吧
3) 有每充100送25的活动!加上这个8折的话,已经算是很优惠了

系统选择的是Ubuntu18.04。可以随时关停一个服务器、重启任意多的新服务器,比较flexible挺方便的。账户里预充值一定金额,然后按天扣钱。

域名我是之前在GoDaddy上买的,由于域名太过小众,一年只需8块钱... 四舍五入等于白给啊,但明年续的话挺贵的,有可能要换成skyfalco.xyz交替使用了= =

DNS解析用的是腾讯的dnspod,操作参考官方文档:https://docs.dnspod.cn/dns/5ffc15f646757d460d99ed0a/


2. 支线任务 —— 搭梯子:Trojan配置

之前尝试了使用shadowsocksR方案,结果半天不到就被GFW封了IP... 鉴于公司的梯子用的是trojan,而且一直也比较稳定,于是这里就使用了Ngnix + Trojan方案。
全程按照 https://trojan-tutor.github.io/2019/04/10/p41.html 这个网站操作,没有遇到问题,梯子就这样顺利地搭建起来了,而且速度很快(最多能达到1 MB,一般几百K),一直都没有被封!可以说伪装地很好了。

想蹭梯子的同志可以联系站长获取配置文件


3. 准备论坛环境:Nginx + MySQL + PHP

由于本人太懒了,于是一直拖着没有建论坛... 论坛迁移主要是部长做的工作。部长在楼上已经说明了Nginx + php该如何配置,把/etc/nginx/sites-available/skyfalco.club文件改成部长写的那样就ok了。

之前的问题是php怎么都连不上mysql。于是一怒之下就purge删除了mysql*和php*,之后按照https://www.digitalocean.com/com ... -stack-ubuntu-18-04 的说明,重装了mysql-server, php-fgm, php7.2-mysql, php7.2-xml。装后两个是因为discuz需要支持xml和mysqli。最后restart nginx。由于部长已经弄好了nginx,所以这里就没有再动它。


4. 下载安装Discuz 3.4

百度后下载最新版的Discuz,解压后把其中的upload文件夹整个复制到/var/www/html/bbs就ok了。登录http://skyfalco.club/bbs,页面会指引完成安装。安装过程中需要注意:
1) 中途会提示一些文件夹不可写,可以把这些文件夹的权限chmod成777
2) 注册表前缀要跟旧论坛的保持一致:一般默认pre_,我好像没改过
3) mysql的用户名密码:如果装mysql时选择了用mysql_native_password登录,则需要写对密码;如果是默认的auth_socket登录,密码可以留空。可以用“mysql> SELECT user,authentication_string,plugin,host FROM mysql.user;”命令查看root用户使用什么plugin登录的
4) 方便起见,新论坛admin的密码最好和旧论坛保持一致

然后新的空论坛就安装完成啦。


5. 迁移旧论坛数据

这部分部长楼上也写了,就不赘述liao

顺便,星尘木綿的个人网站和也搬上来了,欢迎围观= = 可以去http://skyfalco.club/zlj/hobbies/video.html怀旧一下宣传部视频哈哈
上次更新还是2018年,有时间可以好好改一波了




回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|俗人斋

GMT+8, 2024-4-30 04:06 , Processed in 0.020410 second(s), 24 queries .

Copyright © 2018 俗人斋 | Ellie Zheng

Powered by Discuz! X3.4 & Legend of 7 Colors

快速回复 返回顶部 返回列表