#1
  1. Contributing User
    Devshed Newbie (0 - 499 posts)

    Join Date
    Dec 2009
    Posts
    335
    Rep Power
    246

    Catalyst install & config for IIS7


    Hi,

    Does anyone know how to get Catalyst working on IIS7, I've followed the poor documentation on Wiki for IIS7 but I can't get it to work. Not to mention it bangs on about strawberry perl and I'm running Active-State and can't find any Active-State documentation?

    I've mapped the FASTCGI but that just gives 500 error in browser and if I try to run the application server with -r for devel I get the following error.


    C:\Websites\members>perl script/members_server.pl -r
    Can't locate Proc/Background.pm in @INC (@INC contains: C:\Websites\members\
    lib C:/Perl/site/lib C:/Perl/lib .) at C:/Perl/site/lib/Catalyst/Restarter/Win32
    .pm line 4.
    BEGIN failed--compilation aborted at C:/Perl/site/lib/Catalyst/Restarter/Win32.p
    m line 4.
    Compilation failed in require at C:/Perl/site/lib/Catalyst/Utils.pm line 306.
    All help appreciated.

    1DMF.
    Free MP3 Dance Music Downloads

    To err is human; To really balls things up you need Microsoft!
  2. #2
  3. Contributing User
    Devshed Newbie (0 - 499 posts)

    Join Date
    Dec 2009
    Posts
    335
    Rep Power
    246
    Well I manually installed Proc::Background and now the devel server runs and I can get my app welcome page to appear with localhost:3000.

    I still cannot get the actual app to run via a standard web browser via a DNS pointing to my webapp in IIS7. (virtual host).

    I just get '500 - internal server error'?

    How do I map a virtual host in IIS7 to my catalyst app?

    How do I configure the app to listen for request on a specific port?

    Help is seriously appreciated.

    1DMF
    Free MP3 Dance Music Downloads

    To err is human; To really balls things up you need Microsoft!
  4. #3
  5. Contributing User
    Devshed Newbie (0 - 499 posts)

    Join Date
    Dec 2009
    Posts
    335
    Rep Power
    246
    OK, found the problem, when I mapped the perl app to for the FASTGCI handler - I had a space in the following
    Code:
    c:\perl\bin\perl.exe|c:\mypath\WebApp\script\webapp_fastcgi.pl -e
    after the pipe!

    Note for others, there must not be a space either side of the pipe in the above FastCGI mapping!
    Free MP3 Dance Music Downloads

    To err is human; To really balls things up you need Microsoft!
  6. #4
  7. Contributing User
    Devshed Newbie (0 - 499 posts)

    Join Date
    Dec 2009
    Posts
    335
    Rep Power
    246
    OK, why can't I get the site to run over SSL?

    I have set the binding to port 3000, I have set SSL to require, we have a go daddy wildcard SSL installed.

    If I point my browser to https://myapp:3000 , it doesn't work.

    If I point to https://myapp, it loads our standard website not the subdomain which is configured as a new website under IIS7 for this catalsyt app?

    What am I doing wrong?

    Thanks,
    1DMF
    Free MP3 Dance Music Downloads

    To err is human; To really balls things up you need Microsoft!
  8. #5
  9. No Profile Picture
    Registered User
    Devshed Newbie (0 - 499 posts)

    Join Date
    Sep 2012
    Posts
    24
    Rep Power
    0
    If really you want to install IIS7.0 in your Personal computer then you must install Windows Server 2008.
    As it works best with 2008 server.
  10. #6
  11. Contributing User
    Devshed Newbie (0 - 499 posts)

    Join Date
    Dec 2009
    Posts
    335
    Rep Power
    246
    This is on a Windows 2008 R2 server!

    I forgot to add...

    I think the main problem is I need the firewall port opening relative to the port I have set the website to listen on.

    Plus I need to assign another local IP address to the NIC on the server so the SSL can be bound to that IP, as IIS7 through the GUI won't allow multiple sites on the same IP or port to have SSL installed.

    So I need another internal IP for binding SSL to for the catalyst web app, then the port opening on firewall and then use port forwarding to map the external request to the internal IP for HTTPS traffic.

    (Please correct me if I'm wrong)

    However, the server support guys, don't know the credentials for our systems as the Boss is away on holiday and turns out he's the only one in the know!

    So it will have to wait till he's back!

    Cheers,
    1DMF
    Last edited by 1DMF; October 16th, 2012 at 04:34 AM.
    Free MP3 Dance Music Downloads

    To err is human; To really balls things up you need Microsoft!
  12. #7
  13. No Profile Picture
    Grumpier old Moderator
    Devshed Supreme Being (6500+ posts)

    Join Date
    Jun 2003
    Posts
    14,443
    Rep Power
    4539
    If I knew any answers to your questions I'd try to help, but I don't, sorry.
    ======
    Doug G
    ======
    Bartender to Rene Descartes "have another beer?" Descartes: "I think not" and he vanished.
    --Alfred Bester
  14. #8
  15. No Profile Picture
    Contributing User
    Devshed Regular (2000 - 2499 posts)

    Join Date
    May 2004
    Location
    surfing the interwebz
    Posts
    2,410
    Rep Power
    2005
    I found an article in regards to binding multiple sub-domains to port 443; such as site1.domain.com, site2.domain.com, etc... If that's what you're trying to do, have a look at this article and let us know if it works for you.
  16. #9
  17. Contributing User
    Devshed Newbie (0 - 499 posts)

    Join Date
    Dec 2009
    Posts
    335
    Rep Power
    246
    Yes, I'm aware of a command line method to bind multiple sites to the same port for SSL, but the hosting company doesn't want me to do it that way!

    on top of which I can't get Catalyst to work with IIS7 as it isn't matching the path for routing controllers?

    All that runs regardless of the URL is the standard Root.pm
    Code:
    sub index :Path :Args(0)
    no matter what url I use
    http://mydomain/MyController/MyMethod
    it doesn't work and just runs the Root 'index' sub regardless?

    I've ran out of ideas and can't find any documentation on this, so if you know why IIS7 won't URL match the path to controller correctly for Catalyst applications, it would be appreciated.

    Free MP3 Dance Music Downloads

    To err is human; To really balls things up you need Microsoft!
  18. #10
  19. Contributing User
    Devshed Newbie (0 - 499 posts)

    Join Date
    Dec 2009
    Posts
    335
    Rep Power
    246
    Well I finally found the answer with the help of the nice folks on the Catalyst community mailing list.

    Turns out there is a config setting that needs to be set when running over IIS which wasn't in the IIS7->FastCGI installation instructions!

    'use_request_uri_for_path' config variable needs to be set to true (1).
    https://metacpan.org/module/Catalyst#CONFIGURATION

    The path->routing->controller->action is now functioning correctly.
    Free MP3 Dance Music Downloads

    To err is human; To really balls things up you need Microsoft!
  20. #11
  21. No Profile Picture
    Grumpier old Moderator
    Devshed Supreme Being (6500+ posts)

    Join Date
    Jun 2003
    Posts
    14,443
    Rep Power
    4539
    Thanks for posting the solution.
    ======
    Doug G
    ======
    Bartender to Rene Descartes "have another beer?" Descartes: "I think not" and he vanished.
    --Alfred Bester

IMN logo majestic logo threadwatch logo seochat tools logo