File: //usr/local/share/hostingplatform/scripts/addHostingPackage
#!/usr/bin/env php
<?php
$packagename = $argv[1];
$storage = round($argv[2]);
$bandwidth = round($argv[3]);
if($packagename && strlen($packagename) && $storage > 0) {
shell_exec('/usr/sbin/adduser --force-badname --disabled-password --disabled-login --quiet --gecos ,,,,umask=027 "' . escapeshellcmd($packagename) . '"');
shell_exec('/bin/su postgres -l -c "createuser -DRS ' . escapeshellcmd($packagename) . '"');
shell_exec('/bin/mkdir -p /var/log/apache2/hostingpackages/' . escapeshellcmd($packagename) . '/');
shell_exec('/bin/chown -R "' . escapeshellcmd($packagename) . '":"' . escapeshellcmd($packagename) . '" "/var/log/apache2/hostingpackages/' . escapeshellcmd($packagename) . '/"');
shell_exec('/bin/chown -R "' . escapeshellcmd($packagename) . '":"www-data" "/home/' . escapeshellcmd($packagename) . '"');
shell_exec('/bin/chmod -R 750 "/home/' . escapeshellcmd($packagename) . '"');
shell_exec('/bin/chmod -R g=rxs "/home/' . escapeshellcmd($packagename) . '"');
shell_exec('/usr/sbin/quotatool -u "' . escapeshellcmd($packagename) . '" -b -q ' . escapeshellcmd($storage) . 'MB -l ' . escapeshellcmd($storage) . 'MB /home');
// Generate PHP FPM configuration for hosting package
if($dh = opendir("/etc/php/")) {
while(($version = readdir($dh)) !== false) {
if(is_numeric($version)) {
$config = "[" . $packagename . "]\n\n";
$config .= "user = " . $packagename . "\n";
$config .= "group = " . $packagename . "\n\n";
$config .= "listen = /run/php/php" . $version . "-fpm-" . $packagename . ".sock\n";
$config .= "listen.owner = " . $packagename . "\n";
$config .= "listen.group = " . $packagename . "\n";
$config .= "pm = ondemand\n";
$config .= "pm.max_children = 25\n";
$config .= "pm.start_servers = 2\n";
$config .= "pm.min_spare_servers = 1\n";
$config .= "pm.max_spare_servers = 3\n";
$config .= "pm.process_idle_timeout = 30s\n";
## $config .= "chroot = /home/" . $packagename . "/\n"; ## CHROOT Future ##
file_put_contents("/etc/php/" . escapeshellcmd($version) . "/fpm/pool.d/" . $packagename . ".conf", $config);
shell_exec("/etc/init.d/php" . escapeshellcmd($version) . "-fpm restart");
}
}
closedir($dh);
}
}
?>