Stegalex has asked for the wisdom of the Perl Monks concerning the following question:

Fellow monks, After pulling my hair out and using super search and the ecos.de maillist archive, I once again have the temerity to pose the following question to you: I have had much success using HTML::Embperl as an alternative to CGI with the exception that I can't seem to get it to work properly with virtual hosts. As soon as I install an Embperl handler in a Location directive in Apache, my webserver ignores my virtual hosts. If anyone has successfully fought through this problem, please enlighten me. Otherwise, just ignore my humble posting. I like chicken.

Replies are listed 'Best First'.
Re: HTML::Embperl and Virtual Hosts
by perrin (Chancellor) on Apr 09, 2002 at 03:20 UTC
    You should really ask this on the Embperl and/or mod_perl mailing lists. You're much more likely to get a good answer there. Also, when you ask a question like this you should post your conf file. I would have at least looked at it here to see if there was anything obviously wrong with it.
Re: HTML::Embperl and Virtual Hosts
by gregorovius (Friar) on Apr 09, 2002 at 14:56 UTC
    I haven't used the Location directive, but I can show you my .htaccess file, which allows me to run Embperl on a virtual host on a mod_perl shared hosting plan (I know running mod_perl apps under shared hosting entails the risk of others wreaking havoc on my app, but I don't currently mind that risk).

    I use the FilesMatch directive, which will make the Embperl handler be used for all files matching a given regular expression.

    PerlSetEnv EMBPERL_SESSION_CLASSES "MySQL MySQL" PerlSetEnv EMBPERL_SESSION_ARGS "DataSource=dbi:mysql:xxx UserName=xxx + Password=xxx LockDataSource=dbi:mysql:xxx LockUserName=xxx LockPassw +ord=xxx" SetEnv EMBPERL_COOKIE_PATH / <FilesMatch ".*\.htm.?"> PerlModule MD5 PerlSetEnv EMBPERL_FILESMATCH "\.htm.?|\.epl$" PerlSetEnv EMBPERL_OBJECT_BASE base.htm SetHandler perl-script PerlHandler HTML::EmbperlObject Options ExecCGI </FilesMatch> <FilesMatch ".*\.pl"> SetHandler perl-script PerlHandler Apache::Registry Options +ExecCGI </FilesMatch>
    Note (aside from your question) that I use the built in session handling capability, and I set EMBPERL_COOKIE_PATH to /. That is necessary to make sure your visitors get only one cookie set at the base path, and not individual sessions for each subdirectory in your application.

    Hope this helps.