Jump to content
Froxlor Forum
  • 0

Apache2 startet nicht mehr nach Froxlor Update von 0.9.29-rc1 auf 0.9.30


virtualmarc

Question

Hallo,

 

ich habe das Problem, dass Apache2 nach einem Update von 0.9.29-rc1 auf 0.9.30 nicht mehr startete. (Nachdem der Cronjob die Configs neu geschrieben hatte)

 

Es erscheint immer folgender Fehler in der vHost Config Datei:

 

 

 

[Fri Nov 01 19:14:08 2013] [error] Server should be SSL-aware but has no certificate configured [Hint: SSLCertificateFile] ((null):0)

 

Nach einem Hinweis von serverfault habe ich hinter den

Listen XX.XXX.XX.XX:443

noch ein http gesetzt:

Listen XX.XXX.XX.XX:443 http

Was allerdings dazu f?hrt, dass ein falsches SSL Zertifikat benutzt wird, aber Apache2 wenigstens wieder startet.

 

Froxlor hat nach der Neugenerierung der Konfiguration auch keine SSL vHosts erstellt, wenn SSL Redirect nicht angehakt ist. (Aber auch bei diesen Funktioniert SSL nicht mehr).

 

Mehr Informationen, u.a. generierte Konfigurationsdateien und Screenshots von meiner Froxlor Konfiguration:

http://redmine.froxlor.org/issues/1290

Link to comment
Share on other sites

12 answers to this question

Recommended Posts

Also du beschreibst das Problem nicht korrekt, wir haben doch im Ticket dar?ber gesprochen:

 

Problem:

 

Bei dir werden, wieso auch immer, keine SSL-Vhosts f?r die Domains erstellt (das m?ssen wir rauskriegen), daher ist es klar, dass bei dir die Vhosts funktionieren, wenn du ?ber Listen [ip]:443 http n?mlich alles wieder auf den normalen http-Vhost umleitest (Port 80).

 

Nochmal: Das Setzen von "http" hinter einem Listen einer SSL-IP/Port leitet wieder auf http (Port 80) und ist damit NICHT korrekt!

 

Jetzt gilt es herauszufinden, wieso bei dir die Vhost-Dateien f?r SSL nicht erstellt werden. Denn bei anderen werden sie es.

Link to comment
Share on other sites

Ich habe testweise mal das Debugging des Cronjobs aktiviert, aber da sieht man auch nicht wirklich was:

http://pastebin.com/WfAymckP

 

Also hier nochmal Schrittweise was ich gemacht habe:

-> Stand 0.9.29-rc1 => Alles funktioniert

1. Erstellen eines MySQL Dumps der Froxlor DB

2. Sichern der Froxlor Config Datei

3. Alles in /var/www/froxlor l?schen

4. Herunterladen der aktuellen (0.9.30) Froxlor Version als .tar Archiv

5. Entpacken in /var/www

6. Kopieren der Konfigdatei in /var/www/froxlor

7. Froxlor Panel aufgerufen

8. Als Administrator eingeloggt

9. DB Upgrade durchgef?hrt

10. Etwas gewartet (beim DB Upgrade hat Froxlor wohl den Job zum Rewrite der Configs gestartet)

11. Keine Seite war mehr erreichbar

12. Apache2 Manuell neu gestartet -> Fehler wie im ersten Post

13. Gegooglet. die L?sung mit dem http hinter dem Listen gefunden und ausprobiert

14. Apache2 startet wieder aber wegen dem http funktioniert SSL halt nicht mehr

Link to comment
Share on other sites

Also, zum x-ten mal: in 0.9.30 wurde Multi-Stack eingef?hrt, d.h. mehrere IP's pro Domain. Dadurch hat sich nat?rlich das ganze Handling des Cronjobs verlagert. Bitte nicht immer nur sagen "aber da gings noch".

 

Schritt 10 deiner Liste verstehe ich nicht.

 

Was steht in der /var/www/froxlor/install/update.log ?

Link to comment
Share on other sites

Schritt 10 hei?t einfach nur, dass ich nichts gemacht habe. Nach nen paar Minuten kam ne IM & Mail vom Monitoring System, dass meine Webseiten nicht mehr erreichbar sind.

Das einzige was ich nach 9. noch gemacht habe ich Logrotate konfiguriert, aber das sollte keine Rolle spielen.

 

Mehr als sagen da funktionierte es noch und da nicht mehr kann ich leider nicht sagen. Bekannte Logs hab ich ja schon geposted und auch die generierten Configs im vergleich zu alten ausm Backup.

 

Das ist der Inhalt der update.log:

http://pastebin.com/U5apChKN

 

Edit1:

Ich habe testweise mal den Froxlor Cron deaktiviert. Alle vHosts gel?scht und anschlie?end aus nem Backup von gestern morgen wiederhergestellt (vor dem Upgrade) und mal Apache neu gestartet.

Mit den Configs startet Apache2 problemlos und SSL funktioniert. Ist also wirklich komplett nur ne Sache der generierten vhost Configs von Froxlor.

 

Edit2:

Ich habe diesen Query mal manuell auf der DB ausgef?hrt:

SELECT `d`.*, `pd`.`domain` AS `parentdomain`, `c`.`loginname`,
                        `d`.`phpsettingid`, `c`.`adminid`, `c`.`guid`, `c`.`email`,
                        `c`.`documentroot` AS `customerroot`, `c`.`deactivated`,
                        `c`.`phpenabled` AS `phpenabled`, `d`.`mod_fcgid_starter`,
                        `d`.`mod_fcgid_maxrequests`, `p`.`ssl` AS `ssl`,
                        `p`.`ssl_cert_file`, `p`.`ssl_key_file`, `p`.`ssl_ca_file`, `p`.`ssl_cert_chainfile`
                          FROM `panel_domains` `d`

                          LEFT JOIN `panel_customers` `c` USING(`customerid`)
                          LEFT JOIN `panel_domains` `pd` ON (`pd`.`id` = `d`.`parentdomainid`)

                          INNER JOIN (
                            SELECT * FROM (
                              SELECT `di`.`id_domain` , `p`.`ssl`, `p`.`ssl_cert_file`, `p`.`ssl_key_file`, `p`.`ssl_ca_file`, `p`.`ssl_cert_chainfile`
                              FROM `panel_domaintoip` `di` , `panel_ipsandports` `p`
                              WHERE `p`.`id` = `di`.`id_ipandports`
                              ORDER BY `p`.`ssl` DESC
                            ) AS my_table_tmp
                            GROUP BY `id_domain`
                          ) AS p ON p.`id_domain` = `d`.`id`

                          WHERE `d`.`aliasdomain` IS NULL
                          ORDER BY `d`.`parentdomainid` DESC, `d`.`iswildcarddomain`, `d`.`domain` ASC

Ich bekomme da zwar alle Domains raus aber jede Domain nur 1x und ?berall ist SSL=0.

In den betroffenen Domains ist aber eine SSL IP angehakt.

 

Edit3:

Ich habe das ganze mal weiter getraced. Das Problem liegt am inneren SELECT am GROUP BY `id_domain`.

 

Nimmt man das GROUP BY weg erh?lt man alle Domains. Die SSL Domains sind doppelt vorhanden einmal als SSL=0 und einmal als SSL=1 Eintrag.

 

Der Query der dabei raus kam, sieht so aus:

SELECT `d`.*, `pd`.`domain` AS `parentdomain`, `c`.`loginname`,
                        `d`.`phpsettingid`, `c`.`adminid`, `c`.`guid`, `c`.`email`,
                        `c`.`documentroot` AS `customerroot`, `c`.`deactivated`,
                        `c`.`phpenabled` AS `phpenabled`, `d`.`mod_fcgid_starter`,
                        `d`.`mod_fcgid_maxrequests`, `p`.`ssl` AS `ssl`,
                        `p`.`ssl_cert_file`, `p`.`ssl_key_file`, `p`.`ssl_ca_file`, `p`.`ssl_cert_chainfile`
                          FROM `panel_domains` `d`

                          LEFT JOIN `panel_customers` `c` USING(`customerid`)
                          LEFT JOIN `panel_domains` `pd` ON (`pd`.`id` = `d`.`parentdomainid`)

                          INNER JOIN (
                            SELECT * FROM (
                              SELECT `di`.`id_domain` , `p`.`ssl`, `p`.`ssl_cert_file`, `p`.`ssl_key_file`, `p`.`ssl_ca_file`, `p`.`ssl_cert_chainfile`
                              FROM `panel_domaintoip` `di` , `panel_ipsandports` `p`
                              WHERE `p`.`id` = `di`.`id_ipandports`
                              ORDER BY `p`.`ssl` DESC
                            ) AS my_table_tmp
                          ) AS p ON p.`id_domain` = `d`.`id`

                          WHERE `d`.`aliasdomain` IS NULL
                          ORDER BY `d`.`parentdomainid` DESC, `d`.`iswildcarddomain`, `d`.`domain` ASC

Edit4:

?ndere ich den Query wie oben beschrieben in cron_tasks.inc.http.10.apache.php ab und lasse die vhosts neu generieren, werden alle vhosts korrekt erstellt. Auch die SSL vhosts.

Apache2 startet wieder und SSL funktioniert auf allen Seiten problemlos.

Link to comment
Share on other sites

Kann ich nicht reproduzieren, wenn ich die query manuell ausf?hre bekomme ich ssl=1 genau so wie ssl=0. Ich sage ja, da stimmt bei dir was nicht. Gib uns doch mal von einer bestimmten Domain die via SSL erreichbar sein sollte den entsprechenden Dump aus der panel_domains und panel_domaintoips und die generierten apache-vhosts (domainnamen und ips kannst du nat?rlich anonymisieren).

Link to comment
Share on other sites

Hier mal ein konkretes Beispiel:

 

Domain: myimg.be

IP: 84.200.81.26

 

Die besagte IP in panel_ipsandports:

INSERT INTO `panel_ipsandports` (`id`, `ip`, `port`, `listen_statement`, `namevirtualhost_statement`, `vhostcontainer`, `vhostcontainer_servername_statement`, `specialsettings`, `ssl`, `ssl_cert_file`, `ssl_key_file`, `ssl_ca_file`, `default_vhostconf_domain`, `ssl_cert_chainfile`, `docroot`) VALUES
(13, '84.200.81.26', 80, 1, 1, 1, 1, '', 0, '', '', '', '', '', '/var/customers/webs/myimg/'),
(14, '84.200.81.26', 443, 1, 1, 1, 1, '', 1, '/etc/apachessl/myimg/ssl.crt', '/etc/apachessl/myimg/ssl.key', '/etc/apachessl/startssl.ca.pem', '', '/etc/apachessl/startssl.sub.class2.server.ca.pem', '/var/customers/webs/myimg/');

Die besagte Domain in panel_domains:

INSERT INTO `panel_domains` (`id`, `domain`, `adminid`, `customerid`, `aliasdomain`, `documentroot`, `isbinddomain`, `isemaildomain`, `email_only`, `iswildcarddomain`, `subcanemaildomain`, `caneditdomain`, `zonefile`, `dkim`, `dkim_id`, `dkim_privkey`, `dkim_pubkey`, `wwwserveralias`, `parentdomainid`, `openbasedir`, `openbasedir_path`, `speciallogfile`, `ssl_redirect`, `specialsettings`, `deactivated`, `bindserial`, `add_date`, `registration_date`, `phpsettingid`, `mod_fcgid_starter`, `mod_fcgid_maxrequests`, `ismainbutsubto`) VALUES
(45, 'myimg.be', 1, 14, NULL, '/var/customers/webs/myimg/', 0, 1, 0, 1, 0, 1, '', 1, 0, '', '', 1, 0, 1, 0, 1, 0, '', 0, '2000010100', 1376330780, '0000-00-00', 3, -1, -1, 0),
(57, 'img.myimg.be', 1, 14, NULL, '/var/customers/webs/myimg/sdom/img/', 0, 1, 0, 1, 0, 1, '', 1, 0, '', '', 1, 0, 1, 0, 1, 0, '', 0, '2000010100', 1376376912, '0000-00-00', 3, -1, -1, 45),
(58, 'api.myimg.be', 1, 14, NULL, '/var/customers/webs/myimg/sdom/api/', 0, 1, 0, 1, 0, 1, '', 1, 0, '', '', 1, 0, 1, 0, 1, 0, '', 0, '2000010100', 1376377455, '0000-00-00', 3, -1, -1, 45),
(59, 'm.myimg.be', 1, 14, NULL, '/var/customers/webs/myimg/mobile/', 0, 1, 0, 1, 0, 1, '', 1, 0, '', '', 1, 0, 1, 0, 1, 0, '', 0, '2000010100', 1376377494, '0000-00-00', 3, -1, -1, 45),
(60, 'size-h.myimg.be', 1, 14, NULL, '/var/customers/webs/myimg/sdom/height/', 0, 1, 0, 1, 0, 1, '', 1, 0, '', '', 1, 0, 1, 0, 1, 0, '', 0, '2000010100', 1376377563, '0000-00-00', 3, -1, -1, 45),
(61, 'size-w.myimg.be', 1, 14, NULL, '/var/customers/webs/myimg/sdom/width/', 0, 1, 0, 1, 0, 1, '', 1, 0, '', '', 1, 0, 1, 0, 1, 0, '', 0, '2000010100', 1376377620, '0000-00-00', 3, -1, -1, 45),
(62, 'size.myimg.be', 1, 14, NULL, '/var/customers/webs/myimg/sdom/size/', 0, 1, 0, 1, 0, 1, '', 1, 0, '', '', 1, 0, 1, 0, 1, 0, '', 0, '2000010100', 1376377665, '0000-00-00', 3, -1, -1, 45),
(63, 'thumb.myimg.be', 1, 14, NULL, '/var/customers/webs/myimg/sdom/thumb/', 0, 1, 0, 1, 0, 1, '', 1, 0, '', '', 1, 0, 1, 0, 1, 0, '', 0, '2000010100', 1376377698, '0000-00-00', 3, -1, -1, 45),
(64, 'win-upd.myimg.be', 1, 14, NULL, '/var/customers/webs/myimg/sdom/win-upd/', 0, 1, 0, 1, 0, 1, '', 1, 0, '', '', 1, 0, 1, 0, 0, 0, '', 0, '2000010100', 1376377739, '0000-00-00', 3, -1, -1, 45);

Oben angegebene Domains in der Tabelle panel_domaintoip:

INSERT INTO `panel_domaintoip` (`id_domain`, `id_ipandports`) VALUES
(45, 13),
(45, 14),
(57, 13),
(57, 14),
(58, 13),
(58, 14),
(59, 13),
(59, 14),
(60, 13),
(60, 14),
(61, 13),
(61, 14),
(62, 13),
(62, 14),
(63, 13),
(63, 14),
(64, 13),
(64, 14);

Ausgabe des originalen Queries aus dem Cronjob:

http://img.myimg.be/org_querya113b.png

 

Ausgabe des modifizierten Queries ohne GROUP BY:

http://img.myimg.be/mod_querye21b1.png

 

Edit: die generierten Apache vhosts sind die die im Ticket anonymisiert genannt wurden.

Link to comment
Share on other sites

Glaub mir doch bitte, dass die Query KORREKT ist. Wir sind hier zu dritt am diskutieren und k?nnen dein Problem einfach nicht reproduzieren, tut mir leid.

 

Welche vhost.configs erstellt er jetzt alle f?r die angegebene Domain? Am besten mal ein

ls -la /etc/apache2/sites-enabled/ | grep "myimg.be"
Link to comment
Share on other sites

Mit dem original Query:

-rw-r--r-- 1 root root  1016 Nov  2 14:11 21_froxlor_normal_vhost_api.myimg.be.conf
-rw-r--r-- 1 root root  1016 Nov  2 14:11 21_froxlor_normal_vhost_img.myimg.be.conf
-rw-r--r-- 1 root root   998 Nov  2 14:11 21_froxlor_normal_vhost_m.myimg.be.conf
-rw-r--r-- 1 root root  1043 Nov  2 14:11 21_froxlor_normal_vhost_size-h.myimg.be.conf
-rw-r--r-- 1 root root  1025 Nov  2 14:11 21_froxlor_normal_vhost_size.myimg.be.conf
-rw-r--r-- 1 root root  1041 Nov  2 14:11 21_froxlor_normal_vhost_size-w.myimg.be.conf
-rw-r--r-- 1 root root  1034 Nov  2 14:11 21_froxlor_normal_vhost_thumb.myimg.be.conf
-rw-r--r-- 1 root root  1018 Nov  2 14:11 21_froxlor_normal_vhost_win-upd.myimg.be.conf
-rw-r--r-- 1 root root   970 Nov  2 14:11 22_froxlor_normal_vhost_myimg.be.conf

Mit meiner Modifikation:

-rw-r--r-- 1 root root  1016 Nov  2 13:49 21_froxlor_normal_vhost_api.myimg.be.conf
-rw-r--r-- 1 root root  1016 Nov  2 13:49 21_froxlor_normal_vhost_img.myimg.be.conf
-rw-r--r-- 1 root root   998 Nov  2 13:49 21_froxlor_normal_vhost_m.myimg.be.conf
-rw-r--r-- 1 root root  1043 Nov  2 13:49 21_froxlor_normal_vhost_size-h.myimg.be.conf
-rw-r--r-- 1 root root  1025 Nov  2 13:49 21_froxlor_normal_vhost_size.myimg.be.conf
-rw-r--r-- 1 root root  1041 Nov  2 13:49 21_froxlor_normal_vhost_size-w.myimg.be.conf
-rw-r--r-- 1 root root  1034 Nov  2 13:49 21_froxlor_normal_vhost_thumb.myimg.be.conf
-rw-r--r-- 1 root root  1018 Nov  2 13:49 21_froxlor_normal_vhost_win-upd.myimg.be.conf
-rw-r--r-- 1 root root  1375 Nov  2 13:49 21_froxlor_ssl_vhost_api.myimg.be.conf
-rw-r--r-- 1 root root  1375 Nov  2 13:49 21_froxlor_ssl_vhost_img.myimg.be.conf
-rw-r--r-- 1 root root  1357 Nov  2 13:49 21_froxlor_ssl_vhost_m.myimg.be.conf
-rw-r--r-- 1 root root  1402 Nov  2 13:49 21_froxlor_ssl_vhost_size-h.myimg.be.conf
-rw-r--r-- 1 root root  1384 Nov  2 13:49 21_froxlor_ssl_vhost_size.myimg.be.conf
-rw-r--r-- 1 root root  1400 Nov  2 13:49 21_froxlor_ssl_vhost_size-w.myimg.be.conf
-rw-r--r-- 1 root root  1393 Nov  2 13:49 21_froxlor_ssl_vhost_thumb.myimg.be.conf
-rw-r--r-- 1 root root  1377 Nov  2 13:49 21_froxlor_ssl_vhost_win-upd.myimg.be.conf
-rw-r--r-- 1 root root   970 Nov  2 13:49 22_froxlor_normal_vhost_myimg.be.conf
-rw-r--r-- 1 root root  1329 Nov  2 13:49 22_froxlor_ssl_vhost_myimg.be.conf

Edit: Und ich glaub euch schon, dass euer Query korrekt ist. Nur in meiner Situation bringt der Query ohne GROUP BY eine korrektere Ausgabe.

Link to comment
Share on other sites

gibt es eigentlich einen grund, warum die die Subdomains der Domain als "Subdomain einer Hauptdomain" eintr?gst und nicht einfach als Kunde eine Subdomain anlegst? (nicht das es daran liegen w?rde, auch dieses Szenario haben wir hier mehrfach durchgespielt)

Link to comment
Share on other sites

Da gab es beim Einrichten des Servers mal was. Da hatte irgendwas bei normalen Subdomains nicht funktioniert gehabt weswegen ich die so eintragen musste. Ich glaub das war irgendwas mit der PHP Konfiguration, bin mir aber nicht mehr so ganz sicher.

Ich habe aber auch ein paar andere Seiten die keine Subdomains haben und ?ber SSL erreichbar sind bei denen das selbe Problem auftritt.

 

Wenn es hilft kann ich dich auch gerne mal via TeamViewer auf meinen PC drauf lassen mit Zugang zu Froxlor, zur Datenbank und zum Server.

Link to comment
Share on other sites

Da ist Teamviewer zu langsam zu, sorry, das hatte ich schon ?fters jetzt und da kann man einfach nicht ordentlich debuggen. Gerne mal via SSH und von mir aus auch screen zum zugucken, aber TeamViewer sorry - ne, wenn schon support, dann brauch ich auch zugriff, ist schlie?lich meine zeit die draufgeht.

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...