381 lines
15 KiB
PHP
381 lines
15 KiB
PHP
<?php
|
|
/**
|
|
* @var Template_VariableAccessor $VAR
|
|
* @var array $OPT
|
|
*/
|
|
?>
|
|
<?php if ($OPT['ssl']): ?>
|
|
<IfModule mod_ssl.c>
|
|
<?php endif; ?>
|
|
|
|
<VirtualHost <?php echo $OPT['ipAddress']->escapedAddress ?>:<?php echo $OPT['ssl'] ? $VAR->server->webserver->httpsPort : $VAR->server->webserver->httpPort ?> <?php echo ($VAR->server->webserver->proxyActive && $OPT['ipAddress']->isIpV6()) ? "127.0.0.1:" . ($OPT['ssl'] ? $VAR->server->webserver->httpsPort : $VAR->server->webserver->httpPort) : ''; ?>>
|
|
ServerName "<?php echo $VAR->domain->asciiName ?>"
|
|
<?php if ($VAR->domain->isWildcard): ?>
|
|
ServerAlias "<?php echo $VAR->domain->wildcardName ?>"
|
|
<?php else: ?>
|
|
ServerAlias "www.<?php echo $VAR->domain->asciiName ?>"
|
|
<?php endif; ?>
|
|
<?php if ($VAR->server->webserver->listenLocalhost): ?>
|
|
<?php if ($VAR->domain->physicalHosting->hasIpV6()): ?>
|
|
ServerAlias "ipv6.<?php echo $VAR->domain->asciiName ?>"
|
|
<?php endif; ?>
|
|
<?php if ($VAR->domain->physicalHosting->hasIpV4()): ?>
|
|
ServerAlias "ipv4.<?php echo $VAR->domain->asciiName ?>"
|
|
<?php endif; ?>
|
|
<?php else: ?>
|
|
<?php if ($OPT['ipAddress']->isIpV6()): ?>
|
|
ServerAlias "ipv6.<?php echo $VAR->domain->asciiName ?>"
|
|
<?php elseif ($OPT['ipAddress']->isIpV4()): ?>
|
|
ServerAlias "ipv4.<?php echo $VAR->domain->asciiName ?>"
|
|
<?php endif; ?>
|
|
<?php endif; ?>
|
|
<?php foreach ($VAR->domain->webAliases AS $alias): ?>
|
|
ServerAlias "<?php echo $alias->asciiName ?>"
|
|
ServerAlias "www.<?php echo $alias->asciiName ?>"
|
|
<?php if ($VAR->server->webserver->listenLocalhost): ?>
|
|
<?php if ($VAR->domain->physicalHosting->hasIpV6()): ?>
|
|
ServerAlias "ipv6.<?php echo $alias->asciiName ?>"
|
|
<?php endif; ?>
|
|
<?php if ($VAR->domain->physicalHosting->hasIpV4()): ?>
|
|
ServerAlias "ipv4.<?php echo $alias->asciiName ?>"
|
|
<?php endif; ?>
|
|
<?php else: ?>
|
|
<?php if ($OPT['ipAddress']->isIpV6()): ?>
|
|
ServerAlias "ipv6.<?php echo $alias->asciiName ?>"
|
|
<?php elseif ($OPT['ipAddress']->isIpV4()): ?>
|
|
ServerAlias "ipv4.<?php echo $alias->asciiName ?>"
|
|
<?php endif; ?>
|
|
<?php endif; ?>
|
|
<?php endforeach; ?>
|
|
<?php if ($VAR->domain->previewDomainName): ?>
|
|
ServerAlias "<?php echo $VAR->domain->previewDomainName ?>"
|
|
<?php endif; ?>
|
|
<?php if ($VAR->server->webserver->listenLocalhost): ?>
|
|
<?php foreach ($VAR->domain->physicalHosting->ipAddresses as $ip): ?>
|
|
<?php if ($ip->defaultDomainId === $VAR->domain->id): ?>
|
|
ServerAlias "<?php echo $ip->defaultServerName ?>"
|
|
<?php endif; ?>
|
|
<?php endforeach; ?>
|
|
<?php endif; ?>
|
|
UseCanonicalName Off
|
|
|
|
<?php if (!$VAR->server->webserver->apache->pipelogEnabled): ?>
|
|
CustomLog <?php echo $VAR->domain->physicalHosting->logsDir ?>/<?php echo $OPT['ssl'] ? 'access_ssl_log' : 'access_log' ?> plesklog
|
|
<?php endif; ?>
|
|
ErrorLog "<?php echo $VAR->domain->physicalHosting->logsDir ?>/error_log"
|
|
|
|
<?php if ($VAR->domain->isMailAutodiscoveryEnabled): ?>
|
|
<?php echo $VAR->includeTemplate('domain/service/mailAutoConfig.php') ?>
|
|
<?php endif ?>
|
|
|
|
<?php if (!$OPT['ssl'] && $VAR->domain->physicalHosting->sslRedirect): ?>
|
|
|
|
<?php if (is_file($VAR->domain->physicalHosting->customConfigFile)): ?>
|
|
Include "<?php echo $VAR->domain->physicalHosting->customConfigFile ?>"
|
|
<?php endif; ?>
|
|
|
|
<?php echo $VAR->includeTemplate('domain/service/seoSafeRedirects.php', array('ssl' => true)); ?>
|
|
|
|
<IfModule mod_rewrite.c>
|
|
RewriteEngine On
|
|
RewriteCond %{HTTPS} off
|
|
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L,QSA]
|
|
</IfModule>
|
|
</VirtualHost>
|
|
<?php return; ?>
|
|
<?php endif; ?>
|
|
|
|
DocumentRoot "<?php echo $OPT['ssl'] ? $VAR->domain->physicalHosting->httpsDir : $VAR->domain->physicalHosting->httpDir ?>"
|
|
|
|
<IfModule mod_suexec.c>
|
|
SuexecUserGroup "<?php echo $VAR->domain->physicalHosting->login ?>" "<?php echo $VAR->server->webserver->clientGroup ?>"
|
|
</IfModule>
|
|
|
|
<?php echo $VAR->includeTemplate('domain/PCI_compliance.php') ?>
|
|
|
|
<IfModule mod_userdir.c>
|
|
<?php if (count($VAR->domain->physicalHosting->webusers)): ?>
|
|
<?php foreach (array_chunk($VAR->domain->physicalHosting->webusers, 50) AS $chunk): ?>
|
|
UserDir enabled <?php echo implode(" ", array_map(function($webuser) { return $webuser->login;}, $chunk)) ?>
|
|
|
|
<?php endforeach; ?>
|
|
<?php endif; ?>
|
|
UserDir "<?php echo $VAR->domain->physicalHosting->webUsersDir ?>/*"
|
|
</IfModule>
|
|
|
|
<?php if ($VAR->domain->physicalHosting->vhostId): ?>
|
|
<IfModule mod_sysenv.c>
|
|
SetSysEnv PP_VHOST_ID "<?php echo $VAR->domain->physicalHosting->vhostId ?>"
|
|
</IfModule>
|
|
<?php endif; ?>
|
|
|
|
|
|
<?php if ($VAR->domain->physicalHosting->cgi && !$VAR->domain->physicalHosting->rootApplication): ?>
|
|
ScriptAlias "/cgi-bin/" "<?php echo $VAR->domain->physicalHosting->cgiBinDir ?>/"
|
|
<?php endif; ?>
|
|
|
|
<?php if ($VAR->domain->physicalHosting->hasWebstat):?>
|
|
|
|
<?php if ($OPT['ssl'] || !$VAR->domain->physicalHosting->ssl): ?>
|
|
Alias "/plesk-stat" "<?php echo $VAR->domain->physicalHosting->statisticsDir ?>"
|
|
<Location /plesk-stat/>
|
|
Options +Indexes
|
|
</Location>
|
|
<Location /plesk-stat/logs/>
|
|
Require valid-user
|
|
</Location>
|
|
Alias /webstat <?php echo $VAR->domain->physicalHosting->statisticsDir ?>/webstat
|
|
Alias /webstat-ssl <?php echo $VAR->domain->physicalHosting->statisticsDir ?>/webstat-ssl
|
|
Alias /ftpstat <?php echo $VAR->domain->physicalHosting->statisticsDir ?>/ftpstat
|
|
Alias /anon_ftpstat <?php echo $VAR->domain->physicalHosting->statisticsDir ?>/anon_ftpstat
|
|
Alias /awstats-icon <?php echo $VAR->server->awstats->iconsDir ?>
|
|
|
|
<?php else: ?>
|
|
Redirect permanent /plesk-stat https://<?php echo $VAR->domain->urlName ?>/plesk-stat
|
|
Redirect permanent /webstat https://<?php echo $VAR->domain->urlName ?>/webstat
|
|
Redirect permanent /webstat-ssl https://<?php echo $VAR->domain->urlName ?>/webstat-ssl
|
|
Redirect permanent /ftpstat https://<?php echo $VAR->domain->urlName ?>/ftpstat
|
|
Redirect permanent /anon_ftpstat https://<?php echo $VAR->domain->urlName ?>/anon_ftpstat
|
|
Redirect permanent /awstats-icon https://<?php echo $VAR->domain->urlName ?>/awstats-icon
|
|
<?php endif; ?>
|
|
|
|
<?php endif; ?>
|
|
|
|
<?php if ($OPT['ssl']): ?>
|
|
<?php $sslCertificate = $VAR->server->sni && $VAR->domain->physicalHosting->sslCertificate ?
|
|
$VAR->domain->physicalHosting->sslCertificate :
|
|
$OPT['ipAddress']->sslCertificate; ?>
|
|
<?php if ($sslCertificate->ceFilePath): ?>
|
|
SSLEngine on
|
|
SSLVerifyClient none
|
|
SSLCertificateFile <?php echo $sslCertificate->ceFilePath ?>
|
|
|
|
<?php if ($sslCertificate->caFilePath): ?>
|
|
SSLCACertificateFile <?php echo $sslCertificate->caFilePath ?>
|
|
<?php endif; ?>
|
|
<?php endif; ?>
|
|
<?php else: ?>
|
|
<IfModule mod_ssl.c>
|
|
SSLEngine off
|
|
</IfModule>
|
|
<?php endif; ?>
|
|
|
|
<?php if ($VAR->domain->physicalHosting->php && $VAR->domain->physicalHosting->phpHandlerType == 'cgi'): ?>
|
|
SetEnv PP_CUSTOM_PHP_INI <?php echo $VAR->domain->physicalHosting->vhostSystemDir ?>/etc/php.ini
|
|
SetEnv PP_CUSTOM_PHP_CGI_INDEX <?php echo $VAR->domain->physicalHosting->phpHandlerId ?>
|
|
|
|
<?php endif; ?>
|
|
|
|
<?php if ($VAR->domain->physicalHosting->php && $VAR->domain->physicalHosting->phpHandlerType == 'fastcgi'): ?>
|
|
<IfModule mod_fcgid.c>
|
|
FcgidInitialEnv PP_CUSTOM_PHP_INI <?php echo $VAR->domain->physicalHosting->vhostSystemDir ?>/etc/php.ini
|
|
FcgidInitialEnv PP_CUSTOM_PHP_CGI_INDEX <?php echo $VAR->domain->physicalHosting->phpHandlerId ?>
|
|
|
|
FcgidMaxRequestLen 134217728
|
|
<?php if ($VAR->domain->physicalHosting->scriptTimeout): ?>
|
|
FcgidIOTimeout <?php echo $VAR->domain->physicalHosting->scriptTimeout; ?>
|
|
|
|
<?php endif; ?>
|
|
</IfModule>
|
|
<?php endif; ?>
|
|
|
|
<?php if ($VAR->domain->physicalHosting->scriptTimeout): ?>
|
|
TimeOut <?php echo $VAR->domain->physicalHosting->scriptTimeout; ?>
|
|
<?php endif; ?>
|
|
|
|
<Directory <?php echo $OPT['ssl'] ? $VAR->domain->physicalHosting->httpsDir : $VAR->domain->physicalHosting->httpDir ?>>
|
|
|
|
<?php
|
|
if ($VAR->domain->physicalHosting->perl) {
|
|
echo $VAR->includeTemplate('service/mod_perl.php');
|
|
}
|
|
|
|
if (
|
|
!$VAR->domain->physicalHosting->php ||
|
|
!in_array($VAR->domain->physicalHosting->phpHandlerType, array('cgi', 'fastcgi', 'fpm'))
|
|
) {
|
|
echo $VAR->includeTemplate('service/php.php', array(
|
|
'enabled' => $VAR->domain->physicalHosting->php,
|
|
'safe_mode' => $VAR->domain->physicalHosting->phpSafeMode,
|
|
'dir' => $OPT['ssl'] ? $VAR->domain->physicalHosting->httpsDir : $VAR->domain->physicalHosting->httpDir,
|
|
'settings' => $VAR->domain->physicalHosting->phpSettings,
|
|
));
|
|
}
|
|
|
|
if ($VAR->domain->physicalHosting->python) {
|
|
echo $VAR->includeTemplate('service/mod_python.php');
|
|
}
|
|
|
|
if ($VAR->domain->physicalHosting->fastcgi) {
|
|
echo $VAR->includeTemplate('service/mod_fastcgi.php');
|
|
}
|
|
|
|
if ($VAR->domain->physicalHosting->php && 'cgi' == $VAR->domain->physicalHosting->phpHandlerType) {
|
|
echo $VAR->includeTemplate('service/php_over_cgi.php');
|
|
}
|
|
|
|
if ($VAR->domain->physicalHosting->php && 'fastcgi' == $VAR->domain->physicalHosting->phpHandlerType) {
|
|
echo $VAR->includeTemplate('service/php_over_fastcgi.php');
|
|
}
|
|
|
|
if ($VAR->domain->physicalHosting->php && 'fpm' == $VAR->domain->physicalHosting->phpHandlerType) {
|
|
echo $VAR->includeTemplate('service/php_over_fpm.php');
|
|
}
|
|
|
|
?>
|
|
|
|
<?php if ($OPT['ssl']): ?>
|
|
SSLRequireSSL
|
|
<?php endif; ?>
|
|
|
|
Options <?php echo $VAR->domain->physicalHosting->ssi ? '+' : '-' ?>Includes <?php echo $VAR->domain->physicalHosting->cgi ? '+' : '-' ?>ExecCGI
|
|
|
|
</Directory>
|
|
|
|
<?php if ($VAR->domain->physicalHosting->webusersScriptingEnabled): ?>
|
|
<?php foreach ($VAR->domain->physicalHosting->webusers as $webuser): ?>
|
|
<Directory <?php echo $webuser->dir ?>>
|
|
Options <?php echo $VAR->domain->physicalHosting->ssi && $webuser->ssi ? '+' : '-' ?>Includes <?php echo $VAR->domain->physicalHosting->cgi && $webuser->cgi ? '+' : '-' ?>ExecCGI
|
|
|
|
<?php if ($VAR->domain->physicalHosting->cgi && $webuser->cgi): ?>
|
|
AddHandler cgi-script .cgi
|
|
<?php endif; ?>
|
|
|
|
<?php
|
|
if ($VAR->domain->physicalHosting->perl && $webuser->perl) {
|
|
echo $VAR->includeTemplate('service/mod_perl.php');
|
|
}
|
|
|
|
if (
|
|
!$VAR->domain->physicalHosting->php ||
|
|
!in_array($VAR->domain->physicalHosting->phpHandlerType, array('cgi', 'fastcgi', 'fpm'))
|
|
) {
|
|
echo $VAR->includeTemplate('service/php.php', array(
|
|
'enabled' => $VAR->domain->physicalHosting->php && $webuser->php,
|
|
'safe_mode' => $VAR->domain->physicalHosting->phpSafeMode,
|
|
'dir' => $webuser->dir,
|
|
'settings' => $webuser->phpSettings,
|
|
));
|
|
}
|
|
|
|
if ($VAR->domain->physicalHosting->php && $webuser->php && 'cgi' == $VAR->domain->physicalHosting->phpHandlerType) {
|
|
echo $VAR->includeTemplate('service/php_over_cgi.php');
|
|
}
|
|
|
|
if ($VAR->domain->physicalHosting->php && $webuser->php && 'fastcgi' == $VAR->domain->physicalHosting->phpHandlerType) {
|
|
echo $VAR->includeTemplate('service/php_over_fastcgi.php');
|
|
}
|
|
|
|
if ($VAR->domain->physicalHosting->php && $webuser->php && 'fpm' == $VAR->domain->physicalHosting->phpHandlerType) {
|
|
echo $VAR->includeTemplate('service/php_over_fpm.php');
|
|
}
|
|
|
|
if ($VAR->domain->physicalHosting->python && $webuser->python) {
|
|
echo $VAR->includeTemplate('service/mod_python.php');
|
|
}
|
|
|
|
if ($VAR->domain->physicalHosting->fastcgi && $webuser->fastcgi) {
|
|
echo $VAR->includeTemplate('service/mod_fastcgi.php');
|
|
}
|
|
?>
|
|
|
|
</Directory>
|
|
<?php endforeach; ?>
|
|
|
|
<?php else: ?>
|
|
|
|
<Directory <?php echo $VAR->domain->physicalHosting->webUsersDir ?>>
|
|
|
|
<?php echo $VAR->includeTemplate('service/php.php', array(
|
|
'enabled' => false,
|
|
'safe_mode' => true,
|
|
'dir' => $VAR->domain->physicalHosting->webUsersDir,
|
|
'settings' => $VAR->domain->physicalHosting->phpSettings,
|
|
)); ?>
|
|
|
|
</Directory>
|
|
|
|
<?php endif; ?>
|
|
|
|
<?php if (!$VAR->domain->physicalHosting->isMainDomain): ?>
|
|
<Directory <?php echo $VAR->domain->physicalHosting->vhostDir ?>>
|
|
Options +FollowSymLinks
|
|
</Directory>
|
|
<?php endif ?>
|
|
|
|
<?php
|
|
echo $VAR->includeTemplate('domain/service/protectedDirectories.php', $OPT) . "\n";
|
|
|
|
if ($VAR->domain->physicalHosting->errordocs) {
|
|
echo $VAR->includeTemplate('domain/service/errordocs.php') . "\n";
|
|
}
|
|
?>
|
|
|
|
<?php if (is_dir($OPT['ssl'] ? $VAR->domain->physicalHosting->siteAppsSslConfigDir : $VAR->domain->physicalHosting->siteAppsConfigDir)): ?>
|
|
<?php echo $VAR->server->webserver->includeOptionalConfig(($OPT['ssl'] ? $VAR->domain->physicalHosting->siteAppsSslConfigDir : $VAR->domain->physicalHosting->siteAppsConfigDir) . '/*.conf') ?>
|
|
<?php endif; ?>
|
|
|
|
<?php echo $VAR->domain->physicalHosting->apacheSettings ?>
|
|
<?php if ($VAR->domain->physicalHosting->directoryIndex): ?>
|
|
DirectoryIndex <?=$VAR->quote($VAR->domain->physicalHosting->directoryIndex)?>
|
|
<?php endif ?>
|
|
|
|
<?php echo $VAR->includeTemplate('domain/service/seoSafeRedirects.php', array('ssl' => $OPT['ssl'])); ?>
|
|
|
|
<?php if ($VAR->domain->suspended): ?>
|
|
<?php echo $VAR->includeTemplate('domain/service/suspend.php'); ?>
|
|
<?php endif; ?>
|
|
|
|
<?php if (is_file($OPT['ssl'] ? $VAR->domain->physicalHosting->customSslConfigFile : $VAR->domain->physicalHosting->customConfigFile)): ?>
|
|
Include "<?php echo $OPT['ssl'] ? $VAR->domain->physicalHosting->customSslConfigFile : $VAR->domain->physicalHosting->customConfigFile ?>"
|
|
<?php endif; ?>
|
|
|
|
<?php if ($VAR->domain->physicalHosting->apacheWebAppFirewallSettings): ?>
|
|
<IfModule mod_security2.c>
|
|
<?php echo $VAR->domain->physicalHosting->apacheWebAppFirewallSettings ?>
|
|
</IfModule>
|
|
<?php endif ?>
|
|
|
|
<Directory <?php echo $VAR->webspace->vhostDir ?>>
|
|
<?php if ($VAR->domain->physicalHosting->restrictFollowSymLinks): ?>
|
|
Options -FollowSymLinks
|
|
<?php endif ?>
|
|
<?php
|
|
$allowOverrideOptions = ['Indexes', 'SymLinksIfOwnerMatch', 'MultiViews'];
|
|
if (!$VAR->domain->physicalHosting->restrictFollowSymLinks) {
|
|
$allowOverrideOptions[] = 'FollowSymLinks';
|
|
}
|
|
if ($VAR->domain->physicalHosting->cgi || $VAR->server->webserver->apache->allowOverrideExecCGI) {
|
|
$allowOverrideOptions[] = 'ExecCGI';
|
|
}
|
|
if ($VAR->domain->physicalHosting->ssi || $VAR->server->webserver->apache->allowOverrideIncludes) {
|
|
$allowOverrideOptions[] = 'Includes';
|
|
$allowOverrideOptions[] = 'IncludesNOEXEC';
|
|
}
|
|
?>
|
|
AllowOverride AuthConfig FileInfo Indexes Limit Options=<?=implode(',', $allowOverrideOptions)?>
|
|
|
|
</Directory>
|
|
|
|
<?php if (!$VAR->server->webserver->proxyActive): ?>
|
|
<?php if ($VAR->domain->physicalHosting->expires): ?>
|
|
<IfModule mod_expires.c>
|
|
ExpiresActive On
|
|
ExpiresDefault "access plus <?=$VAR->escape($VAR->domain->physicalHosting->expires)?> seconds"
|
|
</IfModule>
|
|
<?php endif ?>
|
|
<IfModule mod_headers.c>
|
|
<?php foreach ((array)$VAR->domain->physicalHosting->headers as list($name, $value)): ?>
|
|
Header add <?=$VAR->quote([$name, $value])?>
|
|
|
|
<?php endforeach ?>
|
|
</IfModule>
|
|
<?php endif ?>
|
|
|
|
<?=$VAR->domain->physicalHosting->extensionsConfigs?>
|
|
</VirtualHost>
|
|
|
|
<?php if ($OPT['ssl']): ?>
|
|
</IfModule>
|
|
<?php endif ?>
|