2010-01-26 6 views
6

On suppose si je veux changer la valeur deQuelle est la différence entre php.ini et .htaccess?

php_value post_max_size 20M in .htaccess 

post_max_size 20M in php.ini 

deux fera la même opération. Quelle est la différence entre php.ini et .htaccess?

+0

Si vous travaillez sur un seul hôte, les différences sont mineures.Les fichiers existent dans deux emplacements différents pour les systèmes hébergeant de nombreux sites (par exemple, un hébergeur partagé), donc les options de configuration peuvent être configurées site par site sans donner aux utilisateurs l'autorisation d'un fichier qui affectera a) les autres utilisateurs b) ont des permissions dangereusement généreuses. – antik

Répondre

11

La configuration dans le php.ini est utilisé pour l'ensemble du serveur alors que la configuration dans un fichier .htaccess est utilisé que lorsqu'une demande est dans le répertoire ou sous-répertoire du fichier .htaccess est situé dans .

vous pouvez donc avoir une configuration globale ou par défaut dans votre php.ini et configurations spécifiques pour les répertoires individuels dans fichiers .htaccess. En outre, le fournisseur d'hébergement Web n'autorise souvent pas l'accès à la configuration php.ini ou à la configuration du serveur, mais autorise uniquement les fichiers .htaccess.

Mais notez le configuration modes chaque configuration PHP est liée à.

+0

+1 à droite. N'était-il pas possible d'avoir aussi php.ini par répertoire? Ou était-ce sur IIS seulement? –

1

Cela dépend de la façon dont PHP est installé sur votre serveur; si elle est installée en tant que module apache, alors vous utiliserez des fichiers .htaccess pour émettre des directives PHP car .htacess est lu et exécuté par Apache. Si vous exécutez PHP en tant que CGI, vous utiliserez un fichier php.ini, car tout ce qui est dans .htaccess n'affectera pas votre PHP.

Vous pouvez vérifier comment PHP est installé en créant un fichier php avec phpinfo(); Cela signifie uniquement

Cela ne concerne que les remplacements locaux pour un répertoire spécifique; Peu importe comment PHP est installé, il lit votre fichier php.ini principal.

2

Les valeurs de configuration placées dans PHP.ini sont pour l'ensemble du serveur, elles sont appliquées à tous les sites qui s'exécutent sur ce serveur. Où les valeurs de configuration mises en .htaccess sont pour des sites individuels.

+0

est là dans la perspective de la sécurité dont on est bon – Bharanikumar

+0

Avoir de mauvaises configurations dans PHP.ini personnes peuvent réellement avoir accès à votre fichier .htaccess. Et comme mentionné si vos configurations ne sont pas spécifiques au site, déclarez-les dans PHP.ini, si vous voulez qu'un site particulier ait des configurations particulières, définissez-les dans .htaccess. – Zaje

1

Pas une réponse à votre question, mais une friandise intéressante que je ne me connaissais pas, en utilisant PHP sur Windows, il est possible de définir des paramètres par répertoire dans le registre. De l'manual:

Modification de la configuration de PHP via le registre Windows

Lors de l'exécution PHP sur Windows, les valeurs de configuration peuvent être modifiés sur une base par répertoire en utilisant le registre de Windows. Les valeurs de configuration sont stockées dans la clé de registre HKLM \ SOFTWARE \ PHP \ Per Valeurs d'annuaire, dans les sous-clés correspondant aux noms de chemin. Par exemple, les valeurs de configuration du répertoire c: \ inetpub \ wwwroot seront stockées dans la clé HKLM \ SOFTWARE \ PHP \ Valeurs de répertoire \ c \ inetpub \ wwwroot. Les paramètres du répertoire sont actifs pour tout script exécuté à partir de ce répertoire ou de n'importe quel sous-répertoire. Les valeurs sous la clé doivent avoir le nom de la directive de configuration PHP et la valeur de la chaîne. Les constantes PHP dans les valeurs ne sont pas analysées. Cependant, seules les valeurs de configuration modifiables dans PHP_INI_USER peuvent être définies de cette façon, les valeurs PHP_INI_PERDIR ne le peuvent pas.

Questions connexes