博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
用.NetCore 编译国产老牌PHP论坛DiscuzX ,世界上最好的语言从此属于.Net 的一员
阅读量:4035 次
发布时间:2019-05-24

本文共 2065 字,大约阅读时间需要 6 分钟。

    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

转载地址:http://jdkdi.baihongyu.com/

你可能感兴趣的文章
STL::deque以及由其实现的queue和stack
查看>>
WAV文件解析
查看>>
DAC输出音乐2-解决pu pu 声
查看>>
WPF中PATH使用AI导出SVG的方法
查看>>
WPF UI&控件免费开源库
查看>>
QT打开项目提示no valid settings file could be found
查看>>
Win10+VS+ESP32环境搭建
查看>>
Ubuntu+win10远程桌面
查看>>
flutter-实现圆角带边框的view(android无效)
查看>>
android 代码实现圆角
查看>>
flutter-解析json
查看>>
android中shader的使用
查看>>
java LinkedList与ArrayList迭代器遍历和for遍历对比
查看>>
drat中构造方法
查看>>
JavaScript的一些基础-数据类型
查看>>
JavaScript基础知识(2)
查看>>
转载一个webview开车指南以及实际项目中的使用
查看>>
android中对于非属性动画的整理
查看>>
一个简单的TabLayout的使用
查看>>
ReactNative使用Redux例子
查看>>