abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 11:44 | Nová verze

    Byla vydána nová verze 25.05.11 svobodného multiplatformního video editoru Shotcut (Wikipedie) postaveného nad multimediálním frameworkem MLT. Nejnovější Shotcut je již vedle zdrojových kódů k dispozici také ve formátech AppImage, Flatpak a Snap.

    Ladislav Hagara | Komentářů: 0
    dnes 11:11 | Nová verze

    Svobodný elektronický platební systém GNU Taler (Wikipedie, cgit) byl vydán ve verzi 1.0. GNU Taler chrání soukromí plátců a zároveň zajišťuje, aby byl příjem viditelný pro úřady. S vydáním verze 1.0 byl systém spuštěn ve Švýcarsku.

    Ladislav Hagara | Komentářů: 2
    dnes 00:55 | Pozvánky

    Spolek OpenAlt zve příznivce otevřených řešení a přístupu na 209. brněnský sraz, který proběhne tento pátek 16. května od 18:00 ve studentském klubu U Kachničky na Fakultě informačních technologií Vysokého učení technického na adrese Božetěchova 2/1. Jelikož se Brno stalo jedním z hlavních míst, kde se vyvíjí open source knihovna OpenSSL, tentokrát se OpenAlt komunita potká s komunitou OpenSSL. V rámci srazu Anton Arapov z OpenSSL

    … více »
    Ladislav Hagara | Komentářů: 1
    dnes 00:22 | Komunita

    GNOME Foundation má nového výkonného ředitele. Po deseti měsících skončil dočasný výkonný ředitel Richard Littauer. Vedení nadace převzal Steven Deobald.

    Ladislav Hagara | Komentářů: 4
    10.5. 15:00 | Zajímavý článek

    Byl publikován přehled vývoje renderovacího jádra webového prohlížeče Servo (Wikipedie) za uplynulé dva měsíce. Servo zvládne už i Gmail. Zakázány jsou příspěvky generované pomocí AI.

    Ladislav Hagara | Komentářů: 13
    9.5. 17:22 | Nová verze

    Raspberry Pi Connect, tj. oficiální služba Raspberry Pi pro vzdálený přístup k jednodeskovým počítačům Raspberry Pi z webového prohlížeče, byla vydána v nové verzi 2.5. Nejedná se už o beta verzi.

    Ladislav Hagara | Komentářů: 5
    9.5. 15:22 | Komunita

    Google zveřejnil seznam 1272 projektů (vývojářů) od 185 organizací přijatých do letošního, již jednadvacátého, Google Summer of Code. Plánovaným vylepšením v grafických a multimediálních aplikacích se věnuje článek na Libre Arts.

    Ladislav Hagara | Komentářů: 1
    8.5. 19:22 | Nová verze

    Byla vydána (𝕏) dubnová aktualizace aneb nová verze 1.100 editoru zdrojových kódů Visual Studio Code (Wikipedie). Přehled novinek i s náhledy a videi v poznámkách k vydání. Ve verzi 1.100 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.

    Ladislav Hagara | Komentářů: 1
    8.5. 18:00 | Nová verze

    Open source platforma Home Assistant (Demo, GitHub, Wikipedie) pro monitorování a řízení inteligentní domácnosti byla vydána v nové verzi 2025.5.

    Ladislav Hagara | Komentářů: 0
    8.5. 01:22 | Nová verze Ladislav Hagara | Komentářů: 0
    Jaký filesystém primárně používáte?
     (57%)
     (1%)
     (8%)
     (22%)
     (4%)
     (2%)
     (3%)
     (1%)
     (1%)
     (3%)
    Celkem 589 hlasů
     Komentářů: 26, poslední 8.5. 09:58
    Rozcestník

    Dotaz: Apache 2.2 s mod_deflate + PHP

    9.11.2010 19:07 Hannibal47
    Apache 2.2 s mod_deflate + PHP
    Přečteno: 543×
    Mám problém se zprovozněním modulu mod_deflate v Apache 2.2 s PHP. Modul mám načtený a funguje, komprese podle odeslaných hlaviček probíhá. Problém nastane ve chvíli, kdy chci pomocí PHP generovat vlastní hlavičky a umožnit stažení souboru. Ukázkový PHP kód:
    <?php
    
    // force download dialog
    header("Content-Type: application/force-download");
    header("Content-Type: application/octet-stream");
    header("Content-Type: application/download");
    
    header('Content-Disposition: attachment; filename="test.mp3"');
    header('Content-Type: audio/mpeg');
    header('Content-Length: ' . filesize('/path/to/test.mp3'));
    header('Content-Transfer-Encoding: binary');
    
    readfile('/path/to/test.mp3');
    
    ?>
    
    Skript volám přes běžný prohlížeč (Firefox) a odchytávám si hlavičky, abych poznal výsledek.

    Konfigurace Apache je pomocí .htaccess upravena pro kompresi POUZE požadovaných typů souborů, které chci určit na základě mime type. V .htaccess mám:
    <IfModule mod_deflate.c>
      AddOutputFilterByType DEFLATE text/html
      AddOutputFilterByType DEFLATE text/plain
      AddOutputFilterByType DEFLATE text/xml
      AddOutputFilterByType DEFLATE text/css
      AddOutputFilterByType DEFLATE application/x-javascript
    </IfModule>
    
    Výsledkem tohoto by měla být komprese pouze html, plain, xml, css a js souborů. V PHP si vygeneruji ke stažení mp3 soubor a odešlu správné hlavičky. Tento mp3 soubor NESMÍ být pro mé účely komprimován pomocí mod_deflate. Bohužel právě to se mi děje. Toto chování jsem odzkoušel na distribicích Red Hat, CentOS 5.5, ale i ve Windows (Xampp 1.7.3). Je zajímavé, že v Debianu i Arch Linuxu mi se stejným nastavením vše funguje požadovaným způsobem.

    Problém bude určitě v konfiguraci Apache, v PHP problém nebude (php.ini je stejné). Změnit definici Apache přes přípony pomocí "AddOutputFilter" není pro mě řešením. Pokud odeberu řádek:
    AddOutputFilterByType DEFLATE text/html
    pak se mp3 nabídne ke stažení bez komprese, což je přesně co potřebuji.

    Skoro to vypadá, že mime type výsledku volaného skriptu je text/html, což mi přijde jako nesmysl, ale přesně tak se to chová. HTML soubory i PHP skripty samozřejmě komprimovat chci.

    Co může v nastavení Apache toto způsobovat?

    Odpovědi

    AraxoN avatar 9.11.2010 20:09 AraxoN | skóre: 47 | blog: slon_v_porcelane | Košice
    Rozbalit Rozbalit vše Re: Apache 2.2 s mod_deflate + PHP
    Ja som to u seba vyriešil cez filter_module:
    <IfModule filter_module>
    
            # nepovinne, ak nechceme nejaky "advanced" typ spracovania
            FilterDeclare gzip
    
            # tu je kriterium, kedy sa ma filter spustit
            #FilterProvider gzip deflate Content-Type $text/html
            #FilterProvider gzip deflate Content-Type $text/plain
            #FilterProvider gzip deflate Content-Type $text/xml
            #FilterProvider gzip deflate Content-Type $text/css
            #FilterProvider gzip deflate Content-Type $text/javascript
            #FilterProvider gzip deflate Content-Type $text/rtf
            #FilterProvider gzip deflate Content-Type $text/url
    
            # toto pravidlo nahradza vsetky tie zakomentovane vyssie
            FilterProvider gzip deflate Content-Type /^text/
    
            FilterProvider gzip deflate Content-Type $application/x-javascript
    
            # tu je kam chceme tento filter zaradit ak ich je viac - default = na koniec chainu
            FilterChain gzip
    
    </IfModule>
    9.11.2010 20:20 Hannibal47
    Rozbalit Rozbalit vše Re: Apache 2.2 s mod_deflate + PHP
    Děkuji za reakci, určitě to vyzkouším a dám vědět.
    10.11.2010 09:00 Hannibal47
    Rozbalit Rozbalit vše Re: Apache 2.2 s mod_deflate + PHP
    Po lehkém nakopnutí správným směrem od kolegy jsem problém vyřešil následujícím způsobem:

    Konstrukci s použítím AddOutputFilterByType jsem nahradil řešením přes mod_filter (ten je třeba v Red Hat explicitně povolit), v dokumentaci je k parametru AddOutputFilterByType moc vtipná poznámka: Available in Apache 2.0.33 and later; deprecated in Apache 2.1 and later

    Výsledný kód pro .htaccess:
    <IfModule mod_filter.c>
    <IfModule mod_deflate.c>
      FilterDeclare COMPRESS
      FilterProvider COMPRESS DEFLATE Content-Type text/html
      FilterProvider COMPRESS DEFLATE Content-Type text/plain
      FilterProvider COMPRESS DEFLATE Content-Type text/xml
      FilterProvider COMPRESS DEFLATE Content-Type text/css
      FilterProvider COMPRESS DEFLATE Content-Type application/x-javascript
      FilterChain COMPRESS
    </IfModule>
    </IfModule>
    http://httpd.apache.org/docs/current/mod/mod_filter.html

    Podle dokumentace jde o vhodnější cestu, i když možná méně přehlednout. Důležité je, že takto to funguje!

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.