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 Feb 22, 2024, at 09:21, Gary Bowling <[email protected]> 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 [email protected] 
>>>>>>> <mailto:[email protected]> 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: 
>>>>>>>>> [email protected] 
>>>>>>>>> <mailto:[email protected]> For 
>>>>>>>>> additional commands, e-mail: [email protected] 
>>>>>>>>> <mailto:[email protected]>---------------------------------------------------------------------
>>>>>>>>>  To unsubscribe, e-mail: 
>>>>>>>>> [email protected] 
>>>>>>>>> <mailto:[email protected]> For 
>>>>>>>>> additional commands, e-mail: [email protected] 
>>>>>>>>> <mailto:[email protected]>---------------------------------------------------------------------
>>>>>>>>>  To unsubscribe, e-mail: 
>>>>>>>>> [email protected] 
>>>>>>>>> <mailto:[email protected]> For 
>>>>>>>>> additional commands, e-mail: [email protected] 
>>>>>>>>> <mailto:[email protected]>---------------------------------------------------------------------
>>>>>>>>>  To unsubscribe, e-mail: 
>>>>>>>>> [email protected] 
>>>>>>>>> <mailto:[email protected]> For 
>>>>>>>>> additional commands, e-mail: [email protected] 
>>>>>>>>> <mailto:[email protected]>

Reply via email to