php-Fehler beim Abruf eines Headers
Linuchs
- php
Moin,
bei Aufruf [dieser Audio-Datei](https://www.shantychor-hallerschipper.de/.cm4all/mediadb/Das große Spiel.mp3) spielt Firefox sie ab.
Mir gelingt es aber nicht, per PHP ihre Existenz zu prüfen:
110 echo "1. " . quote2html($url)."<br>";
111 echo "<pre>";
112 print_r(get_headers($url));
113 print_r(get_headers($url, 1));
114 echo "</pre>";
Meldung:
1. https://www.shantychor-hallerschipper.de/.cm4all/mediadb/Das große Spiel.mp3
Warning: get_headers(): SSL operation failed with code 1. OpenSSL Error messages:
error:1407742E:SSL routines:func(119):reason(1070) in /home/osmer/domains/remso.de/public_html/500/p532.php on line 112
Warning: get_headers(): Failed to enable crypto in /home/osmer/domains/remso.de/public_html/500/p532.php on line 112
Warning: get_headers(https://www.shantychor-hallerschipper.de/.cm4all/mediadb/Das große Spiel.mp3): failed to open stream: operation failed in /home/osmer/domains/remso.de/public_html/500/p532.php on line 112
Warning: get_headers(): SSL operation failed with code 1. OpenSSL Error messages:
error:1407742E:SSL routines:func(119):reason(1070) in /home/osmer/domains/remso.de/public_html/500/p532.php on line 113
Warning: get_headers(): Failed to enable crypto in /home/osmer/domains/remso.de/public_html/500/p532.php on line 113
Warning: get_headers(https://www.shantychor-hallerschipper.de/.cm4all/mediadb/Das große Spiel.mp3): failed to open stream: operation failed in /home/osmer/domains/remso.de/public_html/500/p532.php on line 113
Scheint irgendwas mit https zu tun zu haben? Was muss ich tun, um den Fehler zu vermeiden?
Gruß, Linuchs
Hello,
Du hast mich im ersten Moment doch verwirrt. Aberget_headers()
ist KEIN Head-Request, den Du vermutlich hier benötigst?
Ich habe Dich so verstanden, dass Du auf einem entferten Server die Existenz der Datei prüfen willst?
Ich habe da mal einen etwas komplexeren Head-Request (mit Umleitungskette usw.) gebastelt, der eigentlich noch im Archiv sein sollte.
Glück Auf
Tom vom Berg
Hm. Ich hoffe mal, Du hast lediglich 'www.shantychor-hallerschipper.de' durch 'localhost' oder '127.0.0.1' ausgetauscht: Dann stimmen nur die Schlüssel nicht.
Sonst liegt es an der PHP-Installation. Bei mir geht das hier nämlich.
<?php
$url = 'https://www.shantychor-hallerschipper.de/.cm4all/mediadb/Das%20gro%C3%9Fe%20Spiel.mp3';
print_r( get_headers( $url, 1 ) );
Ergebnis:
Array
(
[0] => HTTP/1.1 200 OK
[Date] => Fri, 08 Feb 2019 16:28:20 GMT
[Server] => Apache/2.4.37 (Unix)
[Upgrade] => h2,h2c
[Connection] => Upgrade, close
[Last-Modified] => Wed, 28 Feb 2018 13:41:24 GMT
[ETag] => "32b2b5-56645e639221d"
[Accept-Ranges] => bytes
[Content-Length] => 3322549
[Content-Type] => audio/mpeg
)
Was sagt phpinfo?
php -i | grep ssl
Registered Stream Socket Transports => tcp, udp, unix, udg, ssl, tls, tlsv1.0, tlsv1.1, tlsv1.2
openssl
Openssl default config => /usr/lib/ssl/openssl.cnf
openssl.cafile => no value => no value
openssl.capath => no value => no value
und:
php -i | grep https
Registered PHP Streams => https, ftps, compress.zlib, php, file, glob, data, http, ftp, phar, zip
Protocols => dict, file, ftp, ftps, gopher, http, https, imap, imaps, ldap, ldaps, pop3, pop3s, rtmp, rtsp, smb, smbs, smtp, smtps, telnet, tftp
Hm. Ich hoffe mal, Du hast lediglich 'www.shantychor-hallerschipper.de' durch 'localhost' oder '127.0.0.1' ausgetauscht: Dann stimmen nur die Schlüssel nicht.
So, Felix. Ich habe genau das mal probiert: Dann kommt es zu folgendem Fehler:
PHP Warning: get_headers(): Peer certificate CN=
code.fastix.org' did not match expected CN=
microserver.box' in /tmp/test2.php on line 3
Da die Fehlermeldung nicht übereinstimmt und weil es mit meinem PHP [7.2.10-0ubuntu0.18.04.1 (cli) (built: Sep 13 2018 13:45:02) ( NTS )] bestens funktioniert wirst Du uns wohl mal was über Deine PHP-Installation erzählen müssen.
Zur Not nimm internes oder externes cUrl
oder den Klassiker wget
. Die greifen auf eigene Libs zurück.
Hm. Ich hoffe mal, Du hast lediglich 'www.shantychor-hallerschipper.de' durch 'localhost' oder '127.0.0.1' ausgetauscht: Dann stimmen nur die Schlüssel nicht.
Nein, das läuft auf dem Web-Server.
PHP Version 5.3.3-7+squeeze15
php -i | grep ssl
Registered Stream Socket Transports => tcp, udp, unix, udg, ssl, sslv3, sslv2, tls
openssl
fehlt:
Openssl default config => /usr/lib/ssl/openssl.cnf
openssl.cafile => no value => no value
openssl.capath => no value => no value
php -i | grep https
Registered PHP Streams => https, ftps, compress.zlib, compress.bzip2, php, file, glob, data, http, ftp, phar, zip
fehlt:
Protocols => dict, file, ftp, ftps, gopher, http, https, imap, imaps, ldap, ldaps, pop3, pop3s, rtmp, rtsp, smb, smbs, smtp, smtps, telnet, tftp
PHP Version 5.3.3-7+squeeze15
Hm.
Wer ist denn root auf DEM Server?
Wer ist denn root auf DEM Server?
Bin ich selbst, habe mich aber in das Betriebssystem nicht hineingekniet. Solche Sachen lasse ich dann von den Mitarbeitern in Ffm machen, dann kommt eine Rechnung.
Solche Sachen lasse ich dann von den Mitarbeitern in Ffm machen
Dann lass das mal zeitnah auf eine aktuelle LTS-Version hochsetzen, womöglich für apt in /etc/apt/sources gleich "rolling-releases" einrichten. Das Ding wird sonst mangels Unterstützung von moderneren und sicheren Protokollen und/oder Verfahren mit immer mehr solchen Dysfunktionen aufwarten.