Bernd Wurst commited on 2018-07-18 20:56:31
Zeige 2 geänderte Dateien mit 33 Einfügungen und 11 Löschungen.
| ... | ... |
@@ -146,6 +146,8 @@ $phpoptions = "<h5>PHP</h5> |
| 146 | 146 |
$options[$tag] = 'PHP '.$info['major'].'.'.$info['minor']; |
| 147 | 147 |
if ($info['status'] == 'deprecated') {
|
| 148 | 148 |
$options[$tag] .= ' (veraltet)'; |
| 149 |
+ } elseif ($info['status'] == 'beta') {
|
|
| 150 |
+ $options[$tag] .= ' (Testversion)'; |
|
| 149 | 151 |
} elseif ($info['status'] == 'used') {
|
| 150 | 152 |
$options[$tag] .= ' (nur Bestandsschutz)'; |
| 151 | 153 |
} |
| ... | ... |
@@ -24,18 +24,33 @@ require_once("certs.php");
|
| 24 | 24 |
|
| 25 | 25 |
|
| 26 | 26 |
function valid_php_versions() {
|
| 27 |
+ /* In der konfiguration ist die Variable "php_versions" eine kommaseparierte Liste der unterstützten Versionen. |
|
| 28 |
+ Dabei gelten folgende Suffixe (nicht kombinierbar!): |
|
| 29 |
+ *: Standardversion für neue Konfigurationen |
|
| 30 |
+ /: Deprecated |
|
| 31 |
+ +: Beta-Version |
|
| 32 |
+ */ |
|
| 27 | 33 |
$tags = explode(',', config('php_versions'));
|
| 28 | 34 |
$ret = array(); |
| 29 | 35 |
foreach ($tags as $t) {
|
| 30 |
- $key = str_replace('*', '', $t);
|
|
| 31 |
- $ret[$key] = array('major' => null, 'minor' => null, 'status' => 'regular');
|
|
| 36 |
+ $key = $t; |
|
| 37 |
+ $ver = array('major' => null, 'minor' => null, 'status' => 'regular', 'default' => false);
|
|
| 38 |
+ if (substr($t, -1, 1) == '+') {
|
|
| 39 |
+ $ver['status'] = 'beta'; |
|
| 40 |
+ $key = substr($t, 0, -1); |
|
| 41 |
+ } elseif (substr($t, -1, 1) == '/') {
|
|
| 42 |
+ $ver['status'] = 'deprecated'; |
|
| 43 |
+ $key = substr($t, 0, -1); |
|
| 44 |
+ } elseif (substr($t, -1, 1) == '*') {
|
|
| 45 |
+ $ver['default'] = true; |
|
| 46 |
+ $key = substr($t, 0, -1); |
|
| 47 |
+ } |
|
| 48 |
+ |
|
| 32 | 49 |
/* Wir nehmen an, dass unsere Tags immer an zweitletzter Stelle die Major-Version und |
| 33 | 50 |
an letzter Stelle die Minor-Version enthalten */ |
| 34 |
- $ret[$key]['major'] = substr(str_replace('*', '', $t), -2, 1);
|
|
| 35 |
- $ret[$key]['minor'] = substr(str_replace('*', '', $t), -1, 1);
|
|
| 36 |
- if (substr($t, -1) === '*') {
|
|
| 37 |
- $ret[$key]['status'] = 'deprecated'; |
|
| 38 |
- } |
|
| 51 |
+ $ver['major'] = substr($key, -2, 1); |
|
| 52 |
+ $ver['minor'] = substr($key, -1, 1); |
|
| 53 |
+ $ret[$key] = $ver; |
|
| 39 | 54 |
} |
| 40 | 55 |
/* Bis hier: aus der Datenbank ausgelesen */ |
| 41 | 56 |
DEBUG($ret); |
| ... | ... |
@@ -44,12 +59,11 @@ function valid_php_versions() {
|
| 44 | 59 |
foreach ($list as $vhost) {
|
| 45 | 60 |
if ($vhost['php'] && !array_key_exists($vhost['php'], $ret)) {
|
| 46 | 61 |
$key = $vhost['php']; |
| 47 |
- $ret = array($key => array('major' => null, 'minor' => null, 'status' => 'regular')) + $ret;
|
|
| 62 |
+ $ret = array($key => array('major' => null, 'minor' => null, 'status' => 'used', 'default' => false)) + $ret;
|
|
| 48 | 63 |
/* Wir nehmen an, dass unsere Tags immer an zweitletzter Stelle die Major-Version und |
| 49 | 64 |
an letzter Stelle die Minor-Version enthalten */ |
| 50 | 65 |
$ret[$key]['major'] = substr($key, -2, 1); |
| 51 | 66 |
$ret[$key]['minor'] = substr($key, -1, 1); |
| 52 |
- $ret[$key]['status'] = 'used'; |
|
| 53 | 67 |
} |
| 54 | 68 |
} |
| 55 | 69 |
return $ret; |
| ... | ... |
@@ -118,8 +132,14 @@ function empty_vhost() |
| 118 | 132 |
|
| 119 | 133 |
$vhost['homedir'] = $_SESSION['userinfo']['homedir']; |
| 120 | 134 |
$vhost['docroot'] = null; |
| 121 |
- $phpversions = explode(',', config('php_versions'));
|
|
| 122 |
- $vhost['php'] = end($phpversions); |
|
| 135 |
+ |
|
| 136 |
+ $vhost['php'] = null; |
|
| 137 |
+ $phpversions = valid_php_versions(); |
|
| 138 |
+ foreach ($phpversions as $tag => $info) {
|
|
| 139 |
+ if ($info['default']) {
|
|
| 140 |
+ $vhost['php'] = $tag; |
|
| 141 |
+ } |
|
| 142 |
+ } |
|
| 123 | 143 |
$vhost['cgi'] = 1; |
| 124 | 144 |
$vhost['ssl'] = null; |
| 125 | 145 |
$vhost['hsts'] = -1; |
| 126 | 146 |