Autor Zpráva
panterek
Profil
Zdravím,

chtěl jsem vyzkoušet podporu FastCGI, podařilo se mi ji úspěšně nainstalovat dle postupu:
http://failover.co.za/2012/01/29/setup-apache-mpm-worker-fastcgi-php-fpm-apc/

Nyní funkce phpinfo() vrací správně: Server API FPM/FastCGI

Problém ale vzniknul jinde...Příklad:

/projekty1/.htaccess
/projekty2/.htaccess
/projekty3/.htaccess

(+ další adresářová struktura uvnitř složek dle názvu projektů...tento .htaccess je tedy společný pro všechny podsložky v dané složce projekty1, projekty2 nebo projekty3 )

Mám řekněme tyto 3 složky, kde v každém z nich jsou definované globální proměnné pro connect do databáze..pro projekt1 je to např:

SetEnv PROJECT1_DBUSER user
SetEnv PROJECT1_DBPASSWORD password

V projektu pak můžu použít tuto globální proměnnou na jakoukoliv podsložku...

Po instalaci FPM dle návodu mi toto chování zmizelo..teď už to tyto proměnné nezná. Musel bych to do každého projektu dopsat ručně, což ztrácí význam..Uměl by někdo poradit, jak tomu pomoct, abych měl FastCGI a chování se vrátilo do normálu?

díky
Davex
Profil
Jak tyto proměnné v PHP čteš? Ze $_SERVER['PROJECT1_DBUSER'] by to mělo fungovat.
panterek
Profil
Přesně tak to funguje...dokud jsem nenainstaloval výše zmiňované FPM :)..Popravdě ani moc nevím, k čemu to vlastně je, chtěl jsem FastCGI, ale FPM je součástí...dle srovnání funkce phpinfo() jsem zjistil, že všechny skripty se řídí přes FPM...:

čili místo /etc/php5/apache2/php.ini se používá /etc/php5/fpm/php.ini ...a vůbec všechno jde přes skripty FPM. To má být nejspíš ten rozdíl mezi Apache2 handler a FastCGI. Jenže trochu jsem nepočítal s tím, že FPM nebude umět pracovat s htaccess...nebo minimálně nevím, kde to nastavit.
Davex
Profil
panterek:
PHP nepracuje s .htaccess, ale ty proměnné načte Apache a měl by je předat přes FastCGI rozhraní démonu PHP FPM. Také mám Apache worker + mod_fastcgi + PHP FPM v podobné konfiguraci a funguje to bez problémů.
panterek
Profil
A mohl bych tě poprosit o návod, podle kterého jsi to dělal? mod_fastcgi jsem nepoužil, čili už tady bude rozdíl...

Jinak pokud přímo do /etc/apache2/apache2.conf zadám tyto proměnné, tak to funguje..nefunguje jen z .htaccess. Čili .htaccess nefunguje vůbec..:(
Davex
Profil
panterek:
mod_fastcgi jsem nepoužil, čili už tady bude rozdíl...
V tom návodě se ale mod_fastcgi konfiguruje, aby Apache mohl komunikovat přes FastCGI rozhraní s démonem PHP FPM.

Čili .htaccess nefunguje vůbec..:(
Pokud máš zapnuté AllowOverride All, tak to nevypadá, že by na to mělo mít ještě vliv odlišné spouštění PHP.

Snad by mohlo záviset na umístění v konfiguračním souboru - jednoduše je ta konfigurace jinde než má být. V návodu autor píše, že přidal řádky do souboru /etc/apache2/httpd.conf. Pokud používáš Debian/Ubuntu, tak přemísti konfiguraci FastCGI (celou sekci
<IfModule mod_fastcgi.c>
 ... </IfModule>
z návodu) do nově vytvořeného souboru /etc/apache2/conf.d/php-fpm. Po restartu Apache by to mělo fungovat.
panterek
Profil
AllowOverride jsem povolený v default souboru ani neměl...ale i po povolení to nejde. Zkusil jsem dát tento příkaz také do toho nového souboru php-fpm (umístění jsem změnil, jak jsi navrhnul), je to přehlednější...ale pořád to nejede. Pořád FastCGI ano, rewrite ne :(

S tím mod_fastcgi jsem to myslel asi tak, že ještě existuje nějaký modul (v mods-available), který má v názvu přímo fastcgi, myslel jsem, že je to tento...U toho mého návodu stačilo povolit jen modul Actions..

A běží mi to na Ubuntu 12.04..
panterek
Profil
Tak nový poznatek...on .htaccess funguje...ale bere ho jen z /var/www ....nefachá to z těch mých nalinkovaných projektů..ta struktura vypadá takhle:

/projekty/.htaccess

/projekty/autopujcovna/www......
/projekty/barvy-laky/www....
/projekty/fotbal/www....
......
......

a ten .htaccess je tedy společný pro všechny níže vypsané projekty. A tento .htaccess to ignoruje.
panterek
Profil
Tak .htaccess funguje jak ve /var/www, tak v konrkétní složce projektu...tzn /projekty/autopujcovna/www/.htaccess ..nefunguje jen v nadřezené složce /projekty ...ale to jsem teda obešel, už mi to funguje...

díky

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: