diff options
author | Sergey Poznyakoff <gray@gnu.org> | 2018-07-17 10:29:32 +0300 |
---|---|---|
committer | Sergey Poznyakoff <gray@gnu.org> | 2018-07-17 10:29:32 +0300 |
commit | 447c9ac19f0ecac9a728de36409cc8d7afdf3001 (patch) | |
tree | 98614ebfddcaf79dc910b598fe14b0195eda5f23 /lib/Apache/Defaults.pm | |
parent | d9bdc9cfcb2f10ea3642b6150e1c4fddbf9facdb (diff) | |
download | apache-defaults-447c9ac19f0ecac9a728de36409cc8d7afdf3001.tar.gz apache-defaults-447c9ac19f0ecac9a728de36409cc8d7afdf3001.tar.bz2 |
Prefer apachectl over httpdv1.01
* lib/Apache/Defaults.pm: Version 1.01
(new): Try to use apachectl first. This ensures the correct environment
will be used.
* Changes: Update.
Diffstat (limited to 'lib/Apache/Defaults.pm')
-rw-r--r-- | lib/Apache/Defaults.pm | 25 |
1 files changed, 13 insertions, 12 deletions
diff --git a/lib/Apache/Defaults.pm b/lib/Apache/Defaults.pm index 70d5385..6108d23 100644 --- a/lib/Apache/Defaults.pm +++ b/lib/Apache/Defaults.pm | |||
@@ -9,7 +9,7 @@ use Text::ParseWords; | |||
9 | use Symbol 'gensym'; | 9 | use Symbol 'gensym'; |
10 | use Carp; | 10 | use Carp; |
11 | 11 | ||
12 | our $VERSION = '1.00'; | 12 | our $VERSION = '1.01'; |
13 | 13 | ||
14 | sub new { | 14 | sub new { |
15 | my $class = shift; | 15 | my $class = shift; |
@@ -31,7 +31,7 @@ sub new { | |||
31 | @servlist = ( $v ); | 31 | @servlist = ( $v ); |
32 | } | 32 | } |
33 | } else { | 33 | } else { |
34 | @servlist = qw(/usr/sbin/httpd /usr/sbin/apache2); | 34 | @servlist = qw(/usr/sbin/apachectl /usr/sbin/httpd /usr/sbin/apache2); |
35 | } | 35 | } |
36 | 36 | ||
37 | if (my @select = grep { -x $_->[0] } | 37 | if (my @select = grep { -x $_->[0] } |
@@ -74,7 +74,6 @@ sub environ { shift->{environ} } | |||
74 | sub probe { | 74 | sub probe { |
75 | my ($self, $cb, @opt) = @_; | 75 | my ($self, $cb, @opt) = @_; |
76 | 76 | ||
77 | open(my $nullout, '>', File::Spec->devnull); | ||
78 | open(my $nullin, '<', File::Spec->devnull); | 77 | open(my $nullin, '<', File::Spec->devnull); |
79 | 78 | ||
80 | my $out = gensym; | 79 | my $out = gensym; |
@@ -382,24 +381,26 @@ command line can also be used, e.g.: | |||
382 | 381 | ||
383 | The default used in the absense of this attribute is: | 382 | The default used in the absense of this attribute is: |
384 | 383 | ||
385 | [ '/usr/sbin/httpd', '/usr/sbin/apache2' ] | 384 | [ '/usr/sbin/apachectl', '/usr/sbin/httpd', '/usr/sbin/apache2' ] |
386 | 385 | ||
386 | The use of B<apachectl> is preferred over directly invoking B<httpd> daemon, | ||
387 | because the apache configuration file might contain referenmces to environment | ||
388 | variables defined elsewhere, which will cause B<httpd> to fail. B<apachectl> | ||
389 | takes care of this by including the file with variable definitions prior to | ||
390 | calling B<httpd>. See also C<environ>, below. | ||
391 | |||
387 | =item C<environ> | 392 | =item C<environ> |
388 | 393 | ||
389 | Name of the shell script that sets the environment for B<httpd> invocation. | 394 | Name of the shell script that sets the environment for B<httpd> invocation. |
390 | 395 | Usually, this is the same script that is sourced by B<apachectl> prior to | |
391 | If invoked with the B<-V> option, B<httpd> attempts to read its configuration | 396 | passing control over to B<httpd>. This option provides another solution to |
392 | file and will fail if the latter contains references to the environment | 397 | the environment problem mentioned above. E.g.: |
393 | variables defined elsewhere. This is quite common in Debian-based | ||
394 | distributions, which define the environment variables in file | ||
395 | F</etc/apache2/envvars>. To avoid such failures, use the C<environ> attribute, | ||
396 | e.g.: | ||
397 | 398 | ||
398 | $x = new Apache::Defaults(environ => /etc/apache2/envvars) | 399 | $x = new Apache::Defaults(environ => /etc/apache2/envvars) |
399 | 400 | ||
400 | =item C<on_error> | 401 | =item C<on_error> |
401 | 402 | ||
402 | Controls the error handling. Allowed values are C<croak> and C<return>. | 403 | Controls error handling. Allowed values are C<croak> and C<return>. |
403 | If the value is C<croak> (the default), the method will I<croak> if an | 404 | If the value is C<croak> (the default), the method will I<croak> if an |
404 | error occurs. If set to C<return>, the constructor will return a valid | 405 | error occurs. If set to C<return>, the constructor will return a valid |
405 | object. The B<httpd> exit status and diagnostics emitted to the stderr | 406 | object. The B<httpd> exit status and diagnostics emitted to the stderr |