用.NetCore 编译国产老牌PHP论坛DiscuzX ,世界上最好的语言从此属于.Net 的一员
DiscuzX是北京康盛新创科技有限责任公司推出的一套通用的社区论坛软件系统。自2001年6月面世以来,Discuz!已拥有15年以上的应用历史和200多万网站用户案例,是全球成熟度最高、覆盖率最大的论坛软件系统之一。目前最新版本Discuz! X3.4正式版于2017年8月2日发布,去除了云平台的相关代码,是 X3.2 的稳定版本。 通过DiscuzX 用户可以在不需要任何编程的基础上,通过简单的设置和安装,在互联网上搭建起具备完善功能、很强负载能力和可高度定制的论坛服务。Discuz! 的基础架构采用世界上最流行的web编程组合PHP+MySQL实现,是一个经过完善设计,适用于各种服务器环境的高效论坛系统解决方案。 作为国内最大的社区软件及服务提供商,Comsenz旗下的 Discuz! 开发组具有丰富的 web应用程序设计经验,尤其在论坛产品及相关领域,经过长期创新性开发,掌握了一整套从算法,数据结构到产品安全性方面的领先技术。使得 Discuz! 无论在稳定性、负载能力、安全保障等方面都居于国内外同类产品领先地位!
.NET Core 是一个通用的开放源代码开发平台。可以使用多种编程语言针对 x64、x86、ARM32 和 ARM64 处理器创建适用于 Windows、macOS 和 Linux 的 .NET Core 应用。为云、IoT、客户端 UI 和机器学习提供了框架和 API。 最新版是 .NET Core 3.1, .Net 5 将于2020年11月发布。
作为曾经的DiscuzX老粉丝, 要让DiscuzX在性能上有大幅度提升, 在部署方面采用现代的部署环境, 想让DiscuzX继续发光发热, peachpie编译器绝对是不二之选。 下面开始介绍具体步骤:
一、安装 PeachPie Visual Studio Extension
插件下载地址 https://marketplace.visualstudio.com/items?itemName=iolevel.peachpie-vs
安装后界面如下:
二、新建PeachPie项目
由于我们的DiscuzX是一个Web项目, 因此我们创建 PeachPie ASP.Net Core Web App , 创建后 如下图:
解决方案中包含两个项目, Server 是 ASP.Net Core 项目, 在这里可以理解为承载PHP的宿主, Web1 则是PHP项目!
三、编译php
由于默认模板中的 Peachpie.NET.Sdk/1.0.0-preview1 似乎存在bug , 经过参考 https://github.com/iolevel/peachpie-samples , 我们将web1 项目 改成 Peachpie.NET.Sdk/1.0.0-preview2 , server项目中的Peachpie.AspNetCore.Web 也改为 1.0.0-preview2版本!
接下来, 让我们把 DiscuzX 的 upload文件夹中的所有文档放在 Web1 项目中, 如图:
然后查看项目
在这里我们遇到一个问题, source\plugin\mobile 中引用了一个不存在的php文件, 我们直接把mobile 排除掉, 因为这个插件目前对于 DiscuzX 没什么可用价值, 然后再编译, 编译结果如下:
无数警告, 没心细看, 直接点Server的运行, 结果发现 样式, 图片全没有, (敲黑板,划重点),我们需要在 Startup 的 Configure 方法中 加入下面这行代码
app.UseStaticFiles(new StaticFileOptions { FileProvider = new PhysicalFileProvider(Path.GetFullPath("../upload/")) });
如图:
四 运行
点击运行后, 运行过程中会有多个报错, 比如
ob_end_clean 的问题已经实现了, 只不过没发布,
点继续运行就好。
不管任何情况, 点继续就好。
现在, 我们看到了熟悉的界面, 如下图:
点击同意
点击下一步
这里记得前提是数据库密码和用户名要对!
然后你会看到安装过程一闪而过。
那么接下来, 界面并不能显示出来, 表并没有创建成功,
如图:
总结:
DiscuzX 要想继续在.Net Core 上使用, 并不是短短一两个小时可以搞定的, 需要进一步调整, 一些 内容可能依然存在 peachpie没有实现的情况, 因此如果你有兴趣参与DiscuzX在.Net Core中的调试 ,可以访问
https://gitee.com/maikebing/DiscuzX
如果你想了解更多有关php运行在.Net Core 上的内容, 可以关注 peachpie
https://github.com/peachpiecompiler/peachpie
用.NetCore 编译国产老牌PHP论坛DiscuzX ,世界上最好的语言从此属于.Net 的一员相关推荐
- 基于微信小程序的国产动漫论坛小程序
文末联系获取源码 开发语言:Java 框架:ssm JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7/8.0 数据库工具:Navicat11 开发软件:eclipse/my ...
- 不重新编译DLL,让FCKEditor支持附件上传
最近在忙着做一个小项目,就是一个企业内部的论坛,其中最基本的一点就是富文本编辑帖子和回帖.目前市面上用的比较多的富文本编辑器有: FreeTextBox 一个有很多年历史的富文本编辑器了,使用简单,而 ...
- Fastlane- app自动编译、打包多个版本、上传到app store
Fastlane是一套使用Ruby写的自动化工具集,用于iOS和Android的自动化打包.发布等工作,可以节省大量的时间. Github:https://github.com/fastlane/fa ...
- DXBBS V8.0 BBS论坛系统 简体中文正式版 [ 开发语言:ASP.NET 2.0 (C#) ]
DXBBS V8.0 BBS论坛系统 简体中文正式版 [ 开发语言:ASP.NET 2.0 (C#) ] 程序版本:DXBBS V8.0 ACCESS/MSSQL版 开发语言:ASP.NET 2.0 ...
- 华为方舟编译器和鸿蒙,终于来了,方舟编译后程序完美运行在鸿蒙上,脱离安卓就在眼前?...
华为鸿蒙系统又传来新捷报,华为方舟编辑器完成并优化了首款应用新浪新闻,编译后的程序可以在鸿蒙上运用,可定有人好奇鸿蒙之前不就是已经存在EMUI上,华为手机上目前不是已经在用,这又是怎么回事呢? 鸿蒙历 ...
- 关于VS编译DevExpress默认产生几个多余的多国语言包的问题解决
关于VS编译DevExpress默认产生几个多余的多国语言包的问题解决 VS15开始对于非系统的Dll都会默认复制到本地,即bin\debug下面,复制dll到本地好处在于发布的时候不用再去寻找相关d ...
- netcore 编译 html,Asp.Net Core中的@ Html.Action
小编典典 更新:从2.2.2版本开始,HttpContextAccessor将上下文保留在一个对象中(据说是为了防止请求之间的混淆),这会影响当前解决方案-因此,您需要为IHttpContextAcc ...
- netcore 编译 html dll,ASP.NET Core Razor 视图预编译、动态编译
0x01 前言 ASP.NET Core在默认发布情况下,会启动预编译将试图编译成xx.Views.dll,也许在视图中打算修改一处很细小的地方我们需要再重新编译视图进行发布.下面我将从 ASP.NE ...
- 国产迪王耀全球(上)
目录 1.阴差阳错的传奇品牌 2.技术自研和供应链奠定迪王品牌基因 3.全球化的品牌布局 近日,多家新能源车企发布产销报告.数据显示,今年10月份,比亚迪新能源车销量达到217816辆,排名第一.而排 ...
最新文章
- EdgeBERT:极限压缩bert
- 超越MobileNetV3!Facebook提出更轻更快的FBNetV2
- 附加一个:为什么要用简单工厂模式
- mysql游标_MySQL 游标的使用
- js 打印数组_Node.js系列二 - Node基础知识
- ThingJS如何收费的?
- Typora设置高亮
- 新手小白如何挑选吉他,附几款超高性价比吉他推荐
- Float类型出现舍入误差的原因
- 理解SparkSteaming窗口函数操作window()
- uniapp中picker及默认组件改国际化
- 【毕业设计】基于单片机的宠物自动喂食系统 - 物联网 嵌入式 单片机 宠物喂食系统 宠物投食系统
- Aggressive cows(c语言)
- Golang iota详解
- 【StringBuffer】简单理解
- Flask、sqlite3、pipenv实现用户注册和登录(HandBook,菜鸟都会的)
- 踩坑sunbeam rbt 去除host reads
- 晋城一中oj 议员秘密
- 邀请码 inurl code.php,javascript-PHP注册邀请码
- 倍福TwinCAT(贝福Beckhoff)常见问题(FAQ)-人机界面如何设置页面跳转