Einstellungen für viele Domains ändern  [GELÖST]

Locked
select name from me;
Posts: 588
Joined: Tue 9. Feb 2016, 16:44

Einstellungen für viele Domains ändern  [GELÖST]

Post by select name from me; »

Hallo,

ich würde gerne zentrale Einstellungen wie pm.max_children für eine größere Anzahl Domains ändern. Da die Einstellung in der keyhelp Datenbank vorhanden ist, wäre es natürlich sehr einfach, dort die Einstellung zu ändern.

Ideal wäre eine API, mit der man das Schreiben der Konfiguration starten kann. Besser natürlich eine API, mit der man möglichst viele Einstellungen vornehmen kann. :)
viewtopic.php?f=7&t=19

Würde es in meinem konkreten Beispiel (pm.max_children) reichen, folgenden Eintrag in der keyhelp.crontasks pro geänderter Domain zu hinterlegen?

Code: Select all

+----+------+----------------------------------------------+
| id | type | data                                         |
+----+------+----------------------------------------------+
|  4 | 600  | a:1:{s:2:"id";s:2:"${ID aus keyhelp.user}";} |
+----+------+----------------------------------------------+
Vielen Dank für eine Antwort.
Viele Grüße, Christian
User avatar
Alexander
Keyweb AG
Posts: 4448
Joined: Wed 20. Jan 2016, 02:23

Re: Einstellungen für viele Domains ändern

Post by Alexander »

Hallo,

die pm.max_children sind mit dem Benutzeraccount verknüpft. Somit müssen Sie zuerst den Wert bei den entsprechenden "Besitzern" der Domains verändern. Danach muss die Domain zum Neu-schreiben der Konfiguration markiert werden (status_vhost = 1).

Hier der Beispielcode, um beide Schritte mit einem Mal zu erledigen:

Code: Select all

UPDATE `users`
JOIN `domains`
ON `domains`.`id_user` = `users`.`id`
SET
  `users`.`phpfpm_max_children` = 'XXXXXXXXXXX',
  `domains`.`status_vhost` = '1'
WHERE
  `domains`.`domain` = 'XXXXXXXXXXX'
Jetzt muss man das Neu-schreiben nur noch triggern:

Code: Select all

INSERT INTO `crontasks` SET `type` = '600', `data` = 'a:0:{}'
Nun muss man sich noch 1 Minute gedulden, bis der Cronjob die notwendigen Arbeiten erledigt hat -> Fertig!

---

Eine API für solche Zwecke ist definitiv angedacht, kann aber durchaus noch etwas dauern.
Mit freundlichen Grüßen / Best regards
Alexander Mahr

**************************************************************
Keyweb AG - Die Hosting Marke
Neuwerkstr. 45/46, 99084 Erfurt / Germany
http://www.keyweb.de - http://www.keyhelp.de
**************************************************************
select name from me;
Posts: 588
Joined: Tue 9. Feb 2016, 16:44

Re: Einstellungen für viele Domains ändern

Post by select name from me; »

Hallo Herr Mahr,

vielen Dank für die Info!
Viele Grüße, Christian
select name from me;
Posts: 588
Joined: Tue 9. Feb 2016, 16:44

Re: Einstellungen für viele Domains ändern

Post by select name from me; »

Der folgende Code führte leider nicht zur Aktualisierung der PHP Einstellungen:

Code: Select all

INSERT INTO `crontasks` SET `type` = '600', `data` = 'a:0:{}'
Ich habe daher für jede Domain eine Zeile eingefügt:

Code: Select all

<?php

# Als updateDomains.php speichern

$config = '/home/keyhelp/www/keyhelp/incl/lib/sqldata.ini.php';
$ini = parse_ini_file( $config, true );
$ini = $ini[ 'keyhelp' ];

$mysqli = new mysqli( 'localhost', $ini[ 'user' ], $ini[ 'pw' ], $ini[ 'db' ] );
if ($mysqli->connect_errno) {
    die( "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error );
}

$sql = 'SELECT `id` FROM `domains`';
$res = $mysqli->query( $sql );

while( $row = $res->fetch_assoc() ){
	
	$id = $row[ 'id' ];
	$data = serialize( array( 'id' => $row[ 'id' ] ) );
	$sql = 'INSERT INTO `crontasks` ( `type`, `data` ) VALUES ( "600", "' . $mysqli->real_escape_string( $data ) . '" )';

	$mysqli->query( $sql );
	echo "$id\n";
}

echo "done\n";
Und dann das Skript wie folgt aufgerufen:

Code: Select all

php updateDomains.php
Viele Grüße, Christian
User avatar
Alexander
Keyweb AG
Posts: 4448
Joined: Wed 20. Jan 2016, 02:23

Re: Einstellungen für viele Domains ändern

Post by Alexander »

Hallo Christian,

Sind Sie sicher, das Sie bei den entsprechenden Domains in der 'domains' - Datenbank mit `status_vhost` = 1 eine Aktualisierung erzwungen haben?

Ich habe meine MySQL Befehle soeben nochmal überprüft, und bei mir funktioniert damit die Aktualisierung der Einstellung.

Sie können natürlich gern Ihre Variante beibehalten, finde es nur kurios, warum die vorgeschlagene Lösung auf Ihrem System nicht funktioniert.
Mit freundlichen Grüßen / Best regards
Alexander Mahr

**************************************************************
Keyweb AG - Die Hosting Marke
Neuwerkstr. 45/46, 99084 Erfurt / Germany
http://www.keyweb.de - http://www.keyhelp.de
**************************************************************
select name from me;
Posts: 588
Joined: Tue 9. Feb 2016, 16:44

Re: Einstellungen für viele Domains ändern

Post by select name from me; »

Hallo Herr Mahr,

zwei Stunden ausprobieren ersetzen 10 Minuten Handbuch lesen. Das habe ich tatsächlich übersehen. :roll:
Bitte entschuldigen Sie.
Viele Grüße, Christian
Locked