I just upgraded to 8.3 myself seems you can do that no problem but keep 8 there Gary.
Remo > On Feb 22, 2024, at 09:50, Gary Bowling <g...@gbco.us> wrote: > > > > php -v > PHP 8.0.30 (cli) (built: Aug 3 2023 17:13:08) ( NTS gcc x86_64 ) > Copyright (c) The PHP Group > Zend Engine v4.0.30, Copyright (c) Zend Technologies > with Zend OPcache v8.0.30, Copyright (c), by Zend Technologies > > > > > On 2/22/2024 12:31 PM, Eric Broch wrote: >> Odd! Everything works fine on my Rocky9/qmt host. >> >> What version of php are you running? >> >> # php -v >> >> On 2/22/2024 10:21 AM, Gary Bowling wrote: >>> Thanks Eric. >>> >>> Yep, just to not send a huge logfile. After having everything stopped for >>> two hrs, I started everything and went to the server/admin-toaster and got >>> the screen from below. It looks like a 401 response, which indicates a lack >>> of authentication credentials. And I'm not sure why. Probably something to >>> do with me copying over the admin.pass or admin.htpasswd from my old >>> server. That was part of the migration page. >>> >>> Here's the httpd/error.log from that. >>> >>> [Thu Feb 22 17:12:23.702465 2024] [suexec:notice] [pid 121153:tid 121153] >>> AH01232: suEXEC mechanism enabled (wrapper: /usr/sbin/suexec) >>> [Thu Feb 22 17:12:23.714703 2024] [so:warn] [pid 121153:tid 121153] >>> AH01574: module proxy_ajp_module is already loaded, skipping >>> [Thu Feb 22 17:12:23.719266 2024] [lbmethod_heartbeat:notice] [pid >>> 121153:tid 121153] AH02282: No slotmem from mod_heartmonitor >>> [Thu Feb 22 17:12:23.722704 2024] [mpm_event:notice] [pid 121153:tid >>> 121153] AH00489: Apache/2.4.57 (Rocky Linux) OpenSSL/3.0.7 configured -- >>> resuming normal operations >>> [Thu Feb 22 17:12:23.722720 2024] [core:notice] [pid 121153:tid 121153] >>> AH00094: Command line: '/usr/sbin/httpd -D FOREGROUND' >>> >>> >>> >>> >>> >>> And here's the httpd/access.log >>> >>> 96.46.15.70 - - [22/Feb/2024:17:12:41 +0000] "GET /admin-toaster HTTP/1.1" >>> 401 381 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 >>> (KHTML, like Gecko) Chrome/122. >>> 0.0.0 Safari/537.36" >>> 96.46.15.70 - admin [22/Feb/2024:17:12:41 +0000] "GET /admin-toaster >>> HTTP/1.1" 301 244 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) >>> AppleWebKit/537.36 (KHTML, like Gecko) Chrome/ >>> 122.0.0.0 Safari/537.36" >>> >>> >>> >>> On 2/22/2024 10:45 AM, Eric Broch wrote: >>>> Can you check the httpd logs? >>>> >>>> On 2/22/2024 8:12 AM, Gary Bowling wrote: >>>>> >>>>> Another issue. When I log in to admin-toaster, it properly asks for my >>>>> password and accepts it, but then all I get is this screen. >>>>> >>>>> >>>>> >>>>> <AFsYv2kZDDMd60l8.png> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> Between the problems I'm having with roundcube and with qmailadmin, >>>>> something is very wrong with my install. I don't get any errors in the >>>>> logs, either in messages or httpd logs. >>>>> >>>>> >>>>> >>>>> I can configure up a client on my desktop and log into the server using >>>>> IMAP and send/receive email. Granted I'm only sending to myself as there >>>>> is no mx record or proper dns for this server as it's not live. >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> On 2/21/2024 9:52 AM, Gary Bowling wrote: >>>>>> My next challenge is to get roundcube working. My old server uses >>>>>> squirrel, but that's so old I need to move on. Which might be a bit of a >>>>>> challenge as I have some users who exclusively use web mail and have all >>>>>> their address books and everything in there. >>>>>> >>>>>> >>>>>> >>>>>> At any rate, I first just tried going to my server/email.. I got a big >>>>>> list of errors, etc. >>>>>> >>>>>> In poking around a bit, I discovered that there wasn't a >>>>>> /var/lib/roundcube directory, which is listed in the rpm.. Not sure why >>>>>> that was or if it's intended as maybe this is a customized version of >>>>>> roundcube. At any rate, I decided to do a yum reinstall on roundcube, >>>>>> which produced a /var/lib/roundcube dir. >>>>>> >>>>>> But I still got the same big list of errors when going to server/email. >>>>>> >>>>>> In looking at the roundcube configs in /etc/roundcube/.. I see the >>>>>> config.inc.php has the proper string in it with the p4ssw... password >>>>>> etc. So that looks ok. >>>>>> >>>>>> Logging into mysql with the roundcube user works, and the roundcube >>>>>> database is there with all the table structure. So that looks ok. >>>>>> >>>>>> In looking at the roundcube config in httpd I noticed the "require >>>>>> local" rule, which I think means I can only access it from the local >>>>>> machine. Since my machine is a hosted machine, I can't do that. So I >>>>>> changed the to "require ip <MYIP>" ... that didn't resolve anything. >>>>>> >>>>>> I'm off to do some other work for the rest of the day, but somehow I >>>>>> need to figure out what's going on here. There is very little in the >>>>>> logs and I'm running out of things to check. >>>>>> >>>>>> >>>>>> >>>>>> Here's the screen I get when I go to myserver/email, which seems to say >>>>>> "everything is broken" haha.. >>>>>> >>>>>> >>>>>> >>>>>> | | Author: Aleksander Machniak | >>>>>> +-------------------------------------------------------------------------+ >>>>>> */ // include environment require_once 'program/include/iniset.php'; // >>>>>> init application, start session, init output class, etc. $RCMAIL = >>>>>> rcmail::get_instance(0, isset($GLOBALS['env']) ? $GLOBALS['env'] : >>>>>> null); // Make the whole PHP output non-cacheable (#1487797) >>>>>> $RCMAIL->output->nocacheing_headers(); >>>>>> $RCMAIL->output->common_headers(!empty($_SESSION['user_id'])); // turn >>>>>> on output buffering ob_start(); // check if config files had errors if >>>>>> ($err_str = $RCMAIL->config->get_error()) { rcmail::raise_error(['code' >>>>>> => 601, 'message' => $err_str], false, true); } // check DB connections >>>>>> and exit on failure if ($err_str = $RCMAIL->db->is_error()) { >>>>>> rcmail::raise_error(['code' => 603, 'type' => 'db', 'message' => >>>>>> $err_str], false, true); } // error steps if ($RCMAIL->action == 'error' >>>>>> && !empty($_GET['_code'])) { rcmail::raise_error(['code' => >>>>>> hexdec($_GET['_code'])], false, true); } // check if https is required >>>>>> (for login) and redirect if necessary if (empty($_SESSION['user_id']) && >>>>>> ($force_https = $RCMAIL->config->get('force_https', false))) { // >>>>>> force_https can be true, , :, if (!is_bool($force_https)) { list($host, >>>>>> $port) = explode(':', $force_https); if (is_numeric($host) && >>>>>> empty($port)) { $port = $host; $host = ''; } } if (empty($port)) { $port >>>>>> = 443; } if (!rcube_utils::https_check($port)) { if (empty($host)) { >>>>>> $host = preg_replace('/:[0-9]+$/', '', $_SERVER['HTTP_HOST']); } if >>>>>> ($port != 443) { $host .= ':' . $port; } header('Location: https://' . >>>>>> $host . $_SERVER['REQUEST_URI']); exit; } } // trigger startup plugin >>>>>> hook $startup = $RCMAIL->plugins->exec_hook('startup', ['task' => >>>>>> $RCMAIL->task, 'action' => $RCMAIL->action]); >>>>>> $RCMAIL->set_task($startup['task']); $RCMAIL->action = >>>>>> $startup['action']; $session_error = null; // try to log in if >>>>>> ($RCMAIL->task == 'login' && $RCMAIL->action == 'login') { >>>>>> $request_valid = !empty($_SESSION['temp']) && $RCMAIL->check_request(); >>>>>> $pass_charset = $RCMAIL->config->get('password_charset', 'UTF-8'); // >>>>>> purge the session in case of new login when a session already exists if >>>>>> ($request_valid) { $RCMAIL->kill_session(); } $auth = >>>>>> $RCMAIL->plugins->exec_hook('authenticate', [ 'host' => >>>>>> $RCMAIL->autoselect_host(), 'user' => >>>>>> trim(rcube_utils::get_input_string('_user', rcube_utils::INPUT_POST)), >>>>>> 'pass' => rcube_utils::get_input_string('_pass', >>>>>> rcube_utils::INPUT_POST, true, $pass_charset), 'valid' => >>>>>> $request_valid, 'error' => null, 'cookiecheck' => true, ]); // Login if >>>>>> ($auth['valid'] && !$auth['abort'] && $RCMAIL->login($auth['user'], >>>>>> $auth['pass'], $auth['host'], $auth['cookiecheck']) ) { // create new >>>>>> session ID, don't destroy the current session // it was destroyed >>>>>> already by $RCMAIL->kill_session() above >>>>>> $RCMAIL->session->remove('temp'); >>>>>> $RCMAIL->session->regenerate_id(false); // send auth cookie if necessary >>>>>> $RCMAIL->session->set_auth_cookie(); // log successful login >>>>>> $RCMAIL->log_login(); // restore original request parameters $query = >>>>>> []; if ($url = rcube_utils::get_input_string('_url', >>>>>> rcube_utils::INPUT_POST)) { parse_str($url, $query); // prevent endless >>>>>> looping on login page if (!empty($query['_task']) && $query['_task'] == >>>>>> 'login') { unset($query['_task']); } // prevent redirect to compose with >>>>>> specified ID (#1488226) if (!empty($query['_action']) && >>>>>> $query['_action'] == 'compose' && !empty($query['_id'])) { $query = >>>>>> ['_action' => 'compose']; } } // allow plugins to control the redirect >>>>>> url after login success $redir = >>>>>> $RCMAIL->plugins->exec_hook('login_after', $query + ['_task' => >>>>>> 'mail']); unset($redir['abort'], $redir['_err']); // send redirect >>>>>> $RCMAIL->output->redirect($redir, 0, true); } else { if >>>>>> (!$auth['valid']) { $error_code = rcmail::ERROR_INVALID_REQUEST; } else >>>>>> { $error_code = is_numeric($auth['error']) ? $auth['error'] : >>>>>> $RCMAIL->login_error(); } $error_labels = [ rcmail::ERROR_STORAGE => >>>>>> 'storageerror', rcmail::ERROR_COOKIES_DISABLED => 'cookiesdisabled', >>>>>> rcmail::ERROR_INVALID_REQUEST => 'invalidrequest', >>>>>> rcmail::ERROR_INVALID_HOST => 'invalidhost', rcmail::ERROR_RATE_LIMIT => >>>>>> 'accountlocked', ]; if (!empty($auth['error']) && >>>>>> !is_numeric($auth['error'])) { $error_message = $auth['error']; } else { >>>>>> $error_message = !empty($error_labels[$error_code]) ? >>>>>> $error_labels[$error_code] : 'loginfailed'; } >>>>>> $RCMAIL->output->show_message($error_message, 'warning'); // log failed >>>>>> login $RCMAIL->log_login($auth['user'], true, $error_code); >>>>>> $RCMAIL->plugins->exec_hook('login_failed', [ 'code' => $error_code, >>>>>> 'host' => $auth['host'], 'user' => $auth['user'], ]); if >>>>>> (!isset($_SESSION['user_id'])) { $RCMAIL->kill_session(); } } } // >>>>>> handle oauth login requests else if ($RCMAIL->task == 'login' && >>>>>> $RCMAIL->action == 'oauth' && $RCMAIL->oauth->is_enabled()) { >>>>>> $oauth_handler = new rcmail_action_login_oauth(); $oauth_handler->run(); >>>>>> } // end session else if ($RCMAIL->task == 'logout' && >>>>>> isset($_SESSION['user_id'])) { >>>>>> $RCMAIL->request_security_check(rcube_utils::INPUT_GET | >>>>>> rcube_utils::INPUT_POST); $userdata = array( 'user' => >>>>>> $_SESSION['username'], 'host' => $_SESSION['storage_host'], 'lang' => >>>>>> $RCMAIL->user->language, ); $RCMAIL->output->show_message('loggedout'); >>>>>> $RCMAIL->logout_actions(); $RCMAIL->kill_session(); >>>>>> $RCMAIL->plugins->exec_hook('logout_after', $userdata); } // check >>>>>> session and auth cookie else if ($RCMAIL->task != 'login' && >>>>>> $_SESSION['user_id']) { if (!$RCMAIL->session->check_auth()) { >>>>>> $RCMAIL->kill_session(); $session_error = 'sessionerror'; } } // not >>>>>> logged in -> show login page if (empty($RCMAIL->user->ID)) { if ( >>>>>> $session_error || (!empty($_REQUEST['_err']) && $_REQUEST['_err'] === >>>>>> 'session') || ($session_error = $RCMAIL->session_error()) ) { >>>>>> $RCMAIL->output->show_message($session_error ?: 'sessionerror', 'error', >>>>>> null, true, -1); } if ($RCMAIL->output->ajax_call || >>>>>> $RCMAIL->output->get_env('framed')) { >>>>>> $RCMAIL->output->command('session_error', $RCMAIL->url(['_err' => >>>>>> 'session'])); $RCMAIL->output->send('iframe'); } // check if installer >>>>>> is still active if ($RCMAIL->config->get('enable_installer') && >>>>>> is_readable('./installer/index.php')) { >>>>>> $RCMAIL->output->add_footer(html::div(['id' => 'login-addon', 'style' => >>>>>> "background:#ef9398; border:2px solid #dc5757; padding:0.5em; margin:2em >>>>>> auto; width:50em"], html::tag('h2', array('style' => >>>>>> "margin-top:0.2em"), "Installer script is still accessible") . >>>>>> html::p(null, "The install script of your Roundcube installation is >>>>>> still stored in its default location!") . html::p(null, "Please remove >>>>>> the whole installer folder from the Roundcube directory because these >>>>>> files may expose sensitive configuration data like server passwords and >>>>>> encryption keys to the public. Make sure you cannot access the installer >>>>>> script <https://mail2.gbco.us/%22./installer//%22> from your browser.") >>>>>> )); } $plugin = $RCMAIL->plugins->exec_hook('unauthenticated', [ 'task' >>>>>> => 'login', 'error' => $session_error, // Return 401 only on failed >>>>>> logins (#7010) 'http_code' => empty($session_error) && >>>>>> !empty($error_message) ? 401 : 200 ]); >>>>>> $RCMAIL->set_task($plugin['task']); if ($plugin['http_code'] == 401) { >>>>>> header('HTTP/1.0 401 Unauthorized'); } >>>>>> $RCMAIL->output->send($plugin['task']); } else { // CSRF prevention >>>>>> $RCMAIL->request_security_check(); // check access to disabled actions >>>>>> $disabled_actions = (array) $RCMAIL->config->get('disabled_actions'); if >>>>>> (in_array($RCMAIL->task . '.' . ($RCMAIL->action ?: 'index'), >>>>>> $disabled_actions)) { rcube::raise_error(['code' => 404, 'message' => >>>>>> "Action disabled"], true, true); } } $RCMAIL->action_handler(); >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> On 2/20/2024 9:02 PM, Gary Bowling wrote: >>>>>>> >>>>>>> Ah, thanks Eric! Unfortunately I didn't find that page earlier. But but >>>>>>> I cobbled together a few sql queries, so I... >>>>>>> >>>>>>> - exported each domain to an xml file >>>>>>> >>>>>>> - then did a bit of scripting on each domains xml file to add the >>>>>>> pw_domain field, which is the same for every record in each file. >>>>>>> >>>>>>> - then used the "load xml local infile..." sql command to load each of >>>>>>> the files into the vpopmail table. >>>>>>> >>>>>>> >>>>>>> >>>>>>> It seems to have all worked. I can now use ./vuserinfo and get correct >>>>>>> entries. The other tables, valias, lastauth, dir_control, all seem to >>>>>>> be the same. >>>>>>> >>>>>>> >>>>>>> >>>>>>> So I think I'm on to the next challenge. The script you showed on that >>>>>>> page would have been a little easier, but no worries, it wasn't to >>>>>>> difficult. >>>>>>> >>>>>>> Which reminds me, I need to go back and set Global Local_infiles=0 as I >>>>>>> had to change that to export/import local files. Although I'm not sure >>>>>>> that hurts anything. >>>>>>> >>>>>>> >>>>>>> >>>>>>> Thanks, gb >>>>>>> >>>>>>> >>>>>>> >>>>>>> On 2/20/2024 5:04 PM, Eric Broch wrote: >>>>>>>> did you migrate the database? >>>>>>>> >>>>>>>> Many domain's conversion - QMT (qmailtoaster.org) >>>>>>>> <https://qmailtoaster.org/manydom.html> >>>>>>>> On 2/20/2024 9:37 AM, Gary Bowling wrote: >>>>>>>>> >>>>>>>>> Thanks Eric. >>>>>>>>> >>>>>>>>> Continuing through the "migration" page. After going through >>>>>>>>> everything moving configs and my database, then restarting. Toaststat >>>>>>>>> says everything is ok. >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> So I tried a simple run of ~vpopmail/bin/vuserinfo g...@gbco.us >>>>>>>>> <mailto:g...@gbco.us> just to query an account. I get this error >>>>>>>>> >>>>>>>>> mysql: sql error[3]: Table 'vpopmail.vpopmail' doesn't exist >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> Logging into the db and checking, indeed I do not have a >>>>>>>>> vpopmail.vpopmail table. I have all the domain tables, etc. So I went >>>>>>>>> back to my old server (the one this email is coming from) and it also >>>>>>>>> does not have a vpopmail.vpopmail table. >>>>>>>>> >>>>>>>>> I'm sure it has something to do with how old my existing server is. >>>>>>>>> But how do I resolve this? >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> Thanks, gb >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> On 2/20/2024 10:00 AM, Eric Broch wrote: >>>>>>>>>> It's all good and there's nothing to do. >>>>>>>>>> >>>>>>>>>> On 2/20/2024 7:11 AM, Gary Bowling wrote: >>>>>>>>>>> >>>>>>>>>>> Another question on my migration. On the qmailtoaster.com site, >>>>>>>>>>> under the RHEL9 derivative install heading. There is the >>>>>>>>>>> qmail1.03-3.3.8 header and underneath it is a link for "patches >>>>>>>>>>> applied" >>>>>>>>>>> >>>>>>>>>>> I'm confused if that means. It implies that those patches are >>>>>>>>>>> already applied and there is no need to do them. But the link takes >>>>>>>>>>> you to the page for the patch like it's something we should apply. >>>>>>>>>>> >>>>>>>>>>> I'm pretty sure it's all good and there is nothing to do, just >>>>>>>>>>> wanted to make sure. >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> Thanks, gb >>>>>>>>>>> >>>>>>>>>>> -- >>>>>>>>>>> ____________________ >>>>>>>>>>> The Moderns on Spotify >>>>>>>>>>> <https://distrokid.com/hyperfollow/themoderns/bbrs> >>>>>>>>>>> ____________________ >>>>>>>>>>> --------------------------------------------------------------------- >>>>>>>>>>> To unsubscribe, e-mail: >>>>>>>>>>> qmailtoaster-list-unsubscr...@qmailtoaster.com >>>>>>>>>>> <mailto:qmailtoaster-list-unsubscr...@qmailtoaster.com> For >>>>>>>>>>> additional commands, e-mail: >>>>>>>>>>> qmailtoaster-list-h...@qmailtoaster.com >>>>>>>>>>> <mailto:qmailtoaster-list-h...@qmailtoaster.com>--------------------------------------------------------------------- >>>>>>>>>>> To unsubscribe, e-mail: >>>>>>>>>>> qmailtoaster-list-unsubscr...@qmailtoaster.com >>>>>>>>>>> <mailto:qmailtoaster-list-unsubscr...@qmailtoaster.com> For >>>>>>>>>>> additional commands, e-mail: >>>>>>>>>>> qmailtoaster-list-h...@qmailtoaster.com >>>>>>>>>>> <mailto:qmailtoaster-list-h...@qmailtoaster.com>--------------------------------------------------------------------- >>>>>>>>>>> To unsubscribe, e-mail: >>>>>>>>>>> qmailtoaster-list-unsubscr...@qmailtoaster.com >>>>>>>>>>> <mailto:qmailtoaster-list-unsubscr...@qmailtoaster.com> For >>>>>>>>>>> additional commands, e-mail: >>>>>>>>>>> qmailtoaster-list-h...@qmailtoaster.com >>>>>>>>>>> <mailto:qmailtoaster-list-h...@qmailtoaster.com>--------------------------------------------------------------------- >>>>>>>>>>> To unsubscribe, e-mail: >>>>>>>>>>> qmailtoaster-list-unsubscr...@qmailtoaster.com >>>>>>>>>>> <mailto:qmailtoaster-list-unsubscr...@qmailtoaster.com> For >>>>>>>>>>> additional commands, e-mail: >>>>>>>>>>> qmailtoaster-list-h...@qmailtoaster.com >>>>>>>>>>> <mailto:qmailtoaster-list-h...@qmailtoaster.com>