I did another fresh install of Rocky9/QMT and I can't seem to duplicate the problem you're having.

On 2/22/2024 12:48 PM, Eric Broch wrote:

Mine as well. It'd be nice to see some errors in the httpd log.


On 2/22/2024 11:15 AM, Gary Bowling wrote:


Thanks. So Eric, my version is 8.0.3 as I stated previously.


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


Thanks, gb


On 2/22/2024 1:11 PM, Remo Mattei wrote:
Gary,
Yes default is php 8.0.3 I just upgraded afterwards to 8.3 you are fine on the default installation php. Sorry for the confusion.

Remo

On Feb 22, 2024, at 10:05, Gary Bowling <g...@gbco.us> wrote:


Not sure what you're saying Remo. My version is 8.0.3, and from your command it looks like yours is as well. I didn't upgrade to anything, just installed Rocky 9. Maybe you meant 8.0.3 instead of 8.3.

gb


On 2/22/2024 12:52 PM, Remo Mattei wrote:
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 wholeinstallerfolder 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 theinstaller 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 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 For additional commands, e-mail: qmailtoaster-list-h...@qmailtoaster.com
--------------------------------------------------------------------- To unsubscribe, e-mail: qmailtoaster-list-unsubscr...@qmailtoaster.com For additional commands, e-mail: qmailtoaster-list-h...@qmailtoaster.com
--------------------------------------------------------------------- To unsubscribe, e-mail: qmailtoaster-list-unsubscr...@qmailtoaster.com For additional commands, e-mail: qmailtoaster-list-h...@qmailtoaster.com
--------------------------------------------------------------------- To unsubscribe, e-mail: qmailtoaster-list-unsubscr...@qmailtoaster.com For additional commands, e-mail: qmailtoaster-list-h...@qmailtoaster.com

--------------------------------------------------------------------- To unsubscribe, e-mail: qmailtoaster-list-unsubscr...@qmailtoaster.com For additional commands, e-mail: qmailtoaster-list-h...@qmailtoaster.com

--------------------------------------------------------------------- To unsubscribe, e-mail: qmailtoaster-list-unsubscr...@qmailtoaster.com For additional commands, e-mail: qmailtoaster-list-h...@qmailtoaster.com

Reply via email to