Install fcgi-ruby for Apache on Windows Xp

Hello

I need some help with gem fcgi-ruby-0.8.8. I have tried to create from
the source rubygem, but in Windows Xp, always i get a lot of errors and
the process is aborted.

I have tried also to make a direct install of the gem, but always i get
an error about the “Ruby Native Extensions”. This is a common error that
i have also obtained when i have tried to install other extensions like
“Sqlite3” and “Ruby-Postgres”.

My question is?. Is there any way to obtain the correct native
extensions and compile fcgi and other extensions without obtain this
error?.

My OS is Windows-Xp SP3 and my Web Server Apache 2.2.14. I have
installed also Mingw and Msys, if it were an alternative way to compile
the modules i have mentioned.

Thank you.

Javier A.

On Mar 9, 11:13 am, Javier A. [email protected] wrote:

My question is?. Is there any way to obtain the correct native
extensions and compile fcgi and other extensions without obtain this
error?.

My OS is Windows-Xp SP3 and my Web Server Apache 2.2.14. I have
installed also Mingw and Msys, if it were an alternative way to compile
the modules i have mentioned.

Thank you.

Please provide more information about the ruby version you’re using.
More precisely, if you’re using downloads from ruby-lang, from old One-
Click Installer or the newer RubyInstaller project.

“ruby -v” output will be helpful.

Also, if you’re using 1.8 or 1.9 versions of Ruby, as it is unknown to
me if fcgi-ruby extension is compatible with Ruby 1.9.

As you see, that information is required to actually help you.

Please include also the gem installation output: gem install xxx –
debug -V

Javier A. wrote:

I need some help with gem fcgi-ruby-0.8.8

I believe the gem is called ‘fcgi’: gem install fcgi
(at least it was when I installed it a couple of days ago :slight_smile:

To install the C native version will require a C compiler and the fcgi
development kit version 2.4.0, available from www.fastcgi.com, which
you’ll also have to compile.

However I seem to remember that fcgi has a ‘pure ruby’ implementation
too. I don’t know how you’d tell ‘gem install’ not to attempt to build
the C version. It may be easier just to install fcgi directly from the
source bundle:
http://rubyforge.org/frs/?group_id=926&release_id=42628

Javier A. wrote:

make
make: *** No rule to make target /usr/include/ruby-1.9.1/ruby.h', needed byfcgi.o’. Stop.

Then you need ruby’s development header files as well.

If this were an Ubuntu box, I’d say install the package ruby1.8-dev or
whatever.

However I don’t know how you’d do it on Windows. You’d have to find out
where your Windows install came from, and whether they offer the header
files as a separate package.

Also would be an error in the Makefile,
because of the “/usr/include/ruby-1.9.1”, as my Ruby Directory is
“c:/Ruby19”.

It could be a hard-coded assumption, although it should be using
rbconfig to find the files where they were built. What happens if you do
this in IRB?

require ‘rbconfig’
=> true

Config::CONFIG[‘includedir’]
=> “/usr/include”

If you see “/usr/include” then the person who built your ruby built it
with that as the system header directory.

If you can’t work out how to do this (and remember I’m not a Windows
user so I can’t help you much), I’d say your best option is to use the
pure-ruby fcgi library. This is simply lib/fcgi.rb inside the gem. You
can see that it tries to load fcgi.so, and if that fails, just builds
the FCGI class from ruby code.

Hi,

Thanks for your help. I have downloaded and compiled the development kit
fastcgi-2.4.0 , and i have seen that it contains the fcgiapp.h source
that i need to compile ruby-fcgi-0.8.9. The problem is that when i try
to install (gem install ruby-fcgi-0.8.9 --remote), i get the following
error:

C:\fcgi\include>gem install ruby-fcgi --remote
Building native extensions. This could take a while…
ERROR: Error installing ruby-fcgi:
ERROR: Failed to build gem native extension.

C:/Ruby19/bin/ruby.exe extconf.rb
checking for fcgiapp.h… no
checking for fastcgi/fcgiapp.h… no

make
make: *** No rule to make target /usr/include/ruby-1.9.1/ruby.h', needed by fcgi.o’. Stop.

Gem files will remain installed in
C:/Ruby19/lib/ruby/gems/1.9.1/gems/ruby-fcgi-0.8.9 for inspection.
Results logged to
C:/Ruby19/lib/ruby/gems/1.9.1/gems/ruby-fcgi-0.8.9/ext/fcgi/gem_make.out

C:\fcgi\include>gem uninstall ruby-fcgi
ERROR: While executing gem … (Gem::InstallError)
cannot uninstall, check gem list -d ruby-fcgi

C:\fcgi\include>gem uninstall ruby-fcgi-0.8.9
ERROR: While executing gem … (Gem::InstallError)
cannot uninstall, check gem list -d ruby-fcgi-0.8.9

C:\fcgi\include>

I have set the route to fcgiapp.h in my path environment variables, but
the rubygems can’t find it. Also would be an error in the Makefile,
because of the “/usr/include/ruby-1.9.1”, as my Ruby Directory is
“c:/Ruby19”.

Thanks a lot.

Javier A…

Brian C. wrote:

Javier A. wrote:

I need some help with gem fcgi-ruby-0.8.8

I believe the gem is called ‘fcgi’: gem install fcgi
(at least it was when I installed it a couple of days ago :slight_smile:

To install the C native version will require a C compiler and the fcgi
development kit version 2.4.0, available from www.fastcgi.com, which
you’ll also have to compile.

However I seem to remember that fcgi has a ‘pure ruby’ implementation
too. I don’t know how you’d tell ‘gem install’ not to attempt to build
the C version. It may be easier just to install fcgi directly from the
source bundle:
http://rubyforge.org/frs/?group_id=926&release_id=42628

The execution in IRB was:

require ‘rbconfig’
=> true

Config::CONFIG[‘includedir’]
=> “c:/ruby19/include”

But when i try to install gem ruby-fcgi-0.8.9 the Makefile generate a
full of errors. Even, is configurated for i486-linux. So i think, it’s
no possible do a good configuration for Windows. Only if you hard coded
Makefile on hand.

Thank you.

Brian C. wrote:

Javier A. wrote:

make
make: *** No rule to make target /usr/include/ruby-1.9.1/ruby.h', needed byfcgi.o’. Stop.

Then you need ruby’s development header files as well.

If this were an Ubuntu box, I’d say install the package ruby1.8-dev or
whatever.

However I don’t know how you’d do it on Windows. You’d have to find out
where your Windows install came from, and whether they offer the header
files as a separate package.

Also would be an error in the Makefile,
because of the “/usr/include/ruby-1.9.1”, as my Ruby Directory is
“c:/Ruby19”.

It could be a hard-coded assumption, although it should be using
rbconfig to find the files where they were built. What happens if you do
this in IRB?

require ‘rbconfig’
=> true

Config::CONFIG[‘includedir’]
=> “/usr/include”

If you see “/usr/include” then the person who built your ruby built it
with that as the system header directory.

If you can’t work out how to do this (and remember I’m not a Windows
user so I can’t help you much), I’d say your best option is to use the
pure-ruby fcgi library. This is simply lib/fcgi.rb inside the gem. You
can see that it tries to load fcgi.so, and if that fails, just builds
the FCGI class from ruby code.

Javier A. wrote:

The first problem is that i can’t find the fcgiapp.h or
fastcgi/fcgiapp.h that i think are header files that managed the native
extensions.They are in the include folder of the fastcgi-2.4.0 kit, but
the gem install don’t found them.

You could try

set CPPFLAGS=-I/path/to/dir
set LDFLAGS=-L/path/to/lib

If you’re going to do this sort of stuff, I suggest you don’t install
using rubygems. Rather, use the setup.rb which comes inside the fcgi
source tarball.

Googling for “ruby fcgi windows” turns up some interesting stuff, such
as
http://www.napcsweb.com/howto/rails/deployment/railsonIISWithApacheFCGI.pdf
although it doesn’t address how to get fcgi installed for Windows. I
guess they are just using the pure-ruby version.

Finally: if you’re installing a 0.8.9 version, that’s someone’s fork.
The “official” fcgi is 0.8.8 (the one on rubyforge.org anyway). You
could try contacting whoever forked the code for help.

The first problem is that i can’t find the fcgiapp.h or
fastcgi/fcgiapp.h that i think are header files that managed the native
extensions.They are in the include folder of the fastcgi-2.4.0 kit, but
the gem install don’t found them.

I have compiled fastcgi-2.4.0, and i have obtained the “cgi-fcgi.exe”
and “libfcgi.dll”, but perhaps, i haven’t installed the files correctly
and the rubygems install procedure can’t find it.Perhaps this would be
the problem.

The documentation of fastcgi-2.4.0 says how to compile the source, but
not how to set the folders an install these on Windows environment.

Thank you.

Javier A…

Javier A. wrote:

The execution in IRB was:

require ‘rbconfig’
=> true

Config::CONFIG[‘includedir’]
=> “c:/ruby19/include”

But when i try to install gem ruby-fcgi-0.8.9 the Makefile generate a
full of errors. Even, is configurated for i486-linux. So i think, it’s
no possible do a good configuration for Windows. Only if you hard coded
Makefile on hand.

Thank you.

Brian C. wrote:

Javier A. wrote:

make
make: *** No rule to make target /usr/include/ruby-1.9.1/ruby.h', needed byfcgi.o’. Stop.

Then you need ruby’s development header files as well.

If this were an Ubuntu box, I’d say install the package ruby1.8-dev or
whatever.

However I don’t know how you’d do it on Windows. You’d have to find out
where your Windows install came from, and whether they offer the header
files as a separate package.

Also would be an error in the Makefile,
because of the “/usr/include/ruby-1.9.1”, as my Ruby Directory is
“c:/Ruby19”.

It could be a hard-coded assumption, although it should be using
rbconfig to find the files where they were built. What happens if you do
this in IRB?

require ‘rbconfig’
=> true

Config::CONFIG[‘includedir’]
=> “/usr/include”

If you see “/usr/include” then the person who built your ruby built it
with that as the system header directory.

If you can’t work out how to do this (and remember I’m not a Windows
user so I can’t help you much), I’d say your best option is to use the
pure-ruby fcgi library. This is simply lib/fcgi.rb inside the gem. You
can see that it tries to load fcgi.so, and if that fails, just builds
the FCGI class from ruby code.