Jump to content
Froxlor Forum

tt33tt

Members
  • Content Count

    123
  • Joined

  • Last visited

  • Days Won

    1

tt33tt last won the day on October 19 2019

tt33tt had the most liked content!

Community Reputation

1 Neutral

About tt33tt

  • Rank
    Advanced Froxie

Recent Profile Visitors

3200 profile views
  1. Davon gehe ich auch aus. Sicherlich habe ich dafĂŒr auch eine Verantwortung. Aufgetreten ist es allerdings erst seit dem letzten Update. Von daher habe ich Hoffnung 🙂
  2. Habe es testweise manuell aus table_panel_tasks gelöscht. Das hat nichts verÀndert. Mangels Auswirkungen werde ich das aber erstmal ignorieren. Vielleicht löst sich das mal durch ein Update.
  3. Habe in dem Thread nun geantwortet, dass es dort geholfen hat. FĂŒr diesen Thread war es leider nicht die Lösung. Die Meldung "Neuerstellung der Webserver-Konfiguration" scheint aber nicht schlimm zu sein. Obwohl die Meldung dauerhaft drin steht bis ich den Cronjob force, kann ich auf eine neu erstellte SubdomĂ€ne zugreifen ĂŒber den Browser.
  4. Als ich das vor einigen Jahren ĂŒbernommen habe, waren mehrere Admins eingerichtet gewesen. Vielleicht hatte das frĂŒher einmal nicht jeder eingerichtet bekommen Schöne Weihnachten 😀
  5. Gutes Stichwort! Ich kannte dieses Flag nicht. Nachdem ich das in der Datenbank auf 1 gestellt habe, klappt nun alles wieder. Danke! Die Datei habe ich an der entsprechenden Stelle manuell verĂ€ndert. Der Github-Befehl ist bei mir nicht vorhanden und ich weiß ihn auch nicht richtig anzuwenden. Nach der manuellen VerĂ€nderung hat sich aber mein Fehler nicht gelöst. Lösung war bisher das mit dem Flag. <?php namespace Froxlor\Api\Commands; use Froxlor\Database\Database; /** * This file is part of the Froxlor project. * Copyright (c) 2010 the Froxlor Team (see authors). * * For the full copyright and license information, please view the COPYING * file that was distributed with this source code. You can also view the * COPYING file online at http://files.froxlor.org/misc/COPYING.txt * * @copyright (c) the authors * @author Froxlor team <team@froxlor.org> (2010-) * @license GPLv2 http://files.froxlor.org/misc/COPYING.txt * @package API * @since 0.10.6 * */ class SysLog extends \Froxlor\Api\ApiCommand implements \Froxlor\Api\ResourceEntity { /** * list all log-entries * * @param array $sql_search * optional array with index = fieldname, and value = array with 'op' => operator (one of <, > or =), LIKE is used if left empty and 'value' => searchvalue * @param int $sql_limit * optional specify number of results to be returned * @param int $sql_offset * optional specify offset for resultset * @param array $sql_orderby * optional array with index = fieldname and value = ASC|DESC to order the resultset by one or more fields * * @access admin, customer * @throws \Exception * @return string json-encoded array count|list */ public function listing() { $result = array(); $query_fields = array(); if ($this->isAdmin() && $this->getUserDetail('customers_see_all') == '1') { $result_stmt = Database::prepare(" SELECT * FROM `" . TABLE_PANEL_LOG . "` " . $this->getSearchWhere($query_fields) . $this->getOrderBy() . $this->getLimit()); } elseif ($this->isAdmin()) { // get all admin customers $_custom_list_result = $this->apiCall('Customers.listing'); $custom_list_result = $_custom_list_result['list']; $customer_names = array(); foreach ($custom_list_result as $customer) { $customer_names[] = $customer['loginname']; } if (count($customer_names) > 0) { $result_stmt = Database::prepare(" SELECT * FROM `" . TABLE_PANEL_LOG . "` WHERE `user` = :loginname OR `user` IN (" . implode(', ', $customer_names) . ")" . $this->getSearchWhere($query_fields, true) . $this->getOrderBy() . $this->getLimit()); } else { $result_stmt = Database::prepare(" SELECT * FROM `" . TABLE_PANEL_LOG . "` WHERE `user` = :loginname" . $this->getSearchWhere($query_fields, true) . $this->getOrderBy() . $this->getLimit()); } $query_fields['loginname'] = $this->getUserDetail('loginname'); } else { // every one else just sees their logs $result_stmt = Database::prepare(" SELECT * FROM `" . TABLE_PANEL_LOG . "` WHERE `user` = :loginname AND `action` <> 99 " . $this->getSearchWhere($query_fields, true) . $this->getOrderBy() . $this->getLimit()); $query_fields['loginname'] = $this->getUserDetail('loginname'); } Database::pexecute($result_stmt, $query_fields, true, true); while ($row = $result_stmt->fetch(\PDO::FETCH_ASSOC)) { $result[] = $row; } $this->logger()->logAction($this->isAdmin() ? \Froxlor\FroxlorLogger::ADM_ACTION : \Froxlor\FroxlorLogger::USR_ACTION, LOG_NOTICE, "[API] list log-entries"); return $this->response(200, "successfull", array( 'count' => count($result), 'list' => $result )); } /** * returns the total number of log-entries * * @access admin * @throws \Exception * @return string json-encoded array */ public function listingCount() { $params = null; if ($this->isAdmin() && $this->getUserDetail('customers_see_all') == '1') { $result_stmt = Database::prepare(" SELECT COUNT(*) as num_logs FROM `" . TABLE_PANEL_LOG . "` "); } elseif ($this->isAdmin()) { // get all admin customers $_custom_list_result = $this->apiCall('Customers.listing'); $custom_list_result = $_custom_list_result['list']; $customer_names = array(); foreach ($custom_list_result as $customer) { $customer_names[] = $customer['loginname']; } if (count($customer_names) > 0) { $result_stmt = Database::prepare(" SELECT COUNT(*) as num_logs FROM `" . TABLE_PANEL_LOG . "` WHERE `user` = :loginname OR `user` IN ('" . implode("', '", $customer_names) . "') "); } else { $result_stmt = Database::prepare(" SELECT COUNT(*) as num_logs FROM `" . TABLE_PANEL_LOG . "` WHERE `user` = :loginname "); } $params = [ 'loginname' => $this->getUserDetail('loginname') ]; } else { // every one else just sees their logs $result_stmt = Database::prepare(" SELECT COUNT(*) as num_logs FROM `" . TABLE_PANEL_LOG . "` WHERE `user` = :loginname AND `action` <> 99 "); $params = [ 'loginname' => $this->getUserDetail('loginname') ]; } $result = Database::pexecute_first($result_stmt, $params, true, true); if ($result) { return $this->response(200, "successfull", $result['num_logs']); } } /** * You cannot get log entries */ public function get() { throw new \Exception('You cannot get log entries', 303); } /** * You cannot add log entries */ public function add() { throw new \Exception('You cannot add log entries', 303); } /** * You cannot update log entries */ public function update() { throw new \Exception('You cannot update log entries', 303); } /** * delete log entries * * @param int $min_to_keep * optional minutes to keep, default is 10 * * @access admin * @throws \Exception * @return string json-encoded array */ public function delete() { if ($this->isAdmin()) { $min_to_keep = self::getParam('min_to_keep', true, 10); if ($min_to_keep < 0) { $min_to_keep = 0; } $truncatedate = time() - (60 * $min_to_keep); $params = array(); if ($this->getUserDetail('customers_see_all') == '1') { $result_stmt = Database::prepare(" DELETE FROM `" . TABLE_PANEL_LOG . "` WHERE `date` < :trunc "); } else { // get all admin customers $_custom_list_result = $this->apiCall('Customers.listing'); $custom_list_result = $_custom_list_result['list']; $customer_names = array(); foreach ($custom_list_result as $customer) { $customer_names[] = $customer['loginname']; } if (count($customer_names) > 0) { $result_stmt = Database::prepare(" DELETE FROM `" . TABLE_PANEL_LOG . "` WHERE `date` < :trunc AND `user` = :loginname OR `user` IN (" . implode(', ', $customer_names) . ") "); } else { $result_stmt = Database::prepare(" SELECT COUNT(*) as num_logs FROM `" . TABLE_PANEL_LOG . "` DELETE FROM `" . TABLE_PANEL_LOG . "` WHERE `date` < :trunc AND `user` = :loginname "); } $params = [ 'loginname' => $this->getUserDetail('loginname') ]; } $params['trunc'] = $truncatedate; Database::pexecute($result_stmt, $params, true, true); $this->logger()->logAction($this->isAdmin() ? \Froxlor\FroxlorLogger::ADM_ACTION : \Froxlor\FroxlorLogger::USR_ACTION, LOG_WARNING, "[API] truncated the froxlor syslog"); return $this->response(200, "successfull", true); } throw new \Exception("Not allowed to execute given command.", 403); } }
  6. Das sind zwei unabhĂ€ngige Themen. Daher habe ich einen neuen Thread eröffnet 🙂 Zur KlĂ€rung: Mit alle anderen Meldungen gehen weg meine ich, dass die Erstellung der DNS-EintrĂ€ge etc. als Cronjobs abgearbeitet werden. Nur die Webserver-Config bleibt als Cronjob hĂ€ngen. Im Log (manuell nachgeschaut) habe ich noch Fehler gefunden zu Datenbanken, die noch leer sind. Sind die Fehler schlimm? Gibt es einen Zusammenhang? Warum tauchen leere Datenbanken als Fehler auf? (353444, 40, 4, 1577055671, 'system', 'Cannot get usage for database test1.'), (353445, 40, 4, 1577055672, 'system', 'Cannot get usage for database test2.'), (353446, 40, 4, 1577055672, 'system', 'Cannot get usage for database test3.'), (353447, 40, 4, 1577055679, 'system', 'Cannot get usage for database test4.'),
  7. Ich habe dir alles geschickt. Ich vermute, dass es um diese Tabelle geht: INSERT INTO `panel_syslog` (`logid`, `action`, `type`, `date`, `user`, `text`) VALUES Mich irritiert bei dem Fehler, dass er sagt, dass die Column als "rainer" benannt ist. Das klingt als ob das der Spaltenname wÀre. Der Spaltenname ist aber "user". Vielleicht lese ich die Meldung ja falsch
  8. Alles ist wie vorher, meine ich damit 🙂 Vermutlich ist es auch ein anderes Szenario, weil "rainer" ist ein Kunde, aber nicht der Admin-Benutzer und der Admin-Benutzer darf alles, weil er der einzige Admin-Benutzer ist
  9. Ich habe auf die neueste Version upgedatet. Nachdem ich klicke auf "Configs neu schreiben" klicke, bleibt die Meldung "Neuerstellung der Webserver-Konfiguration" dauerhaft. Erst, wenn ich den Frolxor-Cronjob force, geht es weg. Alle anderen Meldungen gehen weg. SQLSTATE[42S22]: Column not found: 1054 Unknown column 'rainer' in 'where clause' Der Benutzer rainer ist als Kunde angelegt und auch im Server-Berechtigungssystem auf Dateisystemebene hinterlegt fĂŒr die Ordner des Benutzers. Webserver: Apache/2.4.29 (Ubuntu) mod_fcgid/2.3.9 OpenSSL/1.1.1 PHP-Version: 7.2.24-0ubuntu0.18.04.1 MySQL-Server-Version: 5.7.28-0ubuntu0.18.04.4 Webserver-Interface: CGI-FCGI Speicherauslastung: MemTotal: 4039476 kB MemFree: 1436424 kB MemAvailable: 2697988 kB System-Auslastung: 1.10 / 1.02 / 0.61 Kernel: 4.15.0-72-generic (x86_64) Installierte Version: 0.10.10 (DB: 201912100)
  10. Danke! Ich habe nur einen Admin-Benutzer und er kann alles. Es hat noch nicht geklappt. Bei mir steht Entity statt Ent class SysLog extends \Froxlor\Api\ApiCommand implements \Froxlor\Api\ResourceEntity Und ich habe das hier ersetzt: WHERE `user` = :loginname OR `user` IN ('" . implode("', '", $customer_names) . "') Apache habe ich neugestartet.
  11. Danke dir! Soll ich irgendwo den Debug-Level erhöhen?
  12. Ich öffne: https://domain/froxlor/admin_logger.php?page=log im Log auf dem Server steht gleichzeitig: tail -f /var/log/apache2/error.log [Fri Dec 20 21:10:23.314251 2019] [mpm_prefork:notice] [pid 15241] AH00163: Apache/2.4.29 (Ubuntu) mod_fcgid/2.3.9 OpenSSL/1.1.1 configured -- resuming normal operations [Fri Dec 20 21:10:23.314279 2019] [core:notice] [pid 15241] AH00094: Command line: '/usr/sbin/apache2' froxlor[27137]: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'rainer' in 'where clause' froxlor[27137]: --- DEBUG: #0 /var/www/froxlor/lib/Froxlor/Database/Database.php(83): PDOStatement->execute(Array) #1 /var/www/froxlor/lib/Froxlor/Database/Database.php(104): Froxlor\Database\Database::pexecute(Object(PDOStatement), Array, true, true) #2 /var/www/froxlor/lib/Froxlor/Api/Commands/SysLog.php(130): Froxlor\Database\Database::pexecute_first(Object(PDOStatement), Array, true, true) #3 /var/www/froxlor/admin_logger.php(34): Froxlor\Api\Commands\SysLog->listingCount() #4 {main} froxlor[27137]: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'rainer' in 'where clause' froxlor[27137]: --- DEBUG: #0 /var/www/froxlor/lib/Froxlor/Database/Database.php(83): PDOStatement->execute(Array) #1 /var/www/froxlor/lib/Froxlor/Database/Database.php(104): Froxlor\Database\Database::pexecute(Object(PDOStatement), Array, true, true) #2 /var/www/froxlor/lib/Froxlor/Api/Commands/SysLog.php(130): Froxlor\Database\Database::pexecute_first(Object(PDOStatement), Array, true, true) #3 /var/www/froxlor/admin_logger.php(34): Froxlor\Api\Commands\SysLog->listingCount() #4 {main} froxlor[27137]: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'rainer' in 'where clause' froxlor[27137]: --- DEBUG: #0 /var/www/froxlor/lib/Froxlor/Database/Database.php(83): PDOStatement->execute(Array) #1 /var/www/froxlor/lib/Froxlor/Database/Database.php(104): Froxlor\Database\Database::pexecute(Object(PDOStatement), Array, true, true) #2 /var/www/froxlor/lib/Froxlor/Api/Commands/SysLog.php(130): Froxlor\Database\Database::pexecute_first(Object(PDOStatement), Array, true, true) #3 /var/www/froxlor/admin_logger.php(34): Froxlor\Api\Commands\SysLog->listingCount() #4 {main} froxlor[27137]: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'rainer' in 'where clause' froxlor[27137]: --- DEBUG: #0 /var/www/froxlor/lib/Froxlor/Database/Database.php(83): PDOStatement->execute(Array) #1 /var/www/froxlor/lib/Froxlor/Database/Database.php(104): Froxlor\Database\Database::pexecute(Object(PDOStatement), Array, true, true) #2 /var/www/froxlor/lib/Froxlor/Api/Commands/SysLog.php(130): Froxlor\Database\Database::pexecute_first(Object(PDOStatement), Array, true, true) #3 /var/www/froxlor/admin_logger.php(34): Froxlor\Api\Commands\SysLog->listingCount() #4 {main} parallel zeigt tail -f /var/kunden/logs/Froxlor/froxlor.log [2019-12-20 21:16:10] froxlor.NOTICE: [API] list customers {"source":"admin","action":"30","user":"admin"} [] Möglicher Grund: Normalerweise erhalten alle Kundenbenutzer im Datei-Berechtigungssystem von Ubuntu eine Nummer, die irgendwie von Froxlor kommt. Ich habe eingestellt, dass das Berechtigungssystem diese UID automatisch auflöst in den Benutzernamen, in dem es den Benutzernamen direkt aus der SQL-Datenbank erhĂ€lt. Ich weiß leider nicht mehr wo ich das eingestellt habe. Kann das damit zusammenhĂ€ngen?
  13. Ich habe auf die neueste Version upgedatet und erhalte beim öffnen des Logs im Webinterface einen Fehler: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'rainer' in 'where clause' Der Benutzer rainer ist als Kunde angelegt und auch im Server-Berechtigungssystem auf Dateisystemebene hinterlegt fĂŒr die Ordner des Benutzers. Webserver: Apache/2.4.29 (Ubuntu) mod_fcgid/2.3.9 OpenSSL/1.1.1 PHP-Version: 7.2.24-0ubuntu0.18.04.1 MySQL-Server-Version: 5.7.28-0ubuntu0.18.04.4 Webserver-Interface: CGI-FCGI Speicherauslastung: MemTotal: 4039476 kB MemFree: 1436424 kB MemAvailable: 2697988 kB System-Auslastung: 1.10 / 1.02 / 0.61 Kernel: 4.15.0-72-generic (x86_64) Installierte Version: 0.10.10 (DB: 201912100)
  14. Ja, danke! Das richtige Zertifikat wird nun auch verbunden von der richtigen Domain. Ich habe außerdem auf meinen Homepages noch die Lösung fĂŒr einen Fehler gefunden: Es wurde angezeigt, dass "Ihr Verbindung ist nicht sicher und mit dieser Webseite geteilte Informationen können von anderen eingesehen werden" Das hĂ€ngt damit zusammen, dass ein paar Grafiken noch per HTTP statt HTTPS eingebunden waren. Endlich alles geklĂ€rt und fertig 🙂 Juhuuuuuuuuuuuu
  15. super! Im Ereignisprotokoll konnte ich es jetzt nicht mehr finden. Bald kann ich endlich das Release-Upgrade machen. Ich freue mich 🙂 Ich habe einen Fehler bei den Weiterleitungsdomains gefunden: Wenn ich eine DomĂ€ne auf einer andere weiterleite, öffne ich die DomĂ€ne in Froxlor. Als Pfad gebe ich die ZieldomĂ€ne ein z.B. https://google.de Wenn ich dann ein SSL-Zertifikat fĂŒr die WeiterleitungsdomĂ€ne anfordere kommt der Fehler unten. Grund ist hier, dass er es von der Ziel-DomĂ€ne rainerwiederstein.de statt StartdomĂ€ne wiedersteins.de versucht abzurufen. Ich kann hier alle drei SSL-Optionen fĂŒr die WeiterleitungsdomĂ€ne auch abschalten. Auf der Ziel-DomĂ€ne kommt noch ein Zertifikatfehler, dass das Zertifikat nicht fĂŒr die DomĂ€ne ausgestellt wurde. Das wird dann wohl meine letzte Frage 🙂 root@1383561341-1:~# php /var/www/froxlor/scripts/froxlor_master_cronjob.php --force --debug [information] TasksCron: Searching for tasks to do [information] Running Let's Encrypt cronjob prior to regenerating webserver config files [information] Requesting/renewing Let's Encrypt certificates [information] Creating certificate for wiedersteins.de [information] Adding SAN entry: wiedersteins.de [information] Adding SAN entry: www.wiedersteins.de [information] Checking for LetsEncrypt client upgrades before renewing certificates: [Do 17. Okt 18:11:49 CEST 2019] Installing from online archive. [Do 17. Okt 18:11:49 CEST 2019] Downloading https://github.com/Neilpang/acme.sh/archive/master.tar.gz [Do 17. Okt 18:11:50 CEST 2019] Extracting master.tar.gz [Do 17. Okt 18:11:50 CEST 2019] Installing to /root/.acme.sh [Do 17. Okt 18:11:50 CEST 2019] Installed to /root/.acme.sh/acme.sh [Do 17. Okt 18:11:50 CEST 2019] Good, bash is found, so change the shebang to use bash as preferred. [Do 17. Okt 18:11:51 CEST 2019] OK [Do 17. Okt 18:11:51 CEST 2019] Install success! [Do 17. Okt 18:11:51 CEST 2019] Upgrade success! [Do 17. Okt 18:12:02 CEST 2019] wiedersteins.de:Verify error:Invalid response from https://rainerwiederstein.de/ [109.75.177.194]: [Do 17. Okt 18:12:02 CEST 2019] Please check log file for more details: /root/.acme.sh/acme.sh.log [debug] [Do 17. Okt 18:11:52 CEST 2019] Creating domain key [Do 17. Okt 18:11:52 CEST 2019] The domain key is here: /root/.acme.sh/wiedersteins.de/wiedersteins.de.key [Do 17. Okt 18:11:52 CEST 2019] Multi domain='DNS:wiedersteins.de,DNS:www.wiedersteins.de' [Do 17. Okt 18:11:52 CEST 2019] Getting domain auth token for each domain [Do 17. Okt 18:11:55 CEST 2019] Getting webroot for domain='wiedersteins.de' [Do 17. Okt 18:11:55 CEST 2019] Getting webroot for domain='www.wiedersteins.de' [Do 17. Okt 18:11:56 CEST 2019] Verifying: wiedersteins.de [Do 17. Okt 18:11:59 CEST 2019] Pending PHP Warning: file_get_contents(/root/.acme.sh/wiedersteins.de/wiedersteins.de.cer): failed to open stream: No such file or directory in /var/www/froxlor/lib/Froxlor/Cron/Http/LetsEncrypt/AcmeSh.php on line 360 PHP Warning: file_get_contents(/root/.acme.sh/wiedersteins.de/ca.cer): failed to open stream: No such file or directory in /var/www/froxlor/lib/Froxlor/Cron/Http/LetsEncrypt/AcmeSh.php on line 362 PHP Warning: file_get_contents(/root/.acme.sh/wiedersteins.de/fullchain.cer): failed to open stream: No such file or directory in /var/www/froxlor/lib/Froxlor/Cron/Http/LetsEncrypt/AcmeSh.php on line 363 [error] Could not get Let's Encrypt certificate for wiedersteins.de: [Do 17. Okt 18:11:52 CEST 2019] Creating domain key [Do 17. Okt 18:11:52 CEST 2019] The domain key is here: /root/.acme.sh/wiedersteins.de/wiedersteins.de.key [Do 17. Okt 18:11:52 CEST 2019] Multi domain='DNS:wiedersteins.de,DNS:www.wiedersteins.de' [Do 17. Okt 18:11:52 CEST 2019] Getting domain auth token for each domain [Do 17. Okt 18:11:55 CEST 2019] Getting webroot for domain='wiedersteins.de' [Do 17. Okt 18:11:55 CEST 2019] Getting webroot for domain='www.wiedersteins.de' [Do 17. Okt 18:11:56 CEST 2019] Verifying: wiedersteins.de [Do 17. Okt 18:11:59 CEST 2019] Pending
×
×
  • Create New...