Linuchs: php-Fehler beim Abruf eines Headers

Moin,

bei Aufruf dieser Audio-Datei 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

  1. 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

    -- Es gibt nichts Gutes, außer man tut es!
    Das Leben selbst ist der Sinn.
  2. 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
    1. 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.

      • PHP-Version
      • PHP-Module (kompilierte und geladene)

      Zur Not nimm internes oder externes cUrl oder den Klassiker wget. Die greifen auf eigene Libs zurück.

    2. 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
      1. PHP Version 5.3.3-7+squeeze15

        Hm.

        Wer ist denn root auf DEM Server?

        1. 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.

          1. 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.