Modifica php.ini usando htaccess su un server
Domanda
Sto cercando di usare la funzione integrata di PHP get_browser (). Ho seguito le istruzioni in questo post utile, ma sto ancora ricevendo l'errore
Direttiva INI Browscap non impostata.
Ho scaricato il file php_browscap.ini e l'ho spostato nella stessa directory del mio file .htaccess, in modo che la sua posizione sia home/hostname/subdomin/php_browscap.ini Dal momento che non ho accesso al mio php.ini File, sto provando a modificare la proprietà BrowsCap usando .htaccess. Questo è quello che ho inserito:
php_value browscap home/hostname/subdomain/php_browscap.ini
Non so se sia importante, ma sotto che c'è un codice motore di riscrittura.
Come indicato, sto ancora ricevendo l'errore sopra. Cos'ho fatto di sbagliato?
Grazie.
Soluzione
Fai un phpinfo () per comprendere la configurazione di runtime PHP. Se il sistema è configurato come "CGI/FastCGI", probabilmente sta eseguendo SUPHP come iniziatore PHP. In questo caso puoi specificare il tuo file Php.ini. Per impostazione predefinita SUPHP guarda nella directory dello script ma è possibile prevalere con la seguente direttiva nel tuo file .htaccess:
suPHP_ConfigPath (expects a path name)
Questa opzione indica a Mod_suPHP quale percorso trasmette al Php-Interpreter (impostando la variabile di ambiente PHPRC). Fare NON Fare riferimento a un file ma alla directory il file resiste.
EG: se si desidera utilizzare "/path/to/server/config/php.ini", utilizzare "suphp_config/percorso/to/server/config".
Se non si utilizza questa opzione, PHP utilizzerà il suo percorso compilato.Inoltre è necessario utilizzare un percorso correttamente formato nella direttiva browsercap, ad esempio
browscap="/home/hostname/subdomain/php_browscap.ini"
(Nota il principale /)
Addendum
Ho appena controllato e il piano di hosting condiviso Dreamhost utilizza Suexec. Con Suexec puoi normalmente sovrascrivere la patch php.ini copiando il sistema php.ini (phpinfo () ti dice dove trovarlo) in una directory privata, diciamo _privato così come il browsercap.ini quindi aggiungendo
SetEnv PHPRC /home/hostname/_private
al tuo file .htaccess. Se questo non funziona, il problema è specifico per la configurazione Suexec di Dreamhost e devi chiedere a questa Q http://discussion.dreamhost.com/
Altri suggerimenti
Il browscap
Il valore PHP ha una modalità mutevole di PHP_INI_SYSTEM
Significa che può essere impostato solo in php.ini o httpd.conf (non .htaccess).
Ci sono due potenziali problemi qui.
- Forse il tuo host non ti consente di sovrascrivere le impostazioni INI nel file .htaccess.
Forse a Browscap non piace il percorso che hai fornito. Provare:
php_value browscap /home/hostname/subdomain/php_browscap.ini
E assicurarsi che le autorizzazioni su quel file consentano all'utente Web di leggerlo.
Se sei su un hosting condiviso e non hai accesso al sistema PHP.ini, è possibile utilizzare la seguente sostituzione autonoma dell'implementazione nativa "get_browser ()" nativa di PHP.