В чем разница между php.ini и .htaccess? - PullRequest
9 голосов
/ 26 января 2010

Предположим, если я хочу изменить значение

php_value post_max_size 20M in .htaccess

post_max_size 20M in php.ini

Оба будут выполнять одну и ту же операцию. Так в чем же разница между php.ini и .htaccess?

Ответы [ 5 ]

15 голосов
/ 26 января 2010

Конфигурация в php.ini используется для всего сервера, а конфигурация в файле .htaccess используется только тогда, когда запрос переходит в каталог или подкаталог .htaccess файл находится в.

Таким образом, вы можете иметь глобальную конфигурацию или конфигурацию по умолчанию в ваших php.ini и специальные конфигурации для отдельных каталогов в .htaccess файлах. Кроме того, провайдер веб-хостинга часто не разрешает доступ к php.ini или конфигурации сервера, а разрешает только .htaccess файлы.

Но обратите внимание на режимы конфигурации , с которыми связана каждая конфигурация PHP.

2 голосов
/ 26 января 2010

Значения конфигурации, помещенные в PHP.ini, предназначены для всего сервера, он применяется ко всем сайтам, работающим на этом сервере. Где значения конфигурации, указанные в .htaccess, предназначены для отдельных сайтов.

1 голос
/ 26 января 2010

Не ответ на ваш вопрос, но интересный лакомый кусочек, которого я сам не знал, при использовании PHP в Windows можно задавать настройки для каждого каталога в реестре. Из руководства :

Изменение конфигурации PHP через реестр Windows

При запуске PHP в Windows значения конфигурации можно изменять для каждого каталога в отдельности, используя реестр Windows. Значения конфигурации хранятся в разделе реестра HKLM \ SOFTWARE \ PHP \ Per Значения каталога, во вложенных ключах, соответствующих именам путей. Например, значения конфигурации для каталога c: \ inetpub \ wwwroot будут храниться в ключе HKLM \ SOFTWARE \ PHP \ Per Values ​​Values ​​\ c \ inetpub \ wwwroot. Настройки для каталога будут активны для любого скрипта, запущенного из этого каталога или любого его подкаталога. Значения под ключом должны иметь имя директивы конфигурации PHP и строковое значение. Константы PHP в значениях не анализируются. Однако только значения конфигурации, изменяемые в PHP_INI_USER, могут быть установлены таким образом, значения PHP_INI_PERDIR не могут.

1 голос
/ 26 января 2010

Это зависит от того, как PHP установлен на вашем сервере; если он установлен как модуль apache, то вы будете использовать файлы .htaccess для выдачи директив PHP, поскольку .htacess читается и выполняется Apache.

Если вы запускаете PHP как CGI, тогда вы будете использовать файл php.ini, поскольку все, что в .htaccess не повлияет на ваш PHP.

Вы можете проверить, как установлен PHP, создав php-файл с помощью phpinfo (); это в.

Это относится только к локальным переопределениям для определенного каталога; независимо от того, как установлен PHP, он читает ваш основной файл php.ini.

0 голосов
/ 02 ноября 2018

Apache - это HTTP-сервер. Он настроен с помощью файла .htaccess, размещенного в корне веб-сайта / Приложение означает, что каждое приложение имеет свой собственный файл .htaccess.

php.ini - это самый быстрый способ повлиять на функциональность PHP.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...