Title: Re: [Rails] Re: Rails & PHP

Matt,


Saturday, April 7, 2012, 1:43:46 PM, you wrote:





On Friday, 6 April 2012 15:53:13 UTC-4, RalphShnelvar wrote:

I am inheriting a legacy PHP website and I want to add a few Rails pages.

Is there anyone who can recommend some info on how to add RoR to a PHP-driven website?

Ralph Shnelvar


Depends on what you mean by "PHP-driven" - if it's doing its own URL rewriting (Wordpress's clean URLs, for instance) you're probably best served putting the Rails stuff on a subdomain or in a subdirectory.


On the other hand, if it's a plain PHP site where URLs just end in .php everywhere, you can do some mod_rewrite magic (tune the paths as appropriate):


  RewriteCond /home/web/public_html/%{REQUEST_URI} -f

  RewriteRule ^(.*) /home/web/public_html/$1 [QSA,L]

  RewriteCond /home/web/public_html/%{REQUEST_URI}/index.php -f

  RewriteRule ^(.*) /home/web/public_html/$1/index.php [QSA,L]


Then point your DocumentRoot to the public dir in your Rails app, as Passenger's instructions indicate, and add this:


  <Directory /home/web/public_html>

    PassengerEngine off

   </Directory>


to the Apache config as well, to avoid confusing Passenger with stuff in PHP-land. The result will be that any incoming URL which matches either an actual PHP file, or a directory with an index.php file will be handled by PHP, while everything else goes to the Rails app.


One other thing - for additional integration, you may want to access the PHP session from the Rails app. (Going the other way is NOT recommended, as you'd need to be able to un-Marshal Ruby objects in PHP) To do this, you'll need a gem like php-serialize (https://github.com/jqr/php-serialize) and you'll need to find where your particular PHP installation stores session data - sometimes this is in /tmp, sometimes elsewhere. The files are typically named after the session token (found in "cookies['PHPSESSID']" in your controllers). PHP does some locking to avoid multiple writers messing the whole thing up, but I've only ever needed to *read* from the PHP session, so I'm not sure exactly how that works.


Hope this helps!


--Matt Jones

-- 

You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.

To view this discussion on the web visit https://groups.google.com/d/msg/rubyonrails-talk/-/FAV9sfY553sJ.

To post to this group, send email to [email protected].

To unsubscribe from this group, send email to [email protected].

For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.


This is way over my head although I have some glimpses of understanding.


I thank you for taking the time to write all this tuff.  I'll save it and cogitate when I know a lot more.



-- 

Best regards,

 Ralph                            mailto:[email protected]

--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to [email protected].
For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.

Reply via email to