diff options
-rwxr-xr-x | web_wizard/Apache.pm | 153 |
1 files changed, 72 insertions, 81 deletions
diff --git a/web_wizard/Apache.pm b/web_wizard/Apache.pm index d9778042..6ff0f63c 100755 --- a/web_wizard/Apache.pm +++ b/web_wizard/Apache.pm @@ -44,7 +44,7 @@ my $o = { user_dir => '', shared_dir => '' }, - needed_rpm => [ 'apache2' ], + needed_rpm => [ 'apache-mpm-prefork' ], defaultimage => "/usr/share/wizards/web_wizard/images/apache.png", init => sub { if (-f $file) { @@ -66,83 +66,74 @@ my $o = { }; -$o->{pages} = { - welcome => { - name => N("Web server configuration wizard") . "\n\n" . N("This wizard will help you configuring the Web server for your network."), - post => sub { $wiz->check_dhcp }, - no_back => 1, - next => 'config' - }, - config => { - name => N("Web server") . "\n\n" . N("Your server can act as a Web server toward your internal network (intranet) and as a Web server for the Internet.") . "\n\n" . N("Select the kind of Web service you want to activate:") . "\n\n" . N("Don't check any box if you don't want to activate your Web server."), - data => [ - { text => N("Enable the Web server for the intranet"), type => 'bool', val => \$o->{var}{web_internal} }, - { text => N("Enable the Web server for the Internet"), type => 'bool', val => \$o->{var}{web_external} }, - ], - next => 'ask_mod' - }, - dhcp_warning => { - name => N("Warning.") . "\n\n" . N("You are in dhcp, server may not work with your configuration."), - ignore => 1, - next => 'config' - }, - ask_mod => { - name => N("Modules:") . "\n\n" . N("* User module: allows users to have a directory in their home directories available on your http server via http://www.yourserver.com/~user, you will be asked for the name of this directory afterward."), - pre => sub { $o->{var}{user_mod} = is_last_user_mod() }, - data => [ - { text => join("\n", warp_text(N("Allows users to get a directory in their home directories + +$o->{pages} = { + welcome => { + name => N("Web server configuration wizard") . "\n\n" . N("This wizard will help you configuring the Web server for your network."), + post => sub { $wiz->check_dhcp }, + no_back => 1, + next => 'config' + }, + config => { + name => N("Web server") . "\n\n" . N("Your server can act as a Web server toward your internal network (intranet) and as a Web server for the Internet.") . "\n\n" . N("Select the kind of Web service you want to activate:") . "\n\n" . N("Don't check any box if you don't want to activate your Web server."), + data => [ + { text => N("Enable the Web server for the intranet"), type => 'bool', val => \$o->{var}{web_internal} }, + { text => N("Enable the Web server for the Internet"), type => 'bool', val => \$o->{var}{web_external} }, + ], + next => 'ask_mod' + }, + dhcp_warning => { + name => N("Warning.") . "\n\n" . N("You are in dhcp, server may not work with your configuration."), + ignore => 1, + next => 'config' + }, + ask_mod => { + name => N("Modules:") . "\n\n" . N("* User module: allows users to have a directory in their home directories available on your http server via http://www.yourserver.com/~user, you will be asked for the name of this directory afterward."), + pre => sub { $o->{var}{user_mod} = is_last_user_mod() }, + data => [ + { text => join("\n", warp_text(N("Allows users to get a directory in their home directories available on your http server via http://www.yourserver.com/~user."), 70)), type => 'bool', val => \$o->{var}{user_mod} }, - ], - post => sub { return 'user_dir' if $o->{var}{user_mod} }, - next => 'ask_dir' - }, - user_dir => { - name => N("Type the name of the directory users should create in their homes (without ~/) to get it available via http://www.yourserver.com/~user"), - pre => sub { $o->{var}{user_dir} ||= 'public_html' }, - data => [ - { label => N("user http sub-directory: ~/"), help => N("Type the name of the directory users should create in their homes (without ~/) to get it available via http://www.yourserver.com/~user"), val => \$o->{var}{user_dir} }, - ], - next => 'ask_dir' - }, - ask_dir => { - name => N("Type the path of the directory you want being the document root."), - pre => sub { $o->{var}{shared_dir} ||= $root }, - data => [ - { label => N("Document root:"), val => \$o->{var}{shared_dir} }, - ], - post => \&check_dir, - next => 'summary' - }, - error_in_dir => { - name => N("Error."), - data => [ - { label => N("The path you entered does not exist.") } - ], - ignore => 1, - next => 'ask_dir' - }, - error => { - name => N("Error."), - data => [ { label => '' } ], - ignore => 1, - next => 'config' - }, - summary => { - name => N("Configuring the Web server") . "\n\n" . N("The wizard collected the following parameters needed to configure your Web server") . "\n\n" . N("To accept these values, and configure your server, click the Next button or use the Back button to correct them."), - pre => sub { - $o->{var}{internal} = $o->{var}{web_internal} ? N("enabled") : N("disabled"); - $o->{var}{external} = $o->{var}{web_external} ? N("enabled") : N("disabled") - }, - data => [ - { label => N("Intranet web server:"), fixed_val => \$o->{var}{internal} }, - { label => N("Internet web server:"), fixed_val => \$o->{var}{external} }, - { label => N("Document root:"), fixed_val => \$o->{var}{shared_dir} }, - { label => N("User directory:"), fixed_val => \$o->{var}{user_dir} }, - ], - post => \&do_it, - next => 'end' - }, - end => { + ], + post => sub { return 'user_dir' if $o->{var}{user_mod} }, + next => 'ask_dir' + }, + user_dir => { + name => N("Type the name of the directory users should create in their homes (without ~/) to get it available via http://www.yourserver.com/~user"), + pre => sub { $o->{var}{user_dir} ||= 'public_html' }, + data => [ + { label => N("user http sub-directory: ~/"), help => N("Type the name of the directory users should create in their homes (without ~/) to get it available via http://www.yourserver.com/~user"), val => \$o->{var}{user_dir} }, + ], + next => 'ask_dir' + }, + ask_dir => { + name => N("Type the path of the directory you want being the document root."), + pre => sub { $o->{var}{shared_dir} ||= $root }, + data => [ + { label => N("Document root:"), val => \$o->{var}{shared_dir} }, + ], + complete => sub { + if (! -d $o->{var}{shared_dir}) { + $::in->ask_warn(N('Error'), N('The path you entered does not exist.')); return 1; } + else { return 0; }; + }, + next => 'summary' + }, + summary => { + name => N("Configuring the Web server") . "\n\n" . N("The wizard collected the following parameters needed to configure your Web server") . "\n\n" . N("To accept these values, and configure your server, click the Next button or use the Back button to correct them."), + pre => sub { + $o->{var}{internal} = $o->{var}{web_internal} ? N("enabled") : N("disabled"); + $o->{var}{external} = $o->{var}{web_external} ? N("enabled") : N("disabled") + }, + data => [ + { label => N("Intranet web server:"), fixed_val => \$o->{var}{internal} }, + { label => N("Internet web server:"), fixed_val => \$o->{var}{external} }, + { label => N("Document root:"), fixed_val => \$o->{var}{shared_dir} }, + { label => N("User directory:"), fixed_val => \$o->{var}{user_dir} }, + ], + post => \&do_it, + next => 'end' + }, + end => { name => N("Congratulations") . "\n\n" . N("The wizard successfully configured your intranet/Internet Web server"), end => 1, @@ -155,11 +146,11 @@ available on your http server via http://www.yourserver.com/~user."), 70)), type end => 1, next => 0, }, -}; + }; sub new { - my ($class, $conf) = @_; - $config = $conf; + my ($class, $conf) = @_; + $config = $conf; # if ($config->{ver} == 2) { $file = "/etc/httpd/conf/httpd.conf"; # $o->{needed_rpm} = [ 'apache2' ]; @@ -175,7 +166,7 @@ sub new { } sub check_dir { - -d $o->{var}{shared_dir} or return 'error_in_dir' + } sub chg_docroot { |