[gelöst] php5.6-xml ?

Debian macht sich hervorragend als Web- und Mailserver. Schau auch in den " Tipps und Tricks"-Bereich.
Antworten
Benutzeravatar
fulltilt
Beiträge: 1157
Registriert: 03.12.2006 20:10:57

[gelöst] php5.6-xml ?

Beitrag von fulltilt » 02.11.2016 18:29:48

gibt es kein php5.6-xml package mehr?
Habe hier ein Script wo simplexml_load_file() nicht mehr funktioniert ...

Code: Alles auswählen

E: Unable to locate package php5.6-xml
E: Couldn't find any package by regex 'php5.6-xml'
Zuletzt geändert von fulltilt am 05.11.2016 09:48:01, insgesamt 1-mal geändert.
Debian: Testing
Desktop: KDE Plasma 5

Benutzeravatar
sbruder
Beiträge: 333
Registriert: 24.06.2016 13:54:36
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Franken

Re: php5.6-xml ?

Beitrag von sbruder » 02.11.2016 18:49:38

fulltilt hat geschrieben:gibt es kein php5.6-xml package mehr?
Habe hier ein Script wo simplexml_load_file() nicht mehr funktioniert ...

Code: Alles auswählen

E: Unable to locate package php5.6-xml
E: Couldn't find any package by regex 'php5.6-xml'
nein
simplexml ist in libapache2-mod-php5, php5-cgi, php5-cli und php5-fpm (also allen geläufigen Paketen) direkt enthalten (zumindest unter Jessie). (Quelle: apt search simplexml; apt show [oben genannte Pakete])
Wenn du genauer zeigst, wie es nicht mehr funktioniert, kann ich dir vielleicht helfen

Benutzeravatar
fulltilt
Beiträge: 1157
Registriert: 03.12.2006 20:10:57

Re: php5.6-xml ?

Beitrag von fulltilt » 02.11.2016 19:01:31

hmm, das schockt mich aber jetz 8O
ich greife über simplexml auf Monit outputs zu, um mehrere Server übersichtlich unterwegs zu überwachen ...

Code: Alles auswählen

$daten1 = simplexml_load_file("https://admin:pass@xx.xxx.xxx.xxx:2812/_status?format=xml");
also Monit ist Passwort geschützt und das xml soll dabei ausgewertet werden von einem PHP 5.6/FCGID System (Jessie)
Debian: Testing
Desktop: KDE Plasma 5

Benutzeravatar
sbruder
Beiträge: 333
Registriert: 24.06.2016 13:54:36
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Franken

Re: php5.6-xml ?

Beitrag von sbruder » 02.11.2016 19:17:37

fulltilt hat geschrieben:hmm, das schockt mich aber jetz 8O
ich greife über simplexml auf Monit outputs zu, um mehrere Server übersichtlich unterwegs zu überwachen ...

Code: Alles auswählen

$daten1 = simplexml_load_file("https://admin:pass@xx.xxx.xxx.xxx:2812/_status?format=xml");
also Monit ist Passwort geschützt und das xml soll dabei ausgewertet werden von einem PHP 5.6/FCGID System (Jessie)
Probier doch erst mal ein

Code: Alles auswählen

foo = simplexml_load_file(/var/www/foo/bar.xml)
echo $foo
und schalt dabei warnings an.
Wenn das den Inhalt der XML-Datei ausliest ist simplexml da.

Ansonsten vermute ich, dass simplexml das HTTP AUTH nicht mag.
Dann könnte man es mit

Code: Alles auswählen

$my_var = file_get_contents('https://foo:bar@example.com/baz.xml');
und dann mit

Code: Alles auswählen

simplexml_load_string()
probieren.

Links:
http://php.net/manual/en/function.simpl ... string.php
http://stackoverflow.com/questions/3249 ... a-variable

EDIT: das könnte auch interessant sein: http://fr2.php.net/manual/en/book.curl.php

Benutzeravatar
fulltilt
Beiträge: 1157
Registriert: 03.12.2006 20:10:57

Re: php5.6-xml ?

Beitrag von fulltilt » 02.11.2016 20:01:19

über simplexml_load_file() beschwert der sich nicht ... scheint was mit dem self signed ssl cert zu tun zu haben

Code: Alles auswählen

SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
I/O warning : failed to load external entity "https:// ...

Warning: simplexml_load_file(): SSL operation failed with code 1. OpenSSL Error messages: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed in /var/www/
Debian: Testing
Desktop: KDE Plasma 5

Benutzeravatar
sbruder
Beiträge: 333
Registriert: 24.06.2016 13:54:36
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Franken

Re: php5.6-xml ?

Beitrag von sbruder » 02.11.2016 22:19:47

fulltilt hat geschrieben:[…]scheint was mit dem self signed ssl cert zu tun zu haben

Code: Alles auswählen

SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
I/O warning : failed to load external entity "https://[foo.example.com]

Warning: simplexml_load_file(): SSL operation failed with code 1. OpenSSL Error messages: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed in /var/www/
Ah OK, mit welcher Methode ging es jetzt?
Probier doch mal folgendes:

* Das Zertifikat deiner CA raussuchen (Datei fängt mit ---BEGIN CERTIFICATE--- an)
* Datei unter /usr/local/share/ca-certificates auf dem Webserver speichern (Dateiendung .crt)
*

Code: Alles auswählen

sudo update-ca-certificates
(auf dem Webserver)

Testen kannst Du das mit

Code: Alles auswählen

openssl s_client -connect foo.example.com:443 -CApath /etc/ssl/certs
ebenfalls auf dem Webserver

Nur so: nimm statt xxx.xxx.xxx.xxx oder ... immer foo.example.com oder so (example.com darf für Dokumentationen benutzt werden und man kann sich besser orientieren)

Benutzeravatar
fulltilt
Beiträge: 1157
Registriert: 03.12.2006 20:10:57

Re: php5.6-xml ?

Beitrag von fulltilt » 04.11.2016 13:06:01

ugh, das ist gar nicht so einfach ...
bekomme jetzt zwar eine Ausgabe mit file_get_contents() aber ich bekomme den Output nicht mehr richtig formatiert damit es mit den anderen PHP Scripten passt.
so sieht das ganze jetzt aus:

Code: Alles auswählen

original output über Browser
<monit>
   <server>
     <id>f6265d230c727923e0497d5f307238b7</id>

output über file_get_contents
<?xml version="1.0" encoding="ISO-8859-1"?>
<monit>
  <server>
    <id>f6265d230c727923e0497d5f307238b7</id>
also da müsste die obere Zeile noch ganz weg: <?xml version="1.0" encoding="ISO-8859-1"?>
hat jemand eine Idee?

hier ist der komplette Teil für die Abfrage

Code: Alles auswählen

$daten01 = file_get_contents("https://admin:password@example.com:2812/_status?format=xml", false, stream_context_create($arrContextOptions));
$dom = new DOMDocument;
$dom->preserveWhiteSpace = false;
$dom->formatOutput = true;
$dom->loadXML($daten01);

echo "<pre >". htmlentities($dom->saveXML())."</pre>";
Debian: Testing
Desktop: KDE Plasma 5

Benutzeravatar
sbruder
Beiträge: 333
Registriert: 24.06.2016 13:54:36
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Franken

Re: php5.6-xml ?

Beitrag von sbruder » 04.11.2016 15:06:53

fulltilt hat geschrieben:ugh, das ist gar nicht so einfach ...
bekomme jetzt zwar eine Ausgabe mit file_get_contents() aber ich bekomme den Output nicht mehr richtig formatiert damit es mit den anderen PHP Scripten passt.
so sieht das ganze jetzt aus:

Code: Alles auswählen

original output über Browser
<monit>
   <server>
     <id>f6265d230c727923e0497d5f307238b7</id>

output über file_get_contents
<?xml version="1.0" encoding="ISO-8859-1"?>
<monit>
  <server>
    <id>f6265d230c727923e0497d5f307238b7</id>
also da müsste die obere Zeile noch ganz weg: <?xml version="1.0" encoding="ISO-8859-1"?>
hat jemand eine Idee?
Das stimmt so, dein Browser zeigt dir den XML-Header halt nicht an, PHP schon.

Zeig doch mal, wie du es haben willst.

Benutzeravatar
fulltilt
Beiträge: 1157
Registriert: 03.12.2006 20:10:57

Re: php5.6-xml ?

Beitrag von fulltilt » 04.11.2016 16:40:47

irgendwie haut das nicht mehr hin ... echo zeigt mir beim testen im Script zwar alles schön formatiert an aber ich kann nicht mehr darauf zugreifen
bekomme keine Ausgabe mehr:

Code: Alles auswählen


<monit>
hier das Original xml im Browser
<server>
<id>aefdac39cdc4bcf4539198944e29d3e8</id>
<incarnation>1475002702</incarnation>
<version>5.4</version>
<uptime>3270891</uptime>

und hier die Verarbeitung im Script
$daten01 = file_get_contents("https://admin:password@example.com:2812/_status?format=xml", false, stream_context_create($arrContextOptions));
$dom = new DOMDocument;
$dom->preserveWhiteSpace = false;
$dom->formatOutput = true;
$dom->loadXML($daten01);

$Host1uptime = $daten01->server->uptime;
echo $Host1uptime; // alle Values getestet bleibt alles leer 
auf einem PHP 5.4 System funktioniert das alles ohne Probleme mit simplexml_load_file ...
Debian: Testing
Desktop: KDE Plasma 5

Benutzeravatar
sbruder
Beiträge: 333
Registriert: 24.06.2016 13:54:36
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Franken

Re: php5.6-xml ?

Beitrag von sbruder » 04.11.2016 23:23:47

fulltilt hat geschrieben:irgendwie haut das nicht mehr hin ... echo zeigt mir beim testen im Script zwar alles schön formatiert an aber ich kann nicht mehr darauf zugreifen
bekomme keine Ausgabe mehr:

Code: Alles auswählen


<monit>
hier das Original xml im Browser
<server>
<id>aefdac39cdc4bcf4539198944e29d3e8</id>
<incarnation>1475002702</incarnation>
<version>5.4</version>
<uptime>3270891</uptime>

und hier die Verarbeitung im Script
$daten01 = file_get_contents("https://admin:password@example.com:2812/_status?format=xml", false, stream_context_create($arrContextOptions));
$dom = new DOMDocument;
$dom->preserveWhiteSpace = false;
$dom->formatOutput = true;
$dom->loadXML($daten01);

$Host1uptime = $daten01->server->uptime;
echo $Host1uptime; // alle Values getestet bleibt alles leer 
auf einem PHP 5.4 System funktioniert das alles ohne Probleme mit simplexml_load_file ...
Also geht in der gleichen Konstellation ein

Code: Alles auswählen

echo $daten01;
?

Ich würde den dom-kram mal rauswerfen und stattdessen

Code: Alles auswählen

$xml01 = simplexml_load_string($daten01);
$Host1uptime = $xml01->server->uptime;
echo $Host1uptime;
probieren

Benutzeravatar
fulltilt
Beiträge: 1157
Registriert: 03.12.2006 20:10:57

Re: php5.6-xml ?

Beitrag von fulltilt » 05.11.2016 09:38:52

danke dir :THX:
habs doch noch hinbekommen verify_peer"=>false

Code: Alles auswählen

$arrContextOptions=array(
    "ssl"=>array(
        "verify_peer"=>false,
        "verify_peer_name"=>false,
    ),
);

$daten01 = file_get_contents("https://admin:password@example.com:2812/_status?format=xml", false, stream_context_create($arrContextOptions));

$xml01 = simplexml_load_string($daten01);
$Host1uptime = $xml01->server->uptime;
echo $Host1uptime;
Debian: Testing
Desktop: KDE Plasma 5

Antworten