Loading ...
Sorry, an error occurred while loading the content.

Re: Problems with section

Expand Messages
  • Stas Bekman
    ... From Changes: =item 1.21_03 - March 15, 2000 new variable $Apache::Server::StrictPerlSections, if true, will croak section generates invalid Apache
    Message 1 of 5 , Jul 2, 2004
    View Source
    • 0 Attachment
      benoit wrote:
      > Ok, now I'm ashamed.
      >
      > After some more RTFM, I found that there was a missing-closing-parens
      > festival going on in my configuration file...
      >
      > So, for the record and/or those who will find this message some
      > debugging day :
      >
      > I followed the suggestion of Pratical Mod_perl, p.132 : I've added a a
      > #!/usr/bin/perl
      > and
      > __END__ in my <perl> block.
      >
      > Then, I ran my configuration file with regular Perl :
      >
      > $ cd [in my apache server root]
      > $ perl -cx conf/httpd.conf
      >
      > And Perl informed me a bit more about my stupidity.

      From Changes:
      =item 1.21_03 - March 15, 2000

      new variable $Apache::Server::StrictPerlSections, if true, will croak
      <Perl> section generates invalid Apache configuration syntax

      Does it do the trick? I'm not sure why it's not documented.

      > Anyway, I would like to mention that this would be really, really great
      > if this kind of error would show up somewhere, at least when one is
      > running in "Debug-mode" like I did... Is it something that is present in
      > mod_perl v2 (from my readings, I would say No)? If not, could it be?

      In mp2 <Perl> sections errors are fatal by default (will be shortly)


      --
      __________________________________________________________________
      Stas Bekman JAm_pH ------> Just Another mod_perl Hacker
      http://stason.org/ mod_perl Guide ---> http://perl.apache.org
      mailto:stas@... http://use.perl.org http://apacheweek.com
      http://modperlbook.org http://apache.org http://ticketmaster.com

      --
      Report problems: http://perl.apache.org/bugs/
      Mail list info: http://perl.apache.org/maillist/modperl.html
      List etiquette: http://perl.apache.org/maillist/email-etiquette.html
    • benoit
      ... Where should I put this? I ve tried adding it in my single section, or even in a stand-alone block at the beginning of my httpd.conf, but if I
      Message 2 of 5 , Jul 2, 2004
      View Source
      • 0 Attachment
        Stas Bekman wrote:
        > From Changes:
        > =item 1.21_03 - March 15, 2000
        >
        > new variable $Apache::Server::StrictPerlSections, if true, will croak
        > <Perl> section generates invalid Apache configuration syntax
        >
        > Does it do the trick? I'm not sure why it's not documented.
        >

        Where should I put this?

        I've tried adding it in my single <perl> section, or even in a
        stand-alone block at the beginning of my httpd.conf, but if I
        intentionnally break my perl code, I come back with the problem I had,
        ie. a silent failing of httpd -X and a "could not bind to port 80" in
        the error_log.

        As for the documentation of this feature, the "Practical mod_perl" book
        (which I love, btw!) says "if you set this variable to a true value
        [snip] then mod_perl will not tolerate invalid Apache configuration
        syntax and will croak if it encounters invalid syntax." So, it should
        croak only if one use un-localized variable name (which it seems to do
        by default). But it's not a "padding" for possible _Perl_ syntax errors.
        Maybe now is the time when I should take my first peak under the hood of
        mod_perl, but I guess that those Perl sections are eval-ed, no? If it's
        the case, the @! could be catch and the error reported.

        >> Anyway, I would like to mention that this would be really, really
        >> great if this kind of error would show up somewhere, at least when one
        >> is running in "Debug-mode" like I did... Is it something that is
        >> present in mod_perl v2 (from my readings, I would say No)? If not,
        >> could it be?
        >
        >
        > In mp2 <Perl> sections errors are fatal by default (will be shortly)
        >
        >

        I'll try my broken configuration under mp2 when I'll find some time, to
        see how it behaves. I have'nt had time to play with it yet ; I'm just
        back in a mod_perl job after nearly 2 years of *gasp* PHP. :P

        --
        Report problems: http://perl.apache.org/bugs/
        Mail list info: http://perl.apache.org/maillist/modperl.html
        List etiquette: http://perl.apache.org/maillist/email-etiquette.html
      • Stas Bekman
        ... startup.pl if it s loaded before perl sections or a simple section. ... Thanks :) ... No, no, it should croak on all errors. It s not an equivalent
        Message 3 of 5 , Jul 2, 2004
        View Source
        • 0 Attachment
          benoit wrote:
          >
          >
          > Stas Bekman wrote:
          > > From Changes:
          >
          >> =item 1.21_03 - March 15, 2000
          >>
          >> new variable $Apache::Server::StrictPerlSections, if true, will croak
          >> <Perl> section generates invalid Apache configuration syntax
          >>
          >> Does it do the trick? I'm not sure why it's not documented.
          >>
          >
          > Where should I put this?

          startup.pl if it's loaded before perl sections or a simple <perl> section.

          > I've tried adding it in my single <perl> section, or even in a
          > stand-alone block at the beginning of my httpd.conf, but if I
          > intentionnally break my perl code, I come back with the problem I had,
          > ie. a silent failing of httpd -X and a "could not bind to port 80" in
          > the error_log.
          >
          > As for the documentation of this feature, the "Practical mod_perl" book
          > (which I love, btw!)

          Thanks :)

          > says "if you set this variable to a true value
          > [snip] then mod_perl will not tolerate invalid Apache configuration
          > syntax and will croak if it encounters invalid syntax." So, it should
          > croak only if one use un-localized variable name (which it seems to do
          > by default).

          No, no, it should croak on all errors. It's not an equivalent of 'use strict'.
          It's just a badly chosen name for this feature. Besides, in mp2 this won't be
          even an option. I totally fail to see why anybody will want to ignore a
          problem in the config file and continue regardless. Those who will want to
          trap the problem can use 'eval {} '.

          > But it's not a "padding" for possible _Perl_ syntax errors.
          > Maybe now is the time when I should take my first peak under the hood of
          > mod_perl, but I guess that those Perl sections are eval-ed, no? If it's
          > the case, the @! could be catch and the error reported.

          right. Enable tracing and you should see if there are any warnings/errors.
          Here is the code which you want to look at src/modules/perl/perl_config.c:

          #define STRICT_PERL_SECTIONS_SV \
          perl_get_sv("Apache::Server::StrictPerlSections", FALSE)

          void perl_handle_command(cmd_parms *cmd, void *config, char *line)
          {
          CHAR_P errmsg;
          SV *sv;

          MP_TRACE_s(fprintf(stderr, "handle_command (%s): ", line));
          if ((errmsg = handle_command(cmd, config, line))) {
          if ((sv = STRICT_PERL_SECTIONS_SV) && SvTRUE(sv)) {
          croak("<Perl>: %s", errmsg);
          }
          else {
          log_printf(cmd->server, "<Perl>: %s", errmsg);
          }
          }

          MP_TRACE_s(fprintf(stderr, "%s\n", errmsg ? errmsg : "OK"));
          }

          >> In mp2 <Perl> sections errors are fatal by default (will be shortly)
          >>
          >>
          >
          > I'll try my broken configuration under mp2 when I'll find some time, to
          > see how it behaves. I have'nt had time to play with it yet ; I'm just
          > back in a mod_perl job after nearly 2 years of *gasp* PHP. :P

          welcome home :)

          --
          __________________________________________________________________
          Stas Bekman JAm_pH ------> Just Another mod_perl Hacker
          http://stason.org/ mod_perl Guide ---> http://perl.apache.org
          mailto:stas@... http://use.perl.org http://apacheweek.com
          http://modperlbook.org http://apache.org http://ticketmaster.com

          --
          Report problems: http://perl.apache.org/bugs/
          Mail list info: http://perl.apache.org/maillist/modperl.html
          List etiquette: http://perl.apache.org/maillist/email-etiquette.html
        Your message has been successfully submitted and would be delivered to recipients shortly.