如何在Heroku上的Rails应用程序的子URI上运行Wordpress博客


How to run Wordpress Blog on a Sub URI within a Rails App on Heroku

我有一个需要博客的rails应用程序。我看过各种rails cms和博客引擎,没有一个能满足我的需求。我想在一个子uri www.example.com/blog上添加Wordpress。我的申请托管在Heroku上。我能够在heroku上独立安装wordpress作为一个单独的应用程序,我试过用。htaccess文件将wordpress添加到公共文件夹,如下所示:

RewriteEngine On  
RewriteRule ^([^'.]+[^/])$ http://%{HTTP_HOST}/$1/ [R=301,L]  
RewriteBase /  
RewriteCond RewriteCond %{REQUEST_URI} ^/blog.*$
RewriteCond %{DOCUMENT_ROOT}/-%2 -d  
RewriteRule ^(.*)$ -%2/$1 [QSA,L]  

,但无济于事。我不能使用反向代理,因为我想有SSO(和共享导航栏等,真的不希望wordpress和我的应用程序是"独立"的heroku应用程序)之间的Rails应用程序和wordpress安装。有没有办法做到这一点

我想看看wordpress-heroku

就子URI而言,在不必要的情况下,您开始使事情变得更加复杂。如果你愿意,你可以运行两个Heroku应用程序,但不是使用文件夹路径,而是使用子域名,这样你的主应用程序运行在www.example.com上,你的博客运行在blog.example.com上。在这样的使用中,子域的使用得到了极大的尊重,并且使事情变得容易得多。

您是否能够访问服务器的虚拟主机文件?如果是这样,那么在服务器中添加以下内容可能是您的答案:

<VirtualHost ...>
  ServerName ...
  DocumentRoot ...
  <Location /blog>
     PassengerEnabled off
     <IfModule mod_rewrite.c>
       RewriteEngine On
       RewriteBase /blog/
       RewriteCond %{REQUEST_FILENAME} !-f
       RewriteCond %{REQUEST_FILENAME} !-d
       RewriteRule . /blog/index.php [L]
     </IfModule>
  </Location>
</VirtualHost>

然而,我想这也取决于rails应用程序是如何部署的,以及公共文件夹是否在部署时更新。您可能需要对公用文件夹进行符号链接,这样就不会在每次部署站点时更新该文件夹。

我不知道这是否适用于从未使用过他们服务的Heroku,但希望它能有所帮助。

来源:http://ziyedbd.wordpress.com/2012/05/11/deploying-wordpress-blog-inside-ruby-on-rails-application/

符号链接信息:http://linux.byexamples.com/archives/19/how-to-create-symlink/