Posts by Starlight

    @Nuxwin, could it be, that the encrypted database string in /etc/imscp/imscp.conf has the extra chars already? How to I decrypt or create a new encrypted string without re-running the installation?


    It is re-producible after every update.

    Since upgrading vlogger to v1.9, I had a strange phenomena: The apache workers got eaten up even in idle times.


    Checking the apache server log, I saw hundreds of those entries:

    Code
    1. [Wed Oct 5 20:00:25 2016] [alert] i-MSCP Vlogger: error while tracker dump: DBI connect('database=imscp;host=db.xxxxx.com;port=3306','vlogger_user',...) failed: Unknown MySQL server host 'db.xxxxx.com' (2) at /usr/local/sbin/vlogger line 494.


    Interestingly, since the connect sting was not mis-configured. If mis-configured, vlogger would complain on start up and turn the feature off:

    Code
    1. [Wed Oct 5 22:12:31 2016] [alert] i-MSCP Vlogger: could not connect to MySQL server: Unknown MySQL server host 'db1.xxxxx.com' (0)[Wed Oct 5 22:12:31 2016] [alert] i-MSCP Vlogger: tracker feature turned off


    Checking vloggers line 494, leads me to the sub routine dumpTracker's connect string:

    Code
    1. my $dbh = DBI->connect($DBI_DSN, $DBI_USER, $DBI_PASS, { AutoCommit => 1, PrintError => 0, RaiseError => 1 });

    I replaced the hostname with the server's IP address in /etc/imscp/apache/vlogger.conf and it works. I do not know, why this connect string is not working with domain names (anymore).


    Two things should be done now:
    1) fix the error string
    2) close open sessions to avoid workers getting eaten up


    I opened a Bug request: IP-1638

    Regarding V1.1.1 of Mailgraph


    The directory /var/www/imscp/gui/plugins/Mailgraph/tmp_graph is not generated on update of Mailgraph. The corresponding error message in the front end and in the log files is:


    Code
    1. Plugin::Mailgraph::_createMailgraphPicture: Could not save png to '/var/www/imscp/gui/plugins/Mailgraph/tmp_graph/mailgraph_day.png'

    Dear @Nuxwin,


    the file "/etc/imscp/mysql/imscp.cnf" has the right content:


    Code
    1. [mysqldump]
    2. host = {DATABASE_HOST}
    3. port = {DATABASE_PORT}
    4. user = "{DATABASE_USER}"
    5. password = "{DATABASE_PASSWORD}"

    Did you try passwords with #~()?

    Version: i-MSCP 1.3.0
    SQL Server: MySQL / MariaDB (remote server)

    Problem
    On installation / upgrade, in I-MSCP 1.3.0 a new config file will be created for mysqldump: /etc/mysql/conf.d/imscp.cnf. Inside this config file, the Password is escaped:


    Code
    1. [mysqldump]
    2. host = <hostname>
    3. port = 3306
    4. user = "imscp_user"
    5. password = "'<password>'"


    The escaping might be done due to special characters such as "#[([])}~^-+", however, it makes the dump stop working with following error message:


    Quote

    An error has been raised while executing function main::run in/var/www/imscp/engine/backup/imscp-backup-all:iMSCP::Database::mysql::dumpdb: mysqldump: Got error: 1045: Access deniedfor user 'imscp_user'@'<host>' (using password: YES) when trying toconnect

    Workaround
    Delete additional single quotes (') inside the password string.


    Fix
    Remove escapeShell() all from line 188 in Servers::sqld::remote_server.pm.

    I would suggest an even more complicated, but also more flexible Layout:


    • Multiple front ends for high availability


    • Separated nodes for services and storage of customer data or databases
    • Back end services on all necessary nodes


    I recently changed from external to internal DNS and I recognised, that the DNS is configured quite strange.


    I was expecting, that I update all domains' ns-record with the new ns IPs and that's it. However, I need to update each domain to ns1.<domain.tld> and ns2.<domain.tld> with the corresponding IPs where the website is running on (i. e. not the server Base IP).


    Example:

    It would be a great enhancement, to have all DNS records like nsX.base-domain.tld or a freely chosen domain name.

    @mrpink


    Could you please explain, how you connected the hook to the database? Would be great to have a short howto.

    Today I finished my automated letsencrypt rollout tests and I created about 60 certificates against the test (acme-staging) server. :D


    I'm using the bash script letsencrypt.sh for the certificate requests and a listener file which creates the domains.txt file for the bash script.
    The rest will be done with letsencrypt.sh -c (also the renew, if only 30 days are left) to request the certificate from the letsencrypt server.


    The entries in the i-MSCP database are made by the hook file of the bash script and then the i-MSCP request manager is called. So far all is working fine.
    :thumbsup: