2009-07-31 13 views
13

Apache können Sie php.ini Werte für virtuelle Hosts mit der php_value-Direktive setzen.Set php include_path von nginx

Hat nginx etwas Ähnliches? Gibt es eine andere Möglichkeit, den include_path pro Site festzulegen?

Antwort

24

Jetzt ist es möglich, auf diese Weise zu tun:

fastcgi_param PHP_VALUE "include_path=/my/include/path"; 

Weitere Informationen hier: http://bugs.php.net/bug.php?id=51595

Mit dieser Technik zum Festlegen von PHP-Werten habe ich verschiedene "error_log" -Positionen für mehrere virtuelle Hosts erfolgreich festgelegt.

Danke, PHP und NginX Jungs!

+0

Das ist genial! So viel besser! –

+0

Ab welcher PHP-Version? – ColinM

+0

Dies ist kein guter Weg zu gehen. Ich tat dies und änderte in einem vhost und es fügte diese Einstellungen global hinzu, völlig andere vhosts zu brechen. –

1

Sean, php_value und php_admin_value funktionieren nicht mit nginx. Dies ist eine Einschränkung von php-cgi und nicht nginx.

Sie können durch Starten mehrerer Instanzen von PHP dieses Problem umgehen und wie so in einer benutzerdefinierten php.ini vorbei:

php-cgi -c /path/to/php.ini 

Sie auch die Include-Pfad festlegen können explizit in Ihrem PHP-Code wie folgt:

$paths = array(
    PATH_PROJECT . 'lib/', 
    PATH_PROJECT . 'lib/Doctrine/lib', 
    PATH_PROJECT . 'application/doctrine/mappers/', 
    PATH_PROJECT . 'application/lib', 
    PATH_PROJECT . 'application/modules/', 
    PATH_PROJECT . 'lib/classes', 
    PATH_PROJECT . 'application/lib/reports/', 
    get_include_path() 
); 

set_include_path(implode(PATH_SEPARATOR, $paths)); 
unset($paths); 
+0

Danke! Ich fand auch diesen Link http://forum.slicehost.com/comments.php?DiscussionID=3087 - Einstellung es mit PHP selbst ist nicht machbar wegen der Art, wie das Projekt eingerichtet ist (kein Front-Controller). –

+0

Ich wechselte zu der neueren Antwort –