Plötzlicher PHP-Fehler

Berndi

Benutzer
Mitglied seit
30. Sep 2009
Beiträge
183
Punkte für Reaktionen
4
Punkte
18
Hallo!

Ich brauche mal dringend eure Hilfe.

Seit heute laufen bei mir folgende Fehler auf:
Code:
PHP Warning:  PHP Startup: Unable to load dynamic library 'mcrypt.so' (tried: /usr/local/lib/php74/modules/mcrypt.so (/usr/local/lib/php74/modules/mcrypt.so: cannot open shared object file: No such file or directory), /usr/local/lib/php74/modules/mcrypt.so.so (/usr/local/lib/php74/modules/mcrypt.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library 'mysql.so' (tried: /usr/local/lib/php74/modules/mysql.so (/usr/local/lib/php74/modules/mysql.so: cannot open shared object file: No such file or directory), /usr/local/lib/php74/modules/mysql.so.so (/usr/local/lib/php74/modules/mysql.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0

Erstaunlich daran ist, dass ich nichts verändert habe.

Ich habe mal in dem Verzeichnis /usr/local/lib/php74/modules/ nachgesehen und es ist tatsächlich leer.

Was läuft da plötzlich schief?

Ach ja, das Script, das ich ausführe sieht so aus:

Code:
<?php

require __DIR__ . '/vendor/autoload.php';
use \PhpMqtt\Client\MqttClient;
use \PhpMqtt\Client\ConnectionSettings;

$mqtt_server   = 'raspberrypi';
$mqtt_port     = 1883;
$clientId = 'heatronic';
$mqtt_username = '*****';
$mqtt_password = '*****';
$clean_session = false;

$servername = "localhost";
$username = "*****";
$password = "******";
$dbname = "Heizungsdaten";

$DateAndTime = date('Y-m-d h:i', strtotime('-10 Minutes '.$strDate));  

$connectionSettings  = new ConnectionSettings();
$connectionSettings
  ->setUsername($mqtt_username)
  ->setPassword($mqtt_password)
  ->setKeepAliveInterval(60)
  ->setLastWillTopic('home/heizung/last-will')
  ->setLastWillMessage('client disconnect')
  ->setLastWillQualityOfService(1);

$mqtt = new MqttClient($mqtt_server, $mqtt_port, $clientId);

$mqtt->connect($connectionSettings, $clean_session);

$mysqli = new mysqli($servername, $username, $password, $dbname);

$query = "SELECT * FROM `Werte` WHERE `256` = '$DateAndTime'";
$result = $mysqli->query($query);
$zeile = $result->fetch_array(MYSQLI_ASSOC);

$datum = $zeile['256'];
$aussen = $zeile['207'];
$sollwert = $zeile['255'];
$istwert = (strtotime($zeile['256']) < strtotime('2021-03-14 15:15:00') ? $zeile['205'] : $zeile['221']);     // WW-Fühler umgeklemmt
//$istwert[] =  $zeile['221'];  
$brenner = $zeile['209'];
$vorlaufFBH = $zeile['440'];
$sollheiz = $zeile['252'];
$mischerY = $zeile['441'];
$speicherZSB = $zeile['20B'];
//$speicherHSM[] = $zeile[''];
$vorlaufMax = $zeile['200'];
$vorlaufSoll = $zeile['405'];    // Sollwert Vorlauftemperatur
$vorlaufZSB = $zeile['201'];      // Vorlauftemperatur (Therme)
$vorlaufHSM = $zeile['220'];      // Vorlauftemperatur (HSM)

mysqli_free_result( $result );

$mqtt->publish('home/heizung/aussen', $aussen, 0, true);
$mqtt->publish('home/heizung/ww_sollwert', $sollwert, 0, true);
$mqtt->publish('home/heizung/ww_istwert', $istwert, 0, true);
$mqtt->publish('home/heizung/fbh_vorlauf_ist', $vorlaufFBH, 0, true);
$mqtt->publish('home/heizung/fbh_vorlauf_soll', $vorlaufSoll, 0, true);
$mqtt->publish('home/heizung/brenner', $brenner, 0, true);
$mqtt->publish('home/heizung/mischery', $mischerY, 0, true);

$mysqli->close();
$mqtt->disconnect(); 
/*
$LogFileDate = date('Ymd');
$file = $LogFileDate . "_mqtt.log";
//$file = "mqtt.log";
$fp = fopen($file, "a");
$zeile = sprintf("$datum ($aussen, $sollwert, $istwert, $vorlaufFBH. $vorlaufSoll, $brenner, $mischerY)\r\n");
fputs($fp, $zeile);                                                                                           
fclose($fp);
*/
?>

...und lief bisher immer problemlos.

Danke für die Hilfe,
Berndi
 

Berndi

Benutzer
Mitglied seit
30. Sep 2009
Beiträge
183
Punkte für Reaktionen
4
Punkte
18
Habe jetzt mal den Composer und das phpMQTT-Client Paket neu installiert, aber immer noch das Gleiche.

Irgendwie muss es an der PHP-Installation liegen.

Der Versuch das PHP7.4 zu deinstallieren und neu zu installieren scheitert daran, dass mir die DS sagt, ich müsste unzählige Softwarepakete vorher deinstallieren.
Das kann es doch nicht sein, oder?
 

Berndi

Benutzer
Mitglied seit
30. Sep 2009
Beiträge
183
Punkte für Reaktionen
4
Punkte
18
Erstaunlicherweise kommt der Fehler bei php7.2 und php7.0 nicht, obwohl dort die modules-Verzeichnisse ebenfalls leer sind.
Hat denn keiner eine Idee?
 

TheGardner

Benutzer
Mitglied seit
30. Nov 2012
Beiträge
1.845
Punkte für Reaktionen
56
Punkte
74
Nicht wirklich. Ich würde hier tatsächlich (in meiner Verzweiflung) das php 7.4 komplett deinstallieren, auch wenn der da (noch) andere/unzählige Pakete mit deinstallieren will. Es sollten allerdings dann tatsächlich auch Pakete sein, wo Du Dir ausrechnen kannst, dass die php benutzen.

Ansonsten kommste dem nur noch mit "flickschustern" bei und da brauchst Du tatsächlich jemanden, der das Gleiche schon einmal hatte UND noch dazu weiß, wie sie/er dem beigekommen ist.
 

dditt

Benutzer
Mitglied seit
08. Feb 2018
Beiträge
135
Punkte für Reaktionen
9
Punkte
18
Hallo zusammen,

Ich wollte heute bei meiner nextcloud Instanz auf php74 updaten. Aber bekomme genau die gleichen Meldungen.

Gibt es hierfür eine Lösung?
 

TheGardner

Benutzer
Mitglied seit
30. Nov 2012
Beiträge
1.845
Punkte für Reaktionen
56
Punkte
74
Schwierig. Ich kann nur schreiben, was ich versuchen würde und das ist halt (wie schon oben geschrieben) die ganzen alten php Pakete rückstandslos zu deinstallieren und php7.4 zu installieren. Dann nochmal zu schauen, ob Nextcloud starten kann.
Es kann eigentlich nicht passieren, solange man bei Nextcloud nicht versehendlich das Data Verzeichnis und die config.php löscht. Alles andere kann wie im Sandkasten eingerissen und wieder neu aufgebaut werden.

...und immer dran denken, dass man die php Module in den php Einstellungen (des Webservers) mit anschaltet, die man benötigt.
 


 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat