mirror of
https://github.com/PhyreApps/PhyrePanel.git
synced 2024-11-22 07:30:25 +00:00
update
This commit is contained in:
parent
4d0ea376b6
commit
eedc2e201a
4 changed files with 394 additions and 104 deletions
|
@ -7,6 +7,7 @@ use App\Events\DomainIsCreated;
|
||||||
use App\Events\ModelDomainDeleting;
|
use App\Events\ModelDomainDeleting;
|
||||||
use App\ShellApi;
|
use App\ShellApi;
|
||||||
use App\VirtualHosts\ApacheBuild;
|
use App\VirtualHosts\ApacheBuild;
|
||||||
|
use App\VirtualHosts\DTO\ApacheVirtualHostSettings;
|
||||||
use Illuminate\Database\Eloquent\Builder;
|
use Illuminate\Database\Eloquent\Builder;
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
use Modules\Docker\App\Models\DockerContainer;
|
use Modules\Docker\App\Models\DockerContainer;
|
||||||
|
@ -241,7 +242,7 @@ class Domain extends Model
|
||||||
shell_exec('chmod -f 751 '.$this->domain_public . '/cgi-bin/php');
|
shell_exec('chmod -f 751 '.$this->domain_public . '/cgi-bin/php');
|
||||||
}
|
}
|
||||||
|
|
||||||
$apacheVirtualHostBuilder = new \App\VirtualHosts\ApacheVirtualHostBuilder();
|
$apacheVirtualHostBuilder = new ApacheVirtualHostSettings();
|
||||||
$apacheVirtualHostBuilder->setDomain($this->domain);
|
$apacheVirtualHostBuilder->setDomain($this->domain);
|
||||||
$apacheVirtualHostBuilder->setDomainPublic($this->domain_public);
|
$apacheVirtualHostBuilder->setDomainPublic($this->domain_public);
|
||||||
$apacheVirtualHostBuilder->setDomainRoot($this->domain_root);
|
$apacheVirtualHostBuilder->setDomainRoot($this->domain_root);
|
||||||
|
@ -322,7 +323,7 @@ class Domain extends Model
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$apacheBaseConfig = $apacheVirtualHostBuilder->buildConfig();
|
$virtualHostSettings = $apacheVirtualHostBuilder->getSettings();
|
||||||
|
|
||||||
$catchMainDomain = '';
|
$catchMainDomain = '';
|
||||||
$domainExp = explode('.', $this->domain);
|
$domainExp = explode('.', $this->domain);
|
||||||
|
@ -352,7 +353,7 @@ class Domain extends Model
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$apacheBaseConfigWithSSL = null;
|
$virtualHostSettingsWithSSL = null;
|
||||||
if ($findDomainSSLCertificate) {
|
if ($findDomainSSLCertificate) {
|
||||||
|
|
||||||
$sslCertificateFile = $this->home_root . '/certs/' . $this->domain . '/public/cert.pem';
|
$sslCertificateFile = $this->home_root . '/certs/' . $this->domain . '/public/cert.pem';
|
||||||
|
@ -391,13 +392,13 @@ class Domain extends Model
|
||||||
$apacheVirtualHostBuilder->setSSLCertificateKeyFile($sslCertificateKeyFile);
|
$apacheVirtualHostBuilder->setSSLCertificateKeyFile($sslCertificateKeyFile);
|
||||||
$apacheVirtualHostBuilder->setSSLCertificateChainFile($sslCertificateChainFile);
|
$apacheVirtualHostBuilder->setSSLCertificateChainFile($sslCertificateChainFile);
|
||||||
|
|
||||||
$apacheBaseConfigWithSSL = $apacheVirtualHostBuilder->buildConfig();
|
$virtualHostSettingsWithSSL = $apacheVirtualHostBuilder->getSettings();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return [
|
return [
|
||||||
'apacheBaseConfig' => $apacheBaseConfig,
|
'virtualHostSettings' => $virtualHostSettings,
|
||||||
'apacheBaseConfigWithSSL' => $apacheBaseConfigWithSSL,
|
'virtualHostSettingsWithSSL' => $virtualHostSettingsWithSSL,
|
||||||
];
|
];
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,113 +17,26 @@ class ApacheBuild
|
||||||
|
|
||||||
public function build()
|
public function build()
|
||||||
{
|
{
|
||||||
$virtualHostMerged = '
|
|
||||||
#=========================================================================#
|
|
||||||
# PHYRE HOSTING PANEL - Default Web Domain Template #
|
|
||||||
# DO NOT MODIFY THIS FILE! CHANGES WILL BE LOST WHEN REBUILDING DOMAINS #
|
|
||||||
# https://phyrepanel.com/docs/server-administration/web-templates.html #
|
|
||||||
#=========================================================================#
|
|
||||||
|
|
||||||
DefaultRuntimeDir ${APACHE_RUN_DIR}
|
|
||||||
PidFile ${APACHE_PID_FILE}
|
|
||||||
Timeout 300
|
|
||||||
KeepAlive On
|
|
||||||
MaxKeepAliveRequests 100
|
|
||||||
KeepAliveTimeout 5
|
|
||||||
|
|
||||||
User ${APACHE_RUN_USER}
|
|
||||||
Group ${APACHE_RUN_GROUP}
|
|
||||||
|
|
||||||
HostnameLookups Off
|
|
||||||
ErrorLog ${APACHE_LOG_DIR}/error.log
|
|
||||||
LogLevel warn
|
|
||||||
|
|
||||||
IncludeOptional mods-enabled/*.load
|
|
||||||
IncludeOptional mods-enabled/*.conf
|
|
||||||
|
|
||||||
Listen 80
|
|
||||||
|
|
||||||
<IfModule ssl_module>
|
|
||||||
Listen 443
|
|
||||||
</IfModule>
|
|
||||||
|
|
||||||
<IfModule mod_gnutls.c>
|
|
||||||
Listen 443
|
|
||||||
</IfModule>
|
|
||||||
|
|
||||||
<Directory />
|
|
||||||
Options FollowSymLinks
|
|
||||||
AllowOverride None
|
|
||||||
Require all denied
|
|
||||||
</Directory>
|
|
||||||
|
|
||||||
<Directory /usr/share>
|
|
||||||
AllowOverride None
|
|
||||||
Require all granted
|
|
||||||
</Directory>
|
|
||||||
|
|
||||||
<Directory /var/www/>
|
|
||||||
Options Indexes FollowSymLinks
|
|
||||||
AllowOverride None
|
|
||||||
Require all granted
|
|
||||||
</Directory>
|
|
||||||
|
|
||||||
AccessFileName .htaccess
|
|
||||||
|
|
||||||
<FilesMatch "^\.ht">
|
|
||||||
Require all denied
|
|
||||||
</FilesMatch>
|
|
||||||
|
|
||||||
LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined
|
|
||||||
LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined
|
|
||||||
LogFormat "%h %l %u %t \"%r\" %>s %O" common
|
|
||||||
LogFormat "%{Referer}i -> %U" referer
|
|
||||||
LogFormat "%{User-agent}i" agent
|
|
||||||
|
|
||||||
IncludeOptional conf-enabled/*.conf
|
|
||||||
|
|
||||||
';
|
|
||||||
$getAllDomains = Domain::all();
|
$getAllDomains = Domain::all();
|
||||||
|
$virtualHosts = [];
|
||||||
foreach ($getAllDomains as $domain) {
|
foreach ($getAllDomains as $domain) {
|
||||||
|
$virtualHostSettings = $domain->configureVirtualHost();
|
||||||
$domainVirtualHost = $domain->configureVirtualHost($this->fixPermissions);
|
if (isset($virtualHostSettings['virtualHostSettings'])) {
|
||||||
if (isset($domainVirtualHost['apacheBaseConfig'])) {
|
$virtualHosts[] = $virtualHostSettings['virtualHostSettings'];
|
||||||
$virtualHostMerged .= $domainVirtualHost['apacheBaseConfig'] . "\n\n";
|
|
||||||
}
|
}
|
||||||
if (isset($domainVirtualHost['apacheBaseConfigWithSSL'])) {
|
if (isset($virtualHostSettings['virtualHostSettingsWithSSL'])) {
|
||||||
$virtualHostMerged .= $domainVirtualHost['apacheBaseConfigWithSSL'] . "\n\n";
|
$virtualHosts[] = $virtualHostSettings['virtualHostSettingsWithSSL'];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!empty(setting('general.master_domain'))) {
|
$apache2 = view('actions.samples.ubuntu.apache2-conf-build', [
|
||||||
// Make master domain virtual host
|
'virtualHosts' => $virtualHosts
|
||||||
$masterDomain = new MasterDomain();
|
])->render();
|
||||||
$domainVirtualHost = $masterDomain->configureVirtualHost($this->fixPermissions);
|
|
||||||
if (isset($domainVirtualHost['apacheBaseConfig'])) {
|
|
||||||
$virtualHostMerged .= $domainVirtualHost['apacheBaseConfig'] . "\n\n";
|
|
||||||
}
|
|
||||||
if (isset($domainVirtualHost['apacheBaseConfigWithSSL'])) {
|
|
||||||
$virtualHostMerged .= $domainVirtualHost['apacheBaseConfigWithSSL'] . "\n\n";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$wildcardDomain = setting('general.wildcard_domain');
|
file_put_contents('/etc/apache2/apache2.conf', $apache2);
|
||||||
if (!empty($wildcardDomain)) {
|
|
||||||
// Make wildcard domain virtual host
|
|
||||||
$masterDomain = new MasterDomain();
|
|
||||||
$masterDomain->domain = $wildcardDomain;
|
|
||||||
$domainVirtualHost = $masterDomain->configureVirtualHost($this->fixPermissions);
|
|
||||||
if (isset($domainVirtualHost['apacheBaseConfig'])) {
|
|
||||||
$virtualHostMerged .= $domainVirtualHost['apacheBaseConfig'] . "\n\n";
|
|
||||||
}
|
|
||||||
if (isset($domainVirtualHost['apacheBaseConfigWithSSL'])) {
|
|
||||||
$virtualHostMerged .= $domainVirtualHost['apacheBaseConfigWithSSL'] . "\n\n";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
file_put_contents('/etc/apache2/apache2.conf', $virtualHostMerged);
|
|
||||||
|
|
||||||
shell_exec('systemctl reload apache2');
|
shell_exec('systemctl reload apache2');
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
170
web/app/VirtualHosts/DTO/ApacheVirtualHostSettings.php
Normal file
170
web/app/VirtualHosts/DTO/ApacheVirtualHostSettings.php
Normal file
|
@ -0,0 +1,170 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\VirtualHosts\DTO;
|
||||||
|
|
||||||
|
class ApacheVirtualHostSettings
|
||||||
|
{
|
||||||
|
public $port = 80;
|
||||||
|
|
||||||
|
public $domain;
|
||||||
|
|
||||||
|
public $domainAlias;
|
||||||
|
|
||||||
|
public $domainPublic;
|
||||||
|
|
||||||
|
public $domainRoot;
|
||||||
|
public $homeRoot;
|
||||||
|
|
||||||
|
public $user;
|
||||||
|
public $userGroup;
|
||||||
|
public $additionalServices = [];
|
||||||
|
|
||||||
|
public $sslCertificateFile = null;
|
||||||
|
public $sslCertificateKeyFile = null;
|
||||||
|
public $sslCertificateChainFile = null;
|
||||||
|
|
||||||
|
public $appType = null;
|
||||||
|
|
||||||
|
public $appVersion = null;
|
||||||
|
|
||||||
|
public $passengerAppRoot = null;
|
||||||
|
public $passengerAppType = null;
|
||||||
|
public $passengerStartupFile = null;
|
||||||
|
|
||||||
|
public $serverAdmin = null;
|
||||||
|
|
||||||
|
public $proxyPass = null;
|
||||||
|
|
||||||
|
public $enableLogs = false;
|
||||||
|
|
||||||
|
public function setPort($port)
|
||||||
|
{
|
||||||
|
$this->port = $port;
|
||||||
|
}
|
||||||
|
public function setDomain($domain)
|
||||||
|
{
|
||||||
|
$this->domain = $domain;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function setDomainAlias($domainAlias)
|
||||||
|
{
|
||||||
|
$this->domainAlias = $domainAlias;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function setDomainPublic($domainPublic)
|
||||||
|
{
|
||||||
|
$this->domainPublic = $domainPublic;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function setDomainRoot($domainRoot)
|
||||||
|
{
|
||||||
|
$this->domainRoot = $domainRoot;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function setHomeRoot($homeRoot)
|
||||||
|
{
|
||||||
|
$this->homeRoot = $homeRoot;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function setUser($user)
|
||||||
|
{
|
||||||
|
$this->user = $user;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function setUserGroup($userGroup)
|
||||||
|
{
|
||||||
|
$this->userGroup = $userGroup;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function setAdditionalServices($additionalServices)
|
||||||
|
{
|
||||||
|
$this->additionalServices = $additionalServices;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function setSSLCertificateFile($sslCertificateFile)
|
||||||
|
{
|
||||||
|
$this->sslCertificateFile = $sslCertificateFile;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function setSSLCertificateKeyFile($sslCertificateKeyFile)
|
||||||
|
{
|
||||||
|
$this->sslCertificateKeyFile = $sslCertificateKeyFile;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function setSSLCertificateChainFile($sslCertificateChainFile)
|
||||||
|
{
|
||||||
|
$this->sslCertificateChainFile = $sslCertificateChainFile;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function setAppType($appType)
|
||||||
|
{
|
||||||
|
$this->appType = $appType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function setAppVersion($appVersion)
|
||||||
|
{
|
||||||
|
$this->appVersion = $appVersion;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function setPassengerAppRoot($passengerAppRoot)
|
||||||
|
{
|
||||||
|
$this->passengerAppRoot = $passengerAppRoot;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function setPassengerAppType($passengerAppType)
|
||||||
|
{
|
||||||
|
$this->passengerAppType = $passengerAppType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function setPassengerStartupFile($passengerStartupFile)
|
||||||
|
{
|
||||||
|
$this->passengerStartupFile = $passengerStartupFile;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function setServerAdmin($email)
|
||||||
|
{
|
||||||
|
$this->serverAdmin = $email;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function setProxyPass($proxyPass)
|
||||||
|
{
|
||||||
|
$this->proxyPass = $proxyPass;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function setEnableLogs($enableLogs)
|
||||||
|
{
|
||||||
|
$this->enableLogs = $enableLogs;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getSettings()
|
||||||
|
{
|
||||||
|
$settings = [
|
||||||
|
'port' => $this->port,
|
||||||
|
'domain' => $this->domain,
|
||||||
|
'domainAlias' => $this->domainAlias,
|
||||||
|
'domainPublic' => $this->domainPublic,
|
||||||
|
'domainRoot' => $this->domainRoot,
|
||||||
|
'homeRoot' => $this->homeRoot,
|
||||||
|
'serverAdmin' => $this->serverAdmin,
|
||||||
|
'user' => $this->user,
|
||||||
|
'group' => $this->userGroup,
|
||||||
|
'enableRuid2' => true,
|
||||||
|
'sslCertificateFile' => $this->sslCertificateFile,
|
||||||
|
'sslCertificateKeyFile' => $this->sslCertificateKeyFile,
|
||||||
|
'sslCertificateChainFile' => $this->sslCertificateChainFile,
|
||||||
|
'appType' => $this->appType,
|
||||||
|
'appVersion' => $this->appVersion,
|
||||||
|
'passengerAppRoot' => $this->passengerAppRoot,
|
||||||
|
'passengerAppType' => $this->passengerAppType,
|
||||||
|
'passengerStartupFile' => $this->passengerStartupFile,
|
||||||
|
'proxyPass' => $this->proxyPass,
|
||||||
|
'enableLogs' => $this->enableLogs,
|
||||||
|
];
|
||||||
|
|
||||||
|
$apacheVirtualHostConfigs = app()->virtualHostManager->getConfigs($this->additionalServices);
|
||||||
|
|
||||||
|
$settings = array_merge($settings, $apacheVirtualHostConfigs);
|
||||||
|
|
||||||
|
return $settings;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,206 @@
|
||||||
|
#=========================================================================#
|
||||||
|
# PHYRE HOSTING PANEL - Default Web Domain Template #
|
||||||
|
# DO NOT MODIFY THIS FILE! CHANGES WILL BE LOST WHEN REBUILDING DOMAINS #
|
||||||
|
# https://phyrepanel.com/docs/server-administration/web-templates.html #
|
||||||
|
#=========================================================================#
|
||||||
|
|
||||||
|
DefaultRuntimeDir ${APACHE_RUN_DIR}
|
||||||
|
PidFile ${APACHE_PID_FILE}
|
||||||
|
Timeout 300
|
||||||
|
KeepAlive On
|
||||||
|
MaxKeepAliveRequests 100
|
||||||
|
KeepAliveTimeout 5
|
||||||
|
|
||||||
|
User ${APACHE_RUN_USER}
|
||||||
|
Group ${APACHE_RUN_GROUP}
|
||||||
|
|
||||||
|
HostnameLookups Off
|
||||||
|
ErrorLog ${APACHE_LOG_DIR}/error.log
|
||||||
|
LogLevel warn
|
||||||
|
|
||||||
|
IncludeOptional mods-enabled/*.load
|
||||||
|
IncludeOptional mods-enabled/*.conf
|
||||||
|
|
||||||
|
Listen 80
|
||||||
|
|
||||||
|
<IfModule ssl_module>
|
||||||
|
Listen 443
|
||||||
|
</IfModule>
|
||||||
|
|
||||||
|
<IfModule mod_gnutls.c>
|
||||||
|
Listen 443
|
||||||
|
</IfModule>
|
||||||
|
|
||||||
|
<Directory />
|
||||||
|
Options FollowSymLinks
|
||||||
|
AllowOverride None
|
||||||
|
Require all denied
|
||||||
|
</Directory>
|
||||||
|
|
||||||
|
<Directory /usr/share>
|
||||||
|
AllowOverride None
|
||||||
|
Require all granted
|
||||||
|
</Directory>
|
||||||
|
|
||||||
|
<Directory /var/www/>
|
||||||
|
Options Indexes FollowSymLinks
|
||||||
|
AllowOverride None
|
||||||
|
Require all granted
|
||||||
|
</Directory>
|
||||||
|
|
||||||
|
AccessFileName .htaccess
|
||||||
|
|
||||||
|
<FilesMatch "^\.ht">
|
||||||
|
Require all denied
|
||||||
|
</FilesMatch>
|
||||||
|
|
||||||
|
LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined
|
||||||
|
LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined
|
||||||
|
LogFormat "%h %l %u %t \"%r\" %>s %O" common
|
||||||
|
LogFormat "%{Referer}i -> %U" referer
|
||||||
|
LogFormat "%{User-agent}i" agent
|
||||||
|
|
||||||
|
IncludeOptional conf-enabled/*.conf
|
||||||
|
|
||||||
|
@foreach($virtualHosts as $virtualHost)
|
||||||
|
|
||||||
|
<VirtualHost *:{{$virtualHost['port']}}>
|
||||||
|
|
||||||
|
@if(!empty($virtualHost['serverAdmin']))
|
||||||
|
|
||||||
|
ServerAdmin {{$virtualHost['serverAdmin']}}
|
||||||
|
|
||||||
|
@endif
|
||||||
|
|
||||||
|
ServerName {{$virtualHost['domain']}}
|
||||||
|
|
||||||
|
@if(!empty($virtualHost['domainAlias']))
|
||||||
|
|
||||||
|
ServerAlias {{$virtualHost['domainAlias']}}
|
||||||
|
|
||||||
|
@endif
|
||||||
|
|
||||||
|
DocumentRoot {{$virtualHost['domainPublic']}}
|
||||||
|
SetEnv APP_DOMAIN {{$virtualHost['domain']}}
|
||||||
|
|
||||||
|
@if(isset($virtualHost['enableRuid2']) && $virtualHost['enableRuid2'] && !empty($virtualHost['user']) && !empty($virtualHost['group']))
|
||||||
|
|
||||||
|
#RDocumentChRoot {{$virtualHost['domainPublic']}}
|
||||||
|
#SuexecUserGroup {{$virtualHost['user']}} {{$virtualHost['group']}}
|
||||||
|
#RUidGid {{$virtualHost['user']}} {{$virtualHost['group']}}
|
||||||
|
|
||||||
|
@endif
|
||||||
|
|
||||||
|
@if($virtualHost['enableLogs'])
|
||||||
|
|
||||||
|
LogFormat "%h %l %u %t \"%r\" %>s %b" common
|
||||||
|
|
||||||
|
CustomLog {{$virtualHost['domainRoot']}}/logs/apache2/bytes.log bytes
|
||||||
|
CustomLog {{$virtualHost['domainRoot']}}/logs/apache2/access.log common
|
||||||
|
ErrorLog {{$virtualHost['domainRoot']}}/logs/apache2/error.log
|
||||||
|
|
||||||
|
@endif
|
||||||
|
|
||||||
|
@if($virtualHost['appType'] == 'php')
|
||||||
|
|
||||||
|
ScriptAlias /cgi-bin/ {{$virtualHost['domainPublic']}}/cgi-bin/
|
||||||
|
|
||||||
|
@endif
|
||||||
|
|
||||||
|
@if (!empty($virtualHost['proxyPass']))
|
||||||
|
|
||||||
|
ProxyPreserveHost On
|
||||||
|
ProxyRequests Off
|
||||||
|
ProxyVia On
|
||||||
|
ProxyPass / {{$virtualHost['proxyPass']}}
|
||||||
|
ProxyPassReverse / {{$virtualHost['proxyPass']}}
|
||||||
|
|
||||||
|
@endif
|
||||||
|
|
||||||
|
<Directory {{$virtualHost['domainPublic']}}>
|
||||||
|
|
||||||
|
Options Indexes FollowSymLinks MultiViews @if($virtualHost['appType'] == 'php') Includes ExecCGI @endif
|
||||||
|
|
||||||
|
AllowOverride All
|
||||||
|
Require all granted
|
||||||
|
|
||||||
|
@if(isset($virtualHost['enableRuid2']) && $virtualHost['enableRuid2'] && !empty($virtualHost['user']) && !empty($virtualHost['group']))
|
||||||
|
|
||||||
|
RMode config
|
||||||
|
RUidGid {{$virtualHost['user']}} {{$virtualHost['group']}}
|
||||||
|
|
||||||
|
@endif
|
||||||
|
|
||||||
|
@if($virtualHost['passengerAppRoot'] !== null)
|
||||||
|
|
||||||
|
PassengerAppRoot {{$virtualHost['passengerAppRoot']}}
|
||||||
|
|
||||||
|
PassengerAppType {{$virtualHost['passengerAppType']}}
|
||||||
|
|
||||||
|
@if($virtualHost['passengerStartupFile'] !== null)
|
||||||
|
PassengerStartupFile {{$virtualHost['passengerStartupFile']}}
|
||||||
|
@endif
|
||||||
|
|
||||||
|
@endif
|
||||||
|
|
||||||
|
@if($virtualHost['appType'] == 'php')
|
||||||
|
|
||||||
|
Action phpcgi-script /cgi-bin/php
|
||||||
|
<Files *.php>
|
||||||
|
SetHandler phpcgi-script
|
||||||
|
</Files>
|
||||||
|
|
||||||
|
@php
|
||||||
|
$appendOpenBaseDirs = $virtualHost['homeRoot'];
|
||||||
|
if (isset($virtualHost['phpAdminValueOpenBaseDirs'])
|
||||||
|
&& is_array($virtualHost['phpAdminValueOpenBaseDirs'])
|
||||||
|
&& !empty($virtualHost['phpAdminValueOpenBaseDirs'])) {
|
||||||
|
$appendOpenBaseDirs .= ':' . implode(':', $virtualHost['phpAdminValueOpenBaseDirs']);
|
||||||
|
}
|
||||||
|
@endphp
|
||||||
|
|
||||||
|
php_admin_value open_basedir {{$appendOpenBaseDirs}}
|
||||||
|
|
||||||
|
php_admin_value upload_tmp_dir {{$virtualHost['homeRoot']}}/tmp
|
||||||
|
php_admin_value session.save_path {{$virtualHost['homeRoot']}}/tmp
|
||||||
|
php_admin_value sys_temp_dir {{$virtualHost['homeRoot']}}/tmp
|
||||||
|
|
||||||
|
@endif
|
||||||
|
|
||||||
|
</Directory>
|
||||||
|
|
||||||
|
@if(!empty($virtualHost['sslCertificateFile']) and !empty($virtualHost['sslCertificateKeyFile']))
|
||||||
|
|
||||||
|
SSLEngine on
|
||||||
|
SSLCertificateFile {{$virtualHost['sslCertificateFile']}}
|
||||||
|
SSLCertificateKeyFile {{$virtualHost['sslCertificateKeyFile']}}
|
||||||
|
|
||||||
|
@if (!empty($virtualHost['sslCertificateChainFile']))
|
||||||
|
|
||||||
|
SSLCertificateChainFile {{$virtualHost['sslCertificateChainFile']}}
|
||||||
|
|
||||||
|
@endif
|
||||||
|
|
||||||
|
|
||||||
|
SSLEngine on
|
||||||
|
|
||||||
|
# Intermediate configuration, tweak to your needs
|
||||||
|
SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
|
||||||
|
SSLCipherSuite ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384
|
||||||
|
SSLHonorCipherOrder off
|
||||||
|
SSLSessionTickets off
|
||||||
|
|
||||||
|
SSLOptions +StrictRequire
|
||||||
|
|
||||||
|
# Add vhost name to log entries:
|
||||||
|
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"" vhost_combined
|
||||||
|
LogFormat "%v %h %l %u %t \"%r\" %>s %b" vhost_common
|
||||||
|
|
||||||
|
|
||||||
|
@endif
|
||||||
|
|
||||||
|
</VirtualHost>
|
||||||
|
|
||||||
|
|
||||||
|
@endforeach
|
||||||
|
|
Loading…
Reference in a new issue