Question

J'essaie d'utiliser la fonction intégrée de PHP get_browser (). J'ai suivi les instructions dans Ce message utile, mais je reçois toujours l'erreur

La directive BrowsCap INI n'est pas définie.

J'ai téléchargé le fichier php_browscap.ini et je l'ai déplacé dans le même répertoire que mon fichier .htaccess, afin que son emplacement soit Accueil / Nom hôte / sous-domaine / php_browscap.ini Puisque je n'ai pas accès à mon php.ini Fichier, j'essaie de modifier la propriété BrowsCap à l'aide de .htaccess. C'est ce que j'ai entré:

php_value browscap home/hostname/subdomain/php_browscap.ini

Je ne sais pas si c'est important, mais en dessous, il y a un code moteur de réécriture.

En tant que prévention, je reçois toujours l'erreur ci-dessus. Qu'ai-je fait de mal?

Merci.

Était-ce utile?

La solution

Faites un phpinfo () pour comprendre votre configuration d'exécution PHP. Si votre système est configuré comme "CGI / FASTCGI", il exécute probablement SUPHP en tant qu'initiateur PHP. Dans ce cas, vous pouvez spécifier votre propre fichier php.ini. Par défaut, SUPHP semble dans le répertoire de script, mais vous pouvez remplacer cela par la directive suivante dans votre fichier .htaccess:

suPHP_ConfigPath (expects a path name)

Cette option indique à MOD_SUPHP quel chemin de passage à passer au PHP-Interpreter (en définissant la variable d'environnement PHPRC). Fais NE PAS Reportez-vous à un fichier mais au répertoire dans lequel le fichier résiste.

EG: Si vous souhaitez utiliser "/path/to/server/config/php.ini", utilisez "Suphp_config / path / to / server / config".

Si vous n'utilisez pas cette option, PHP utilisera son chemin compilé dans le chemin par défaut. Vous devez également utiliser un chemin correctement formé dans votre directive Browsercap, par exemple

browscap="/home/hostname/subdomain/php_browscap.ini"

(Notez le leader /)

Addenda

Je viens de vérifier et le plan d'hébergement partagé DreamHost utilise SUEXEC. Avec SUEXEC, vous pouvez normalement remplacer le patch php.ini en copiant le système php.ini (phpinfo () vous indique où trouver ceci) dans un répertoire privé, disons _privé Ainsi que le Browsercap.ini a ajouté

SetEnv PHPRC /home/hostname/_private

à votre fichier .htaccess. Si cela ne fonctionne pas, le problème est spécifique à la configuration de Dreamhost de Dreamhost et vous devez demander ce Q sur http://discussion.dreamhost.com/

Autres conseils

La browscap La valeur PHP a un mode modifiable de PHP_INI_SYSTEM ce qui signifie qu'il ne peut être défini que dans php.ini ou httpd.conf (pas .htaccess).

Il y a deux problèmes potentiels ici.

  1. Peut-être que votre hôte ne vous permet pas de remplacer les paramètres INI dans le fichier .htaccess.
  2. Peut-être que BrowsCap n'aime pas le chemin que vous avez fourni. Essayer:

    php_value browscap /home/hostname/subdomain/php_browscap.ini
    

    Et assurez-vous que les autorisations sur ce fichier permettent à l'utilisateur Web de le lire.

Si vous êtes sous un hébergement partagé et que vous n'avez pas accès au système PHP.ini, vous pouvez utiliser le remplacement autonome suivant de l'implémentation native "get_browser ()" de PHP.

https://github.com/garetjax/phpbrowscap

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top