NET Core WordPress

NET Core 上运行的 WordPress

在.NET Core 上运行的 WordPress,无需安装PHP既可跨平台运行WordPress。

在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 看看。

参考文档:

https://github.com/linezero/peachpie-wordpress

https://github.com/iolevel/peachpie-wordpress

http://www.peachpie.io/2017/02/wordpress-announcement.html

如果你觉得本文对你有帮助,请点击“推荐”,谢谢。

时间: 2024-10-26 05:07:05

NET Core WordPress的相关文章

WordPress引入css/js方法总结

WordPress引入css/js方法很多,条件很多.如何全局加载,或仅在某些页面精准加载,什么时候需要先注册脚本再加载,本文希望找到最简单的方式,并给出探索更多方法的途径. 在前台加载css/js 用wp_enqueue_script()函数加载js,用wp_enqueue_style()加载css,加载资源的位置(action)只有一个——wp_enqueue_scripts. 用wp_enqueue_系列函数可以更好的处理脚本样式表的依赖关系,防止重复加载,以twentyfifteen主题

WordPress常用插件

1.Remove Open Sans font Link from WP core 由于Wordpress后台外链加载了谷歌字体(代码位置在wordpress\wp-includes\script-loader.php第580行),而谷歌服务器访问慢或者被墙会严重影响页面加载速度.开启本插件后就会去除谷歌字体(而不是替代). 2.Loading Page with Loading Screen 加载页面元素时显示进度条.免费方案有限制但够用了.收费版本有自带的lazyload. 3.Media

CentOS7_LAMP-https-discuz搭建,WordPress搭建及phpMyadmin搭建_2015091901

CentOS 7 LAMP搭建---RPM安装 1.简单安装Apache,实现基于主机名虚拟主机功能 2.Apache+PHP+MariaDB,搭建LAMP 3.搭建phpmyadmin实现数据库图形化管理: 4.为pma.stux.com提供https服务 5.搭建wordpress论坛 6.搭建discuz论坛 虚拟机相关信息-- [[email protected] ~]# uname –r         //查看内核版本 3.10.0-229.el7.x86_64 [[email pr

WordPress 后台禁用Google Open Sans字体,加速网站

解决方法很简单,安装启用 Disable Google Fonts 或者 Remove Open Sans font Link from WP core 其中之一即可.或者如果你没有使用WP自带的官方主题,那你添加下面的代码到当前所用的主题的 functions.php 中即可: /** * WordPress 后台禁用Google Open Sans字体,加速网站 * http://www.wpdaxue.com/disable-google-fonts.html */ add_filter(

腾讯云-搭建 WordPress 个人博客

搭建 WordPress 个人博客 准备 LNMP 环境 任务时间:30min ~ 60min LNMP 是 Linux.Nginx.MySQL 和 PHP 的缩写,是 WordPress 博客系统依赖的基础运行环境.我们先来准备 LNMP 环境 00.安装 Nginx 使用 yum 安装 Nginx: yum install nginx -y 修改 /etc/nginx/conf.d/default.conf,去除对 IPv6 地址的监听[?],可参考下面的示例: 示例代码:/etc/ngin

(转)关闭WordPress自动加载的Open Sans字体,总是连接googleapi.com,导致打开wordpress很慢

转自http://www.xuanfengge.com/turn-off-automatic-loading-wordpress-open-sans-fonts.html 在网上搜了一番,有四种方法. (1)安装别人针对这个问题开发好的屏蔽加载谷歌字体的插件 (2)修改过滤函数function.php (3)自己手动替换到加载谷歌字体的路径 (4)使用GoAgent 我使用了第一种方法来解决问题, 下载插件: 1. 插件一 名称:Remove Open Sans font Link from W

25款漂亮的 WordPress 杂志主题

WordPress是一个免费和开源博客工具和一个内容管理系统(CMS)基于 PHP 和 MySQL,它运行在一个 Web 托管服务.每个月的 WordPress 主题是由开发人员,其中用户喜欢使用 WordPress 杂志主题的网站.杂志的主题包括滑块,网格布局,丰富多彩的内容.分页.菜单和许多功能让你的wordpress站点美丽和眼部感染. 今天,我们展示25美丽自由WordPress杂志主题与我们的观众.这些 WordPress 杂志主题充分响应和高级功能完全免费的,你可以立刻下载它们,今天

WordPress访问打开速度很慢的几种解决方法

最近WordPress网站访问特别的慢,有时间要加载一分钟才能完全打开,最初怀疑是服务器的问题,经过多方测试,还是没找到原因.后来,通过工具测出浏览器一直在加载fonts.googleapis.com,才发现了是原来是GOOGLE的外链资源影响了网站的速度! Wordpress很多主题用了谷歌的服务,现在谷歌被大规模屏蔽,速度受到了影响. WordPress 自3.9+版本后加入了Google Fonts,而最近GOOGLE在中国国内是无法访问的,所以,如果是在登陆状态下打开你的WordPres

Install WordPress Plugins without FTP Access

WordPress will only prompt you for your FTP connection information while trying to install plugins or a wordpress update if it cannot write to /wp-content directly. Otherwise, if your web server has write access to the necessary files, it will take c