如何在Azure上的现有node.js应用程序中安装Ghost?

时间:2014-05-29 17:05:26

标签: node.js azure express azure-web-sites ghost-blog

你能安装Ghost(http://ghost.org),以便它在现有的node.js express应用程序中运行(如:{my domain} / blog)?

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

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

3 个答案:

答案 0 :(得分:2)

是的,你可以做到。

您需要:

1。添加新的博客应用程序

基本上去门户网站 - >配置标签 - >一直滚动到底部并添加类似这样的内容

add application

2。配置Ghost以在子文件夹

上运行

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

console

igonre deployments文件夹,它与此无关

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

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站点的主站点

应该就是你需要做的一切。

答案 1 :(得分:0)

不确定您是否可以将其作为现有网站的附加内容进行安装,但Ghost在Azure网站库中作为可部署模板存在,位于博客下:

enter image description here

答案 2 :(得分:0)

这不是您正在寻找的完整答案,但有关如何在Azure网站上手动安装Ghost的这些说明可能有助于指导您朝着正确的方向: http://www.hanselman.com/blog/HowToInstallTheNodejsGhostBloggingSoftwareOnAzureWebsites.aspx