2012-02-13 23 views
5

È possibile avere un solo file php.ini, ad esempio nel webroot (o anche al di fuori di esso per impedire l'accesso alle persone tramite GET), e indicare a PHP rapidamente e facilmente dove si trova è?Impostare il percorso su php.ini

So che è possibile impostare le direttive php.ini in .htaccess, ma è possibile definire un file php.ini specifico da utilizzare?

risposta

9

Aggiungi questo alla configurazione del server ...

<VirtualHost 1.2.3.4:80> 
PHPINIDir /path/to/new/php_ini 
</VirtualHost> 

Assicuratevi di includere solo il percorso della directory, non l'intero percorso del file.

Quindi riavviare Apache.

Verificare che funzionasse con phpinfo().

+0

Hmm ... Funzionerebbe, ma non ho accesso a quella configurazione del server. –

+0

@Kolink Se non si ha accesso a ciò, consultare l'host. Potrebbero aver già impostato qualcosa. – alex

+0

Ok, grazie. Lo farò. :) –

3

Dai un'occhiata alla sezione .user.ini dei documenti php.

Dal PHP 5.3.0, PHP include il supporto per i file INI in stile .htaccess su una base per directory.

Ma accanto alla soluzione .unser.ini è possibile inserire un ulteriore file ini nella directory "file .ini aggiuntivi analizzati". Qui puoi usare un singolo file ini per sovrascrivere tutte le altre impostazioni. Chiamalo con zzz all'inizio e alla fine verrà analizzato. Questo è anche facile per il tuo hoster da distribuire senza distruggere le sue impostazioni.

+1

Ti sei perso per citare una parte molto importante: _Since PHP 5.3.0, PHP include il supporto per i file di configurazione INI su una base per directory. ** Questi file vengono elaborati solo da CGI/FastCGI SAPI ** _ – lucaferrario

0

Kolink, ho il sospetto che tu sia su un servizio di hosting condiviso, nel qual caso il tuo host potrebbe utilizzare qualcosa chiamato suPHP. In questo caso, come lei descrive, la direttiva PHPINIDir non funziona, nel qual caso esiste una direttiva suPHP_ConfigPath.

In termini di accesso, ho un mod_rewrite standard nella mia DOCROOT/.htaccess:

RewriteEngine On 
RewriteBase /
# if a forbidden directory or file name (starting with a . or /) then raise 404 Fatal 
RewriteRule (^|/)[_.] -   [F] 

Quello che fa è vieta qualsiasi richiesta di qualsiasi nome di file o una directory prefisso . o _. Ho un DOCROOT/_private dove tengo questa roba per me:

suPHP_ConfigPath DOCROOT/_private 

dove sarà necessario sostituire docroot dalla vostra impostazione locale sul servizio. Cerca DOCUMENT_ROOT in un elenco phpinfo().

+0

In realtà, in questo caso sono su un VDS. Ad ogni modo, suPHP_ConfigPath è stata la risposta (ho chiesto l'host al riguardo). –

+0

? VDS? non è un acronimo che ho incontrato. Se intendi VPS, perché mai l'hai configurato per suPHP? L'unico motivo logico per l'utilizzo di suPHP è di abilitare il controllo degli accessi basato su UID per mantenere la separazione tra gli account cohosted. – TerryE

+0

Virtual Dedicated Server. Ad essere onesti, non mi interessa come funziona finché funziona e fa quello che gli dico di fare. –

Problemi correlati