Hi,
I am new to this forum. so forgive me if my post replicating old post.
Ok I have a ruby script with xml input file. ruby script extract
required info from xml file and present in html output with help of
nokogiri lib.
Ruby script is working fine. right now, we need to install ruby and
nokogiri on all machines to run ruby script. I want to put it like a
website. so i configured apache over my ubuntu machine. its working
fine. i can access index page on server from all machines.
What i want?
I want to design html page with form tag like:
Please specify a file
</form
So whenever user select xml file and press send. input file should go to
ruby script on server and html output will be generated. user get output
over his/her browser. I dont know how to do it
i am trying to figure
it out.
You’ll want to check out one of the many Ruby web frameworks. If all you
want is something simple like this, I’d suggest using Sinatra:
http://sinatrarb.com/
Since you’re using Apache, I’d suggest phusion passenger to get it
talking
with Sinatra: http://www.modrails.com/
Steve K. wrote in post #964767:
You’ll want to check out one of the many Ruby web frameworks. If all you
want is something simple like this, I’d suggest using Sinatra:
http://sinatrarb.com/
Since you’re using Apache, I’d suggest phusion passenger to get it
talking
with Sinatra: http://www.modrails.com/
this looks quite complicated to me 
is there any way, i can just invoke ruby script on server side?
Also, how i can feed input tag of form as input to my ruby script?
On Wed, Dec 1, 2010 at 9:34 AM, Rajesh H. [email protected]
wrote:
is there any way, i can just invoke ruby script on server side?
You mean using CGI? Its possible. You will need to configure your web
server
for it. Its slow though.
Also, how i can feed input tag of form as input to my ruby script?
Check out the ruby CGI library. I would guess that is a good starting
point
for what you want to achieve.
http://ruby-doc.org/core/classes/CGI.html
For something simple, you really cant beat Sinatra. It is not typical to
make Ruby web programs just using CGI, or have PHP-like deployment.
On 2010-12-01, at 4:34 AM, Rajesh H. wrote:
Steve K. wrote in post #964767:
You’ll want to check out one of the many Ruby web frameworks. If all you
want is something simple like this, I’d suggest using Sinatra:
http://sinatrarb.com/
Since you’re using Apache, I’d suggest phusion passenger to get it
talking
with Sinatra: http://www.modrails.com/
this looks quite complicated to me 
If you can configure Apache, you’re going to find this easy 
Have a look at the sinatra book:
http://sinatra-book.gittr.com/
or this video:
http://rubyconf2008.confreaks.com/lightweight-web-services.html
is there any way, i can just invoke ruby script on server side?
Also, how i can feed input tag of form as input to my ruby script?
All that is covered in both of those links.
Cheers,
Bob
–
Posted via http://www.ruby-forum.com/.
Bob H.
Recursive Design Inc.
http://www.recursive.ca/
weblog: Xampl.com is for sale | HugeDomains
Ok guys, thnx for the answers… i am freaked out with all experiments 
here is the code snipshots:
index.php:
Please specify a file to Parse:
upload.php:
<?php
if (//some check)
{
//some code
}
else
{
//some code
system('ruby -v'); // This is giving proper output i.e ruby version
system('ruby myprogram.rb'); // no action
}
?>
myprogram.rb is executing fine over shell but when i try to execute via
upload.php, nothing is happening. Any idea why ruby not working on
server side when accessing via upload.php ?
do i need to do anything on apache side?
i dont have any ruby handler installed on apache? is this could be the
reason?
On Tue, Dec 07, 2010 at 03:10:37AM +0900, Rajesh H. wrote:
system(‘ruby -v’); // This is giving proper output i.e ruby version
system(‘ruby myprogram.rb’); // no action
myprogram.rb is executing fine over shell but when i try to execute via
upload.php, nothing is happening. Any idea why ruby not working on
server side when accessing via upload.php ?
I suspect you are having some path issues. The PHP script probably
isn’t
“aware” of how to find the myprogram.rb script. Try using the full path
to the Ruby script there.
Then . . . assuming that works, you might want to look into how you can
make path handling a little more robust and flexible. First step, of
course, is just making sure that the Ruby program will work in this
context, and you should be able to do it with something like:
system('ruby /absolute/path/to/myprogram.rb');
do i need to do anything on apache side?
It’s probably related to the execution context of your PHP script (what
it “thinks” is its current working directory) and the location of your
Ruby program.
i dont have any ruby handler installed on apache? is this could be the
reason?
That should not affect the execution of a Ruby script via PHP’s system()
function, as far as I’m aware.
do user will have a possibilty to pass any parameters to system() call ?
Chad P. wrote in post #966635:
On Tue, Dec 07, 2010 at 03:10:37AM +0900, Rajesh H. wrote:
system(‘ruby -v’); // This is giving proper output i.e ruby version
system(‘ruby myprogram.rb’); // no action
myprogram.rb is executing fine over shell but when i try to execute via
upload.php, nothing is happening. Any idea why ruby not working on
server side when accessing via upload.php ?
I suspect you are having some path issues. The PHP script probably
isn’t
“aware” of how to find the myprogram.rb script. Try using the full path
to the Ruby script there.
I checked with getcwd(); // current working directory on server
In this case, myprogram.rb lies in same directory as current working
directory. do you think, its still path problem?
Then . . . assuming that works, you might want to look into how you can
make path handling a little more robust and flexible. First step, of
course, is just making sure that the Ruby program will work in this
context, and you should be able to do it with something like:
system('ruby /absolute/path/to/myprogram.rb');
do i need to do anything on apache side?
It’s probably related to the execution context of your PHP script (what
it “thinks” is its current working directory) and the location of your
Ruby program.
current working directory and location of ruby program is same
i dont have any ruby handler installed on apache? is this could be the
reason?
That should not affect the execution of a Ruby script via PHP’s system()
function, as far as I’m aware.
Good Afternoon,
Can I ask the stupid question? Why not recode the ruby script in PHP if
you
are unwilling to do this the right way and use something along the lines
of
Sinatra et al.?
John
John W Higgins wrote in post #966680:
Good Afternoon,
Can I ask the stupid question? Why not recode the ruby script in PHP if
you
are unwilling to do this the right way and use something along the lines
of
Sinatra et al.?
John
because ruby script use some library(nokogiri) which is not so easy to
recode in php 
thnx for all replied… problem is solved… we did not installed anything
extra… no sintara nothing… just put everything in home directory for
apache. its working fine.
Eugeni A. wrote in post #966675:
do user will have a possibilty to pass any parameters to system() call ?
system takes all linux commands with options. i am not sure about
parameters 