在Peachpie中完成PHP所需的功用数月后,如今终究可以运转一个实在的运用程序:WordPress。
本文是基于Peachpie https://github.com/iolevel/peachpie
Peachpie是一个基于Microsoft的Roslyn的当代PHP编译器。
在.NET上运转WordPress
盛行的Phalanger项目已证实,可以在Microsoft .NET上运转险些未经修正的WordPress运用。
然则这个解决方案存在着题目,与新的WordPress版本不兼容。如今,Peachpie 也可以将WordPress作为一个完整托管的运用程序运转在.NET和.NET Core上。
这只是一个证实,Peachpie仍然是一个正在举行中的项目。不发起在生产环境中运用它。
本篇文章重要目标是证实Peachpie真的与WordPress中运用的规范PHP兼容,并展现其长处。
先决前提:
.NET Core 1.0
MySQL Server
对WordPress修正
因为Peachpie 0.5.0版本,编译器不支持扩大有前提声明的类,如
if (condition) { class X {} } class Y extends X {} // extending conditionally declared class
wp-includes/class-json.php:
解释前提 if (!class_exists(...))
解释第一个Services_JSON_Error类,保存第二个
这里预备了一个修正好的WordPress版本,已包括上面修正,使你编译项目更轻易。
.NET Core WordPress
预先修正 wp-config.php
设置了包括MySQL数据库的凭证的文件。运用默许端口3306,暗码为'' ,服务器是'localhost'。这里人人依据实际情况举行修正。
编译WordPress
编译由dotnet及其website/project.json
项目文件驱动。
{ "version": "1.0.0", "buildOptions": { "compilerName": "php", "compile": "**\\*.php", "debugType": "portable", "xmlDoc": true }, "dependencies": { "Peachpie.App": "0.5.0-*" }, "tools": { "Peachpie.Compiler.Tools": "0.5.0-*" }, "frameworks": { "netcoreapp1.0": { "dependencies": { "Microsoft.NETCore.App": { "type": "platform", "version": "1.0.0" } } } } }
运用 Peachpie.Compiler.Tools 举行编译WordPress项目。
然后有一个app 项目也就是ASP.NET Core。
static void Main() { var root = Path.GetDirectoryName(System.IO.Directory.GetCurrentDirectory()) + "/website"; var host = new WebHostBuilder() .UseKestrel() .UseWebRoot(root).UseContentRoot(root) // content root with wp static files .UseUrls("http://*:5004/") .UseStartup<Startup>() // initialization routine, see below .Build(); host.Run(); } class Startup { public void Configure(IApplicationBuilder app) { Pchp.Core.Context.DefaultErrorHandler = new Pchp.Core.CustomErrorHandler(); // disables debug asserts app.UsePhp(); // installs handler for *.php files and forwards them to our website.dll app.UseDefaultFiles(); app.UseStaticFiles(); } }
接着复原项目,在根目录下dotnet restore.
复原好今后cd app dotnet run
然后接见http://localhost:5004/ ,只需MySQL 设置准确,就会跳转至装置界面。注重要先在数据库中建立wordpress 数据库。
为了证实该网站真的在.NET Core上运转,我们可以反编译website.dll 看看。
以上就是细致相识在.NET Core 上运转的WordPress的细致内容,更多请关注ki4网别的相干文章!