您可以安装Ghost(http://ghost.org),使其在现有的node.js Express应用程序(例如:{my domain} / blog)中运行吗?

我正在使用Azure网站托管网站。

请注意:我希望可以在任何平台上运行的通用解决方案...但是,我想我要提到的是,它在Azure上提供了一种简单的方法来实现。

最佳答案

是的,你可以这么做。

您将需要:

1.添加一个新的博客应用程序

基本上转到门户->配置选项卡->一直滚动到底部并添加类似的内容



2.将Ghost配置为在子文件夹上运行

将Ghost发布到您在上述步骤中映射到应用程序的任何文件夹。
您可以使用FTP,webdeploy或SCM(https://<YouSiteName>.scm.azurewebsites.net/DebugConsole
这就是我所选择的,我的文件夹布局如下所示



igonre deployments文件夹,与此无关

config.js for Ghost中的Production环境节点下,确保您的URL为

production: {
        url: 'http://<YourSiteName>.azurewebsites.net/blog',
        mail: {
          ......
         }
 }


3.修复主站点的web.config

转到您的主要站点web.config并将整个<system.webServer>元素包装在<location path="." inheritInChildApplications="false">

基本上您的web.config应该看起来像这样

<configuration>
    <system.webServer>
         <handlers>
              <add name="iisnode" path="server.js" verb="*" modules="iisnode"/>
        </handlers>
        <rewrite>
             <rules>
                 <!-- Some rewrite rules -->
             </rules>
        </rewrite>
        ....
   </system.webServer>
</configuration>


现在看起来像这样

<configuration>
    <location path="." inheritInChildApplications="false">
         <system.webServer>
              <handlers>
                   <add name="iisnode" path="server.js" verb="*" modules="iisnode"/>
             </handlers>
             <rewrite>
                  <rules>
                      <!-- Some rewrite rules -->
                  </rules>
             </rewrite>
             ....
       </system.webServer>
   </location>
</configuration>


请注意,这是针对您所使用的Express.js主站点而不是Ghost网站

那应该就是你要做的。

关于node.js - 如何在Azure上的现有node.js应用程序中安装Ghost?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23938899/

10-13 00:38