adding proper postinst, postrm, install domaines_types in alternc.install instead of SQL script, uninstall properly, setup name-based virtual hosts on apache2
This commit is contained in:
		
							parent
							
								
									eab44df9db
								
							
						
					
					
						commit
						f85251f707
					
				|  | @ -8,13 +8,17 @@ case "$1" in | ||||||
|     alternc.install || true     # don't fail removal if alternc.install bails out |     alternc.install || true     # don't fail removal if alternc.install bails out | ||||||
| 
 | 
 | ||||||
|     # TODO : we don't purge *-ssl vhosts or *-ssl templates, they may break the hosting ... |     # TODO : we don't purge *-ssl vhosts or *-ssl templates, they may break the hosting ... | ||||||
|     ;; |     if [ -e "$CONFIGFILE" -a -x "/usr/bin/mysql" ]; then | ||||||
|  |         mysql --defaults-file=${CONFIGFILE} -f -e "DELETE FROM domaines_type WHERE name IN ('vhost-ssl,'vhost-mixssl','roundcube-ssl','squirrelmail-ssl','panel-ssl','php52-ssl','php52-mixssl');" | ||||||
|  |         mysql --defaults-file=${CONFIGFILE} -f -e "UPDATE sub_domaines SET web_action='DELETE' WHERE type IN ('vhost-ssl,'vhost-mixssl','roundcube-ssl','squirrelmail-ssl','panel-ssl','php52-ssl','php52-mixssl');" | ||||||
|  |     fi | ||||||
|  | ;; | ||||||
|   purge) |   purge) | ||||||
|     # but yes, at purge time we should |     # Purge the certificate and alias table: | ||||||
|     #if [ -e "$CONFIGFILE" -a -x "/usr/bin/mysql" ]; then |     if [ -e "$CONFIGFILE" -a -x "/usr/bin/mysql" ]; then | ||||||
|     #    mysql --defaults-file=${CONFIGFILE} -f -e "DROP TABLE IF EXISTS certificate" |        mysql --defaults-file=${CONFIGFILE} -f -e "DROP TABLE IF EXISTS certificate;" | ||||||
|     #  and other purges... |        mysql --defaults-file=${CONFIGFILE} -f -e "DROP TABLE IF EXISTS certif_alias;" | ||||||
|     #fi |     fi | ||||||
|     ;; |     ;; | ||||||
| esac | esac | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -18,7 +18,7 @@ | ||||||
| 
 | 
 | ||||||
| install: | install: | ||||||
| 	install -m 0644 -g root -o root ssl.sql $(DESTDIR)/usr/share/alternc/install/ | 	install -m 0644 -g root -o root ssl.sql $(DESTDIR)/usr/share/alternc/install/ | ||||||
| 	install -m 0755 -g root -o root alternc-ssl.install $(DESTDIR)/usr/lib/alternc/install.d/ | 	install -m 0755 -g root -o root alternc-ssl.install.php $(DESTDIR)/usr/lib/alternc/install.d/ | ||||||
| 	install -m 0755 -g root -o root update_ssl.php $(DESTDIR)/usr/lib/alternc/ | 	install -m 0755 -g root -o root update_ssl.php $(DESTDIR)/usr/lib/alternc/ | ||||||
| # incron
 | # incron
 | ||||||
| 	install -m 0755 -g root -o root ssl_alias_manager.sh $(DESTDIR)/usr/lib/alternc/ | 	install -m 0755 -g root -o root ssl_alias_manager.sh $(DESTDIR)/usr/lib/alternc/ | ||||||
|  |  | ||||||
|  | @ -1,9 +0,0 @@ | ||||||
| #!/usr/bin/php |  | ||||||
| <?php |  | ||||||
| /* |  | ||||||
|  at alternc.install time, we deploy our templates |  | ||||||
|  and synchronize the required domain templates with the current install |  | ||||||
|  (do they have php52, roundcube, squirrelmail, etc.?) |  | ||||||
| */ |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
|  | @ -0,0 +1,74 @@ | ||||||
|  | #!/usr/bin/php
 | ||||||
|  | <?php | ||||||
|  | /* | ||||||
|  |   at alternc.install time | ||||||
|  |   synchronize the required domain templates with the current install | ||||||
|  |   (do they have php52, roundcube, squirrelmail, etc.?) | ||||||
|  |  */ | ||||||
|  | 
 | ||||||
|  | if ($argv[1] == "before-reload") { | ||||||
|  |     // Bootstrap
 | ||||||
|  |     require_once("/usr/share/alternc/panel/class/config_nochk.php"); | ||||||
|  | 
 | ||||||
|  |     $db->query("INSERT IGNORE INTO `domaines_type` (name, description, target, entry, compatibility, enable, only_dns, need_dns, advanced ) VALUES
 | ||||||
|  |             ('vhost-ssl', 'Locally hosted forcing HTTPS', 'DIRECTORY', '%SUB% IN A @@PUBLIC_IP@@', 'vhost,url,txt,defmx,defmx2,mx,mx2', 'ALL', 0, 0, 0);");
 | ||||||
|  | 
 | ||||||
|  |     $db->query("INSERT IGNORE INTO `domaines_type` (name, description, target, entry, compatibility, enable, only_dns, need_dns, advanced ) VALUES
 | ||||||
|  |             ('vhost-mixssl', 'Locally hosted HTTP and HTTPS', 'DIRECTORY', '%SUB% IN A @@PUBLIC_IP@@', 'vhost,url,txt,defmx,defmx2,mx,mx2', 'ALL', 0, 0, 0);");
 | ||||||
|  | 
 | ||||||
|  |     $db->query("INSERT IGNORE INTO `domaines_type` (name, description, target, entry, compatibility, enable, only_dns, need_dns, advanced ) VALUES
 | ||||||
|  |             ('panel-ssl', 'AlternC panel access WITH SSL', 'NONE', '%SUB% IN A @@PUBLIC_IP@@', 'ip,ipv6,cname,txt,mx,mx2,defmx,defmx2', 'ALL', 0, 0, 1);");
 | ||||||
|  | 
 | ||||||
|  |     $db - query("SELECT * FROM domaines_type WHERE name='roundcube';"); | ||||||
|  |     if ($db->next_record()) { | ||||||
|  |         $db->query("INSERT IGNORE INTO `domaines_type` (name, description, target, entry, compatibility, enable, only_dns, need_dns, advanced ) VALUES
 | ||||||
|  |     ('roundcube-ssl', 'Roundcube Webmail access WITH SSL', 'NONE', '%SUB% IN A @@PUBLIC_IP@@', 'mx,mx2,defmx,defmx2,txt', 'ALL', 0, 0, 1;");
 | ||||||
|  |     } else { | ||||||
|  |         $db->query("DELETE FROM domaines_type WHERE name='roundcube-ssl';"); | ||||||
|  |         $db->query("UPDATE sub_domaines SET web_action='DELETE' WHERE type='roundcube-ssl';"); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     $db - query("SELECT * FROM domaines_type WHERE name='squirrelmail';"); | ||||||
|  |     if ($db->next_record()) { | ||||||
|  |         $db->query("INSERT IGNORE INTO `domaines_type` (name, description, target, entry, compatibility, enable, only_dns, need_dns, advanced ) VALUES
 | ||||||
|  |             ('squirrelmail-ssl', 'Squirrelmail Webmail access WITH SSL', 'NONE', '%SUB% IN A @@PUBLIC_IP@@', 'mx,mx2,defmx,defmx2,txt', 'ALL', 0, 0, 1);");
 | ||||||
|  |     } else { | ||||||
|  |         $db->query("DELETE FROM domaines_type WHERE name='squirrelmail-ssl';"); | ||||||
|  |         $db->query("UPDATE sub_domaines SET web_action='DELETE' WHERE type='squirrelmail-ssl';"); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     $db - query("SELECT * FROM domaines_type WHERE name='php52';"); | ||||||
|  |     if ($db->next_record()) { | ||||||
|  |         $db->query("INSERT IGNORE INTO `domaines_type` (name, description, target, entry, compatibility, enable, only_dns, need_dns, advanced ) VALUES
 | ||||||
|  |             ('php52-ssl', 'php52 forcing HTTPS', 'DIRECTORY', '%SUB% IN A @@PUBLIC_IP@@', 'vhost,url,txt,defmx,defmx2,mx,mx2', 'ALL', 0, 0, 0);");
 | ||||||
|  |         $db->query("INSERT IGNORE INTO `domaines_type` (name, description, target, entry, compatibility, enable, only_dns, need_dns, advanced ) VALUES
 | ||||||
|  |             ('php52-mixssl', 'php52 HTTP and HTTPS', 'DIRECTORY', '%SUB% IN A @@PUBLIC_IP@@', 'vhost,url,txt,defmx,defmx2,mx,mx2', 'ALL', 0, 0, 0);");
 | ||||||
|  |     } else { | ||||||
|  |         $db->query("DELETE FROM domaines_type WHERE name='php52-ssl';"); | ||||||
|  |         $db->query("UPDATE sub_domaines SET web_action='DELETE' WHERE type='php52-ssl';"); | ||||||
|  |         $db->query("DELETE FROM domaines_type WHERE name='php52-mixssl';"); | ||||||
|  |         $db->query("UPDATE sub_domaines SET web_action='DELETE' WHERE type='php52-mixssl';"); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     // Enable name-based virtual hosts in Apache2 : 
 | ||||||
|  |     $f = fopen("/etc/apache2/ports.conf", "rb"); | ||||||
|  |     if (!$f) { | ||||||
|  |         echo "FATAL: there is no /etc/apache2/ports.conf ! I can't configure name-based virtual hosts\n"; | ||||||
|  |     } else { | ||||||
|  |         $found = false; | ||||||
|  |         while ($s = fgets($f, 1024)) { | ||||||
|  |             if (preg_match("#NameVirtualHost.*443#", $s)) { | ||||||
|  |                 $found = true; | ||||||
|  |                 break; | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |         fclose($f); | ||||||
|  |         if (!$found) { | ||||||
|  |             $f = fopen("/etc/apache2/ports.conf", "ab"); | ||||||
|  |             fputs($f, "\n<IfModule mod_ssl.c>\n  NameVirtualHost *:443\n\n</IfModule>\n"); | ||||||
|  |             fclose($f); | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  |      | ||||||
|  |      | ||||||
|  | } // before-reload
 | ||||||
|  | @ -46,7 +46,7 @@ class m_ssl { | ||||||
| 
 | 
 | ||||||
|     var $myDomainesTypes = array("vhost-ssl", "url-ssl", "panel-ssl", "roundcube-ssl", "squirrelmail-ssl"); |     var $myDomainesTypes = array("vhost-ssl", "url-ssl", "panel-ssl", "roundcube-ssl", "squirrelmail-ssl"); | ||||||
| 
 | 
 | ||||||
|     const KEY_REPOSITORY = "/var/lib/alternc/ssl/private/"; |     const KEY_REPOSITORY = "/var/lib/alternc/ssl/private"; | ||||||
| 
 | 
 | ||||||
| // ----------------------------------------------------------------- 
 | // ----------------------------------------------------------------- 
 | ||||||
|     /** |     /** | ||||||
|  | @ -387,7 +387,7 @@ class m_ssl { | ||||||
|         if (!in_array($type, $this->myDomainesTypes)) { |         if (!in_array($type, $this->myDomainesTypes)) { | ||||||
|             return; // nothing to do : the type is not our to start with ;) 
 |             return; // nothing to do : the type is not our to start with ;) 
 | ||||||
|         } |         } | ||||||
|         if ($action == "create") { |         if ($action == "postinst") { | ||||||
|             $err->log("ssl", "update_domain:CREATE($action,$type,$fqdn)"); |             $err->log("ssl", "update_domain:CREATE($action,$type,$fqdn)"); | ||||||
|             $offset = 0; |             $offset = 0; | ||||||
|             $found = false; |             $found = false; | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue
	
	 Benjamin Sonntag
						Benjamin Sonntag