Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> PHP Kompresja CSS/JS w htaccess, php (cgi-bin)
dotangelo
post 28.07.2009, 20:49:20
Post #1





Grupa: Zarejestrowani
Postów: 62
Pomógł: 3
Dołączył: 12.04.2007
Skąd: Wągrowiec

Ostrzeżenie: (0%)
-----


W sumie nie wiedziałem gdzie ten temat napisać gdyż pasuję on do wielu tematów, stwierdziłem że najbardziej dotyczy PHP więc piszę właśnie tutaj.

Wiem, że tematów o kompresji było sporo, jednak nie w tym rzecz. Jak kompresję przeprowadzić wiem, sęk w tym, że z CGI to po prostu nie działa.

Od 2 dni próbuję zrobić kompresję plików css/javascript na podstawie .htaccess, czyli prostego DEFLATE.
Gdyby PHP było skompilowane jako moduł apache, wszystko było by ok, ale jest jako cgi-bin i przypuszczam że dlatego muszę poszukać innego rozwiązania.

O tyle, o ile funkcje jak ob_start('ob_gzhandler') działają, o tyme gzcompress() już nie, tak samo reguły w .htaccess (próbowałem około 23 różnych reguł do kompresji [!]). Za każdym razem dostaję ISE (kod 500).

Myślę, że jest coś ważnego o czym nie wiem, jeśli chodzi o kompresję oraz CGI. Mam nadzieję, że ktoś tutaj wie o co chodzi i podzieli się ze mną tą wiedzą smile.gif

tutaj znalazłem coś takiego:
Cytat
# uncomment this line to enable site wide gzip to greatly decrease load times
# may cause 500 server errors on servers running php in cgi mode
#---------------------------------------- GZIP BEGIN ------------------------------------#
# php_value output_handler ob_gzhandler
#---------------------------------------- GZIP END --------------------------------------#


IF THE SERVER IS RUNNING PHP AS CGI
THAT LINE MUST REMAIN COMMENTED OUT

as php cgi will nor run gzip

i also might add that this server is running Suhosin-Patch
and if that was installed wrong and or setup wrong
that also could be part of your problem.


Czyli CGI nie odpali Gzip, dlaczego, i jak to obejść ?

Ten post edytował dotangelo 28.07.2009, 20:59:07
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
dotangelo
post 28.07.2009, 22:09:19
Post #2





Grupa: Zarejestrowani
Postów: 62
Pomógł: 3
Dołączył: 12.04.2007
Skąd: Wągrowiec

Ostrzeżenie: (0%)
-----


Widzisz, z adminami jest tak:
Cytat
(22:29:44) niestety nie znam sie na tego typu rzeczach
(22:29:50) do czego to Panu potrzebne
(22:37:33) prosze napisac
(22:37:37) po angliesku
(22:37:38) wiadomośc
(22:37:40) ja mu przekaże
(22:37:46) przekaże do supportu

Dlatego będę musiał opracować hack na hacku smile.gif

OK, mam rozwiązanie.

- Pobieramy gzip.exe
- odpalamy w linii komend:
Kod
gzip.exe -9 style.css

- otrzymujemy plik style.css.gz, który wysyłamy na serwer
- otwieramy .haccess:
- wprowadzamy:
Kod
AddEncoding gzip .gz
<Files *.css.gz>
  ForceType text/css
</Files>

<Files *.js.gz>
  ForceType text/javascript
</Files>

Nie wiem czy będzie to działało z subdomenami, sprawdzę jutro <= działa z subdomenami.

W kodzie HTML dajemy tylko:
  1. <link rel="stylesheet" href="screen.css.gz" type="text/css" media="screen" charset="utf-8"/>


Zalety takiego rozwiązania:
- kod nie musi byc kompresowany za każdym razem gdy użytkownik wyśle request (z tego co się orientuję przeglądarka zajmuje się takim kodem, więc nie obciąża serwera)
- kod oczywiście zajmuje mniej miejsca (nawet 85% mniej!)

Oczywistą wadą jest oczywiście to, że po każdej zmianie pliku css należy powtórzyć kompresję oraz wysłać nowy plik ".gz" na serwer.
Rozwiązanie znalazłem tutaj

Ten post edytował dotangelo 28.07.2009, 22:41:08
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 15.08.2025 - 01:47