|
|
@ -3,9 +3,11 @@ |
|
|
|
namespace App\Helpers; |
|
|
|
|
|
|
|
/** |
|
|
|
* hande nginx vhosts |
|
|
|
* |
|
|
|
* |
|
|
|
* |
|
|
|
* @author Björn Hase, Tentakelfabrik |
|
|
|
* @license http://opensource.org/licenses/MIT The MIT License |
|
|
|
* @link https://gitea.tentakelfabrik.de/Tentakelfabrik/mcp |
|
|
|
* |
|
|
|
*/ |
|
|
|
class NginxVhostHelper |
|
|
@ -26,7 +28,7 @@ class NginxVhostHelper |
|
|
|
]; |
|
|
|
|
|
|
|
/** |
|
|
|
* |
|
|
|
* get sites that are in sites-available |
|
|
|
* |
|
|
|
* |
|
|
|
* @return array |
|
|
@ -38,7 +40,7 @@ class NginxVhostHelper |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* |
|
|
|
* get sites that are in sites-enabled |
|
|
|
* |
|
|
|
* |
|
|
|
* @return array |
|
|
@ -56,6 +58,8 @@ class NginxVhostHelper |
|
|
|
* ssl_certificate /etc/letsencrypt/live/<domain>/fullchain.pem; |
|
|
|
* ssl_certificate_key /etc/letsencrypt/live/<domain>/privkey.pem; |
|
|
|
* |
|
|
|
* @param string $filename |
|
|
|
* |
|
|
|
*/ |
|
|
|
private function getCertificate($path) |
|
|
|
{ |
|
|
@ -72,7 +76,7 @@ class NginxVhostHelper |
|
|
|
preg_match(self::REGEX_SSL_CERTIFICATE, $content, $matches); |
|
|
|
preg_match(self::REGEX_SSL_CERTIFICATE_KEY, $content, $matches); |
|
|
|
|
|
|
|
// check for ssl certificates
|
|
|
|
// check ssl certificates
|
|
|
|
if (count($matches) >= 2) { |
|
|
|
$result['ssl'] = true; |
|
|
|
|
|
|
@ -80,6 +84,7 @@ class NginxVhostHelper |
|
|
|
$result['ssl_certificate_exists'] = true; |
|
|
|
} |
|
|
|
|
|
|
|
// getting expired
|
|
|
|
exec('openssl x509 -noout -dates -in '.$path, $openssl); |
|
|
|
|
|
|
|
if (isset($openssl[1])) { |
|
|
@ -91,6 +96,13 @@ class NginxVhostHelper |
|
|
|
return $result; |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* get vhost |
|
|
|
* |
|
|
|
* @param string $filename |
|
|
|
* @param array $enabled |
|
|
|
* @return array |
|
|
|
*/ |
|
|
|
private function getVhost($filename, $enabled) |
|
|
|
{ |
|
|
|
// getting full path
|
|
|
@ -109,6 +121,12 @@ class NginxVhostHelper |
|
|
|
return $result; |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* find single vhost by filename |
|
|
|
* |
|
|
|
* @param string $filename |
|
|
|
* @return array |
|
|
|
*/ |
|
|
|
public function findOneByFilename($filename) |
|
|
|
{ |
|
|
|
// getting enabled
|
|
|
@ -117,8 +135,9 @@ class NginxVhostHelper |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* getting vhosts |
|
|
|
* find all vhost |
|
|
|
* |
|
|
|
* @return array |
|
|
|
*/ |
|
|
|
public function find() |
|
|
|
{ |
|
|
|