Kilka wersji PHP na raz w różnych katalogach pod jednym Apache [WAMP]

Dodany: 5 maja, 2015 | Kategoria: Apache, PHP

Należy pobrać fcgi dla apache:

Wklejamy mod_fcgid.so do wamp\bin\apache\apache2.x.x\modules

Otwieramy plik konfiguracyjny apache wamp\bin\apache\conf\httpd.conf. Znajdujemy linijkę:

1
LoadModule php5_module "C:/Wamp/bin/php/php5.5.x/php5apache2_4.dll

I zamieniamy na

1
2
#LoadModule php5_module "C:/Wamp/bin/php/php5.5.x/php5apache2_4.dll
LoadModule fcgid_module modules/mod_fcgid.so

Poniżej dodajemy też konfigurację dla domyślnego PHP

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
FcgidInitialEnv PATH "C:/wamp/bin/php/php5.5.x;C:/WINDOWS/system32;C:/WINDOWS;C:/WINDOWS/System32/Wbem;"
FcgidInitialEnv SystemRoot "C:/Windows"
FcgidInitialEnv SystemDrive "C:"
FcgidInitialEnv TEMP "C:/wamp/tmp"
FcgidInitialEnv TMP "C:/wamp/tmp"
FcgidInitialEnv windir "C:/WINDOWS"
FcgidIOTimeout 64
FcgidConnectTimeout 16
FcgidMaxRequestsPerProcess 1000
FcgidMaxProcesses 3
FcgidMaxRequestLen 8131072
# Location php.ini:
FcgidInitialEnv PHPRC "C:\wamp\bin\php\php5.5.x"
FcgidInitialEnv PHP_FCGI_MAX_REQUESTS 1000
Options Indexes FollowSymLinks ExecCGI
AddHandler fcgid-script .php
FcgidWrapper "C:/wamp/bin/php/php5.5.x/php-cgi.exe" .php

Restartujemy WAMPa i sprawdzamy, czy adres http://localhost/?phpinfo=1 działa.

Przechodzimy do konfiguracji VHOSTów do sekcji <Directory> danego hosta, albo tworzymy plik .htaccess (otaczamy wtedy fragmenty w <Files ~ "\.php$">...</Files> w katalogu w którym chcemy innej wersji PHP i dodajemy:

1
FcgidWrapper "D:/wamp/bin/php/php5.3.x/php-cgi.exe" .php

Lub, jeśli nie chcemy, żeby do konfiguracji został użyty ten sam plik INI dla domyślnego PHP:

1
FcgidWrapper "D:/wamp/bin/php/php5.3.x/php-cgi.exe -c D:/wamp/bin/php/php5.3.x/php.ini" .php

Druga wersja jest zapewne tą bardziej pożądaną :)

Źródła: [1], [2], [2], [3], oraz własne metody prób i błędów :)

Tagi: , , , Brak komentarzy »

Cross-domain font

Dodany: 17 lipca, 2014 | Kategoria: Apache, PHP

Jak wyświetlić czcionkę gdy CSS i owy plik pobierane są z innej domeny (np. emulujemy sobie lokalnie chmurę bo takie środowisko czeka nas na serwerach klienta i jest inna zmyślona domena, mimo, że wciąż 127.0.0.1).

1
2
3
4
5
<FilesMatch "\.(ttf|otf|eot|woff)$">
  <IfModule mod_headers.c>
    Header set Access-Control-Allow-Origin "*"
  </IfModule>
</FilesMatch>
Tagi: , , , , , , , Brak komentarzy »

Odrzucanie ciastek top-domain na subdomenie

Dodany: 12 maja, 2014 | Kategoria: Apache, PHP

Załóżmy, że mamy stronę: mojadomena.pl i vip.mojadomena.pl – ale na obu jest logowanie. Ciastka z mojadomena.pl będą wtedy przesłaniać te z vip.mojadomena.pl. W PHP można jednak problem obejść:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
// fix subdomain cookies
// based on from http://stackoverflow.com/a/9678857/1823945
// little changes by gnysek.pl
function skip_top_level_cookies()
{
    if (!empty($_SERVER['HTTP_COOKIE'])) {
        $domains_counter = array();
        foreach (explode(';', $_SERVER['HTTP_COOKIE']) as $cookie_variable_string) {
            $key_value = explode('=', $cookie_variable_string);
            $cookie_var_name = trim($key_value[0]);
            if (!array_key_exists($cookie_var_name, $domains_counter)) {
                $domains_counter[$cookie_var_name] = 1;
            }
            $http_cookie_variables[$cookie_var_name][$domains_counter[$cookie_var_name]] = (!empty($key_value[1])) ? urldecode(trim($key_value[1])) : '';
            $domains_counter[$cookie_var_name]++;
        }

        $levelDomain = substr_count($_SERVER['HTTP_HOST'], '.');

        $newCookies = array();
        foreach ($http_cookie_variables as $cookieName => $cookie) {
            if (array_key_exists($levelDomain, $cookie)) {
                $newCookies[$cookieName] = $cookie[$levelDomain];
            } else {
                $newCookies[$cookieName] = $cookie[1];
            }
        }
        $_COOKIE = $newCookies;
    }
    return true;
}

if (substr_count($_SERVER['HTTP_HOST'], '.') > 1) {
    skip_top_level_cookies();
}
Tagi: , , , , Brak komentarzy »

AddHandler vs AddType w .htaccess

Dodany: 26 września, 2012 | Kategoria: Apache

Trochę sie nad tym męczyłem, bo nie działało mi

AddType text/x-component .htc

w .htaccess

Tymczasem okazało się, że w Apache 2.x używa się

AddHandler text/x-component .htc

A wszędzie proponują to pierwsze…

Tagi: , , , Brak komentarzy »