web-dev-qa-db-fra.com

Comment utiliser correctement le fichier `.user.ini` en PHP?

Dans mon répertoire de travail, j'ai deux fichiers: index.php et .user.ini:

.user.ini:

display_errors=on

; http://be2.php.net/manual/en/filter.configuration.php#ini.filter.default
;filter.default = "full_special_chars"

index.php:

<?php
//ini_set("display_errors", "on");

// Use `.user.ini` file:
// http://php.net/manual/en/configuration.file.per-user.php
echo "Setting for 'user_ini.filename': " . ini_get("user_ini.filename");
echo "\n\n";


// It takes up to five minutes, until `.user.ini` is re-read:
echo "Setting for 'user_ini.cache_ttl': " . ini_get("user_ini.cache_ttl");
echo "\n\n";

// http://php.net/manual/en/function.ini-get.php
echo "Setting for 'display_errors': " . ini_get("display_errors");
echo "\n\n";
echo "Setting for 'filter.default': " . ini_get("filter.default");
echo "\n\n";

// php -S localhost:8000
// http://localhost:8000/

Utilisation de ce qui précède .user.ini- fichier (dans mon répertoire de travail) J'attends le "Setting for 'display_errors': " ayant une valeur de on ou 1, mais c'est vide.

Comment modifier correctement les paramètres à l'aide de .user.ini-fichier?

fonctionnement php --ini résulte en

Configuration File (php.ini) Path: /etc/php5/cli
Loaded Configuration File:         /etc/php5/cli/php.ini
Scan for additional .ini files in: /etc/php5/cli/conf.d
Additional .ini files parsed:      /etc/php5/cli/conf.d/05-opcache.ini,
/etc/php5/cli/conf.d/10-pdo.ini,
/etc/php5/cli/conf.d/20-json.ini,
/etc/php5/cli/conf.d/20-readline.ini

qui ne contient pas mon .user.ini-fichier.

Ajout explicite du .user.ini- fichier fonctionne:

php --php-ini .user.ini index.php

mais j'aimerais qu'il soit lu automatiquement lors de l'exécution du script à partir d'un dossier donné.

11
Edward

Dans le documentation il dit:

Ces fichiers sont traités uniquement par le CGI/FastCGI SAPI

et

Si vous utilisez Apache, utilisez .htaccess fichiers pour le même effet.

Donc, si vous exécutez PHP en tant que module Apache, à partir de la ligne de commande ou en utilisant le serveur intégré, le .user.ini- les fichiers ne sont pas traités.

Pour connaître votre API de serveur, générez simplement un script PHP avec le contenu suivant et appelez-le dans votre navigateur Web:

<? phpinfo();
16
R_User

Selon http://php.net/manual/en/configuration.file.per-user.php

Vérifier user_ini.filename dans votre principale php.ini pour vous assurer qu'il n'est pas vide et qu'il est bien analysé. Si sa valeur est vide alors PHP ne scanne pas du tout.

Voir également la valeur de user_ini.cache_ttl

Veuillez jeter un œil à

manuel php.net

Consultez également cette question Chargement d'un fichier .user.ini PHP conf fichier en utilisant le PHP 5.4 serveur interne?

2
Alex Andrei