initial commit of file from CVS for smeserver-phpvirtualbox on Sat Sep 7 20:54:21 AEST 2024
This commit is contained in:
@@ -0,0 +1 @@
|
||||
DefineExternalGroup ugroup environment /usr/bin/unixgroup
|
@@ -0,0 +1,51 @@
|
||||
{
|
||||
my $status = $phpvirtualbox{'status'} || "disabled";
|
||||
return " # phpvirtualbox is disabled in this VirtualHost"
|
||||
unless $status eq 'enabled';
|
||||
|
||||
$OUT = "";
|
||||
my $satisfy = 'all';
|
||||
my $name = $phpvirtualbox{'Name'} || 'phpvirtualbox';
|
||||
my @phpvboxusers = split(",", ($phpvirtualbox{'Users'} || "") );
|
||||
my @phpvboxgroups = split(",", ($phpvirtualbox{'userGroups'} || "") );
|
||||
my $alias = ($phpvirtualbox{'URL'} || 'phpvirtualbox');
|
||||
|
||||
$OUT .= "#------------------------------------------------------------\n";
|
||||
$OUT .= "# phpvirtualbox - $name\n";
|
||||
$OUT .= "#------------------------------------------------------------\n";
|
||||
|
||||
$OUT .= "Alias /$alias /opt/phpvirtualbox\n";
|
||||
$OUT .= "\n";
|
||||
if ($phpvirtualbox{'authtype'} ne 'disabled') {
|
||||
$OUT .= "<Location /$alias>\n";
|
||||
if ($phpvirtualbox{'authtype'} eq 'WebAuth') {
|
||||
$OUT .= " AuthName \"$name\"\n";
|
||||
$OUT .= " AuthType Basic\n";
|
||||
$OUT .= " AuthBasicProvider external\n";
|
||||
$OUT .= " AuthExternal pwauth\n";
|
||||
$OUT .= " GroupExternal ugroup\n";
|
||||
$OUT .= " Require user admin @phpvboxusers\n";
|
||||
$OUT .= " Require external-group @phpvboxgroups\n";
|
||||
} elsif ($phpvirtualbox{'authtype'} eq 'httpd_LDAP') {
|
||||
$OUT .= " AuthName \"$name\"\n";
|
||||
$OUT .= " AuthType Basic\n";
|
||||
$OUT .= " AuthBasicProvider ldap\n";
|
||||
$OUT .= " AuthLDAPURL = ldap://localhost/0=$smb{'Workgroup'},%uid\n";
|
||||
$OUT .= " Require ldap-user admin @phpvboxusers\n";
|
||||
foreach my $group (@phpvboxgroups) {
|
||||
$OUT .= " Require ldap-group cn=@group, o=*\n";
|
||||
}
|
||||
}
|
||||
$OUT .= "</Location>\n";
|
||||
$OUT .= "\n";
|
||||
}
|
||||
|
||||
$OUT .= "<Directory /opt/phpvirtualbox>\n";
|
||||
$OUT .= " SSLRequireSSL\n";
|
||||
$OUT .= " Require ip $localAccess\n";
|
||||
$OUT .= " <FilesMatch .php\$>\n";
|
||||
$OUT .= " SetHandler \"proxy:unix:/var/run/php-fpm/php74-phpvirtualbox.sock|fcgi://localhost\"\n";
|
||||
$OUT .= " </FilesMatch>\n";
|
||||
$OUT .= " AddType application/x-httpd-php .php\n";
|
||||
$OUT .= "</Directory>\n";
|
||||
}
|
@@ -0,0 +1,11 @@
|
||||
{
|
||||
if ($port ne "443")
|
||||
{
|
||||
$OUT .= " ## Redirect phpvirtualbox Address to Secure Address\n";
|
||||
$OUT .= "RewriteEngine on\n";
|
||||
$OUT .= "RewriteRule ^/phpvirtualbox https://%{HTTP_HOST}/phpvirtualbox\n";
|
||||
if ((exists $phpvirtualbox{'URL'}) && ($phpvirtualbox{'URL'} ne ''))
|
||||
{ $OUT .= "RewriteRule ^/$phpvirtualbox{'URL'} https://%{HTTP_HOST}/$phpvirtualbox{'URL'}\n"; }
|
||||
$OUT .= "##End of redirection\n";
|
||||
}
|
||||
}
|
@@ -0,0 +1,65 @@
|
||||
{
|
||||
|
||||
my $phpversion = ($phpvirtulabox{Version} || '74');
|
||||
if ($PHP_VERSION eq $phpversion) {
|
||||
if (($phpvirtualbox{'status'} || 'disabled') eq 'enabled') {
|
||||
my $max_upload_size = ($phpvirtualbox{MaxUploadSize} || '4096');
|
||||
$max_upload_size .= 'M' if ($max_upload_size =~ m/^\d+$/);
|
||||
my $memory_limit = ($phpvirtualbox{MemoryLimit} || '500M');
|
||||
$memory_limit .= 'M' if ($memory_limit =~ m/^\d+$/);
|
||||
my $open_basedir= $phpvirtualbox{PHPBaseDir} || '';
|
||||
my $id = 'phpvirtualbox';
|
||||
$open_basedir = "/opt/phpvirtualbox/:/var/log/php/$id/:/var/lib/php/$id/:$open_basedir";
|
||||
my $max_children = $phpvirtualbox{'PHPmaxChildren'} || 20;
|
||||
my $min_spare_servers = $phpvirtualbox{'PHPminServers'} || 4;
|
||||
my $start_servers = $phpvirtualbox{'PHPstartServers'} || 6;
|
||||
my $max_spare_servers = $phpvirtualbox{'PHPmaxServers'} || 8;
|
||||
my $max_requests = $phpvirtualbox{'PHPmaxRequests'} || 1000;
|
||||
$min_spare_servers = ( $min_spare_servers > $max_spare_servers ) ? printf("%.0f",$max_spare_servers/2) : $min_spare_servers;
|
||||
$start_servers = ( $start_servers > $max_spare_servers ) ? printf("%.0f", $max_spare_servers /2 + $min_spare_servers/2 ) : $start_servers;
|
||||
|
||||
$OUT .=<<_EOF;
|
||||
|
||||
[php$PHP_VERSION-$id]
|
||||
user = www
|
||||
group = www
|
||||
listen.owner = root
|
||||
listen.group = www
|
||||
listen.mode = 0660
|
||||
listen = /var/run/php-fpm/php$PHP_VERSION-$id.sock
|
||||
pm = dynamic
|
||||
pm.max_children = $max_children
|
||||
pm.start_servers = $start_servers
|
||||
pm.min_spare_servers = $min_spare_servers
|
||||
pm.max_spare_servers = $max_spare_servers
|
||||
pm.max_requests = $max_requests
|
||||
php_admin_value[session.save_path] = /var/lib/php/$id/session
|
||||
php_admin_value[session.gc_maxlifetime] = 86400
|
||||
php_admin_value[opcache.file_cache] = /var/lib/php/$id/opcache
|
||||
php_admin_value[upload_tmp_dir] = /var/lib/php/$id/tmp
|
||||
php_admin_value[error_log] = /var/log/php/$id/error.log
|
||||
slowlog = /var/log/php/$id/slow.log
|
||||
php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f php@{ $DomainName }
|
||||
php_admin_flag[display_errors] = off
|
||||
php_admin_flag[log_errors] = on
|
||||
php_admin_value[memory_limit] = $memory_limit
|
||||
php_admin_value[max_execution_time] = 3600
|
||||
php_admin_value[post_max_size] = $max_upload_size
|
||||
php_admin_value[upload_max_filesize] = $max_upload_size
|
||||
php_admin_value[disable_functions] = system, show_source, symlink, dl, passthru, phpinfo, escapeshellarg, escapeshellcmd
|
||||
php_admin_value[open_basedir] = $open_basedir
|
||||
php_admin_flag[allow_url_fopen] = on
|
||||
php_admin_flag[file_uploads] = on
|
||||
php_admin_flag[session.cookie_httponly] = on
|
||||
php_admin_flag[allow_url_include] = off
|
||||
php_admin_value[session.save_handler] = files
|
||||
php_admin_flag[output_buffering] = off
|
||||
php_admin_flag[eaccelerator.enable] = on
|
||||
|
||||
_EOF
|
||||
|
||||
} else {
|
||||
$OUT .= '; phpvirtualbox is disabled';
|
||||
}
|
||||
}
|
||||
}
|
55
root/etc/e-smith/templates/etc/smb.conf/60phpvirtualbox
Normal file
55
root/etc/e-smith/templates/etc/smb.conf/60phpvirtualbox
Normal file
@@ -0,0 +1,55 @@
|
||||
{
|
||||
if ($phpvirtualbox{'status'} ne 'enabled') {
|
||||
return;
|
||||
}
|
||||
my $samba = ($phpvirtualbox{'samba'} || 'all');
|
||||
if ($samba ne 'all' && $samba ne 'adminUser') {
|
||||
return;
|
||||
}
|
||||
my $validusers = '';
|
||||
my @phpvboxusers = split(",", ($phpvirtualbox{'Users'} || "") );
|
||||
my @phpvboxgroups = split(",", ($phpvirtualbox{'userGroups'} || "") );
|
||||
if ($samba eq 'all' || $samba eq 'adminUser') {
|
||||
if ($phpvirtualbox{'adminUser'}) {
|
||||
$validusers = "$phpvirtualbox{'adminUser'}";
|
||||
}
|
||||
}
|
||||
if ($samba eq 'all') {
|
||||
if ($phpvirtualbox{'Users'}) {
|
||||
foreach my $user (@phpvboxusers) {
|
||||
if ($validusers) {
|
||||
$validusers .= ",$user";
|
||||
} else {
|
||||
$validusers = "$user";
|
||||
}
|
||||
}
|
||||
}
|
||||
if ($phpvirtualbox{'userGroups'}) {
|
||||
foreach my $group (@phpvboxgroups) {
|
||||
if ($validusers) {
|
||||
$validusers .= ",\@$group";
|
||||
} else {
|
||||
$validusers = "\@$group";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$OUT .=<<_VBOX;
|
||||
|
||||
[virtualbox]
|
||||
comment = virtualbox ISO directory
|
||||
path = /opt/vbox/ISOs
|
||||
read only = no
|
||||
writable = yes
|
||||
printable = no
|
||||
inherit permissions = yes
|
||||
create mode = 0777
|
||||
|
||||
_VBOX
|
||||
|
||||
if ($validusers) {
|
||||
$OUT .= "valid users = $validusers\n";
|
||||
}
|
||||
|
||||
}
|
@@ -0,0 +1,90 @@
|
||||
{
|
||||
# domain stuff
|
||||
my $baseDN = esmith::util::ldapBase($DomainName);
|
||||
my $workgroup = $smb{'Workgroup'};
|
||||
# vboxweb parameters
|
||||
my $username = (${'vboxweb-service'}{'user'} || 'vbox');
|
||||
my $password = ${'vboxweb-service'}{'password'};
|
||||
my $location = ("http://${'vboxweb-service'}{'access'}:${'vboxweb-service'}{'TCPPort'}/" || "http://127.0.0.1:18083/");
|
||||
# phpvirtualbox parameters for users
|
||||
my $adminUser = ($phpvirtualbox{'adminUser'} || 'admin');
|
||||
my $adminGroup = ($phpvirtualbox{'adminGroup'} || 'admin');
|
||||
my $userGroups = $phpvirtualbox{'userGroups'};
|
||||
# phpvirtualbox config parameters
|
||||
my $language = ($phpvirtualbox{'language'} || 'en');
|
||||
my $vrdeports = ($phpvirtualbox{'vrdeports'} || '19000-19100');
|
||||
my $maxProgressList = ($phpvirtualbox{'maxProgressList'} || 5);
|
||||
my $deleteOnRemove = ($phpvirtualbox{'deleteOnRemove'} || true);
|
||||
my $browserRestrictFiles = ($phpvirtualbox{'browserRestrictFiles'} || "'.iso','.vdi','.vmdk','.img','.bin','.vhd','.hdd','.ovf','.ova','.xml','.vbox','.cdr','.dmg','.ima','.dsk','.vfd'");
|
||||
my $browserRestrictFolders = ($phpvirtualbox{'browserRestrictFolders'} || "'/opt/vbox/ISOs','/opt/vbox/VMs'");
|
||||
my $hostMemInfoRefreshInterval = ($phpvirtualbox{'hostMemInfoRefreshInterval'} || 5);
|
||||
my $consoleResolutions = ($phpvirtualbox{'consoleResolutions'} || "'640x480','800x600','1024x768','1280x720','1440x900'");
|
||||
my $consoleKeyboardLayout = ($phpvirtualbox{'consoleKeyboardLayout'} || 'EN');
|
||||
my $nicMax = ($phpvirtualbox{'nicMax'} || 4);
|
||||
# working
|
||||
my @phpvboxusers = split(",", ($phpvirtualbox{'Users'} || "") );
|
||||
my @phpvboxgroups = split(",", ($phpvirtualbox{'userGroups'} || "") );
|
||||
|
||||
$OUT .=<<_PARMS;
|
||||
|
||||
class phpVBoxConfig {
|
||||
# default paramaters
|
||||
var \$username = '$username';
|
||||
var \$password = '$password';
|
||||
var \$location = '$location';
|
||||
var \$language = '$language';
|
||||
var \$vrdeports = '$vrdeports';
|
||||
var \$maxProgressList = $maxProgressList;
|
||||
var \$deleteOnRemove = $deleteOnRemove;
|
||||
var \$browserRestrictFiles = array($browserRestrictFiles);
|
||||
var \$browserRestrictFolders = array($browserRestrictFolders);
|
||||
var \$hostMemInfoRefreshInterval = $hostMemInfoRefreshInterval;
|
||||
var \$consoleResolutions = array($consoleResolutions);
|
||||
var \$consoleKeyboardLayout = '$consoleKeyboardLayout';
|
||||
var \$nicMax = $nicMax;
|
||||
|
||||
# authentication parameters
|
||||
_PARMS
|
||||
|
||||
# authentication stuff
|
||||
my $authtype = ($phpvirtualbox{'authType'} || 'WebAuth');
|
||||
if ($authtype eq 'Builtin') {
|
||||
$OUT .= "var \$authLib = 'Builtin';\n";
|
||||
} elsif ($authtype eq 'WebAuth') {
|
||||
$OUT .= "var \$authLib = 'WebAuth';\n";
|
||||
$OUT .= "var \$authConfig = array('adminUser' => '$adminUser');\n";
|
||||
} elsif ($authtype eq 'LDAP') {
|
||||
$OUT .= "var \$authLib = 'LDAP';\n";
|
||||
$OUT .= "var \$authConfig = array(\n";
|
||||
$OUT .= " 'host' => '127.0.0.1',\n";
|
||||
$OUT .= " 'bind_dn' => 'uid=%s, ou=Users, $baseDN',\n";
|
||||
$OUT .= " 'adminUser' => $adminUser);\n";
|
||||
} elsif ($authtype eq 'AD' && $workgroup ) {
|
||||
$OUT .= "var \$authLib = 'ActiveDirectory';\n";
|
||||
$OUT .= "var \$authConfig = array(\n";
|
||||
$OUT .= " 'host' => '127.0.0.1',\n";
|
||||
$OUT .= " 'domain' => '$workgroup',\n";
|
||||
$OUT .= " 'admin_group' => '$adminGroup'";
|
||||
if ($userGroups) {
|
||||
foreach my $group (@phpvboxgroups) {
|
||||
$OUT .= ",\n";
|
||||
$OUT .= " 'user_group' => '$group'";
|
||||
}
|
||||
};
|
||||
$OUT .= ");\n";
|
||||
} else {
|
||||
$OUT .= "var \$noAuth=true;\n";
|
||||
}
|
||||
|
||||
# allow inclusion of any generic parameter stored in config db for phpvirtualbox
|
||||
$OUT .= "# additional parameters defined in configuration DB\n";
|
||||
my @stdparms = qw(type status Name samba Users userGroups adminUser adminGroup authtype language vrdeports maxProgressList deleteOnRemove browserRestrictFiles browserRestrictFolders consolresolutions hostMemInfoRefreshInterval consoleKeyboardLayout nicMax);
|
||||
while (my ($param, $value) = each (%phpvirtualbox)) {
|
||||
next if ( $param ~~ @stdparms );
|
||||
$OUT .= "var \$$param = $value;\n";
|
||||
}
|
||||
|
||||
$OUT .= "}\n";
|
||||
|
||||
}
|
||||
|
@@ -0,0 +1 @@
|
||||
/etc/e-smith/templates-default/template-begin-php
|
Reference in New Issue
Block a user