Php ini как переопределить

Как изменить настройки конфигурации

Когда PHP используется как модуль Apache вы также можете менять настройки конфигурации, используя директивы в файлах конфигурации Apache (например, httpd.conf ) и файлах .htaccess . Для этого вам необходимы «AllowOverride Options» или «AllowOverride All» привилегии.

Есть несколько директив Apache, которые позволяют вам изменить конфигурацию PHP посредством файлов конфигурации Apache. Директивы для PHP_INI_ALL , PHP_INI_PERDIR , и PHP_INI_SYSTEM , вы можете увидеть в приложении Список директив php.ini

Устанавливает значение обозначенной директивы. Может использоваться только с директивами типа PHP_INI_ALL и PHP_INI_PERDIR Для очистки предыдущих установленных значений используйте значение none.

Замечание: Не используйте php_value для установки логических значений. Вместо этого необходимо использовать php_flag (см. ниже).

Используется для установки директивам логических значений. Может быть использовано только с директивами типа PHP_INI_ALL и PHP_INI_PERDIR .

php_admin_value name value

Устанавливает значение обозначенной директивы. Не может быть использовано в файлах .htaccess . Директивы любого типа, установленные с помощью php_admin_value не могут быть переопределены через .htaccess или ini_set() . Чтобы очистить предыдущее значение используйте значение none.

php_admin_flag name on|off

Используется для установки директивам логических значений. Не может быть использовано в файлах .htaccess . Директивы любого типа, установленные с помощью php_admin_flag не могут быть переопределены через .htaccess или ini_set() .

Пример #1 Пример конфигурации Apache

 php_value include_path ".:/usr/local/lib/php" php_admin_flag engine on php_value include_path ".:/usr/local/lib/php" php_admin_flag engine on 

PHP константы не доступны вне PHP. К примеру, в httpd.conf вы не можете использовать константы PHP такие как E_ALL или E_NOTICE чтобы установить директиву error_reporting, так как они не будут иметь значения и будут приравниваться к 0. Используйте вместо этого соответствующие значения типа bitmask (битовая маска). Эти константы могут быть использованы в php.ini

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

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

Другие интерфейсы в PHP

Независимо от того, как вы запускаете PHP, вы можете изменять некоторые значения во время выполнения ваших скриптов помощью ini_set() . Для более детальной информации смотрите документацию на странице функции ini_set() .

Если вам интересен полный список конфигурационных настроек вашей системы с текущими значениями, то вы можете запустить phpinfo() функцию, и получить результирующую страницу. Вы также можете получить доступ к значениям индивидуально сконфигурированных директив в процессе выполнения, используя ini_get() или get_cfg_var() .

Источник

Php ini как переопределить

Когда PHP используется как модуль Apache вы также можете менять настройки конфигурации, используя директивы в файлах конфигурации Apache (например, httpd.conf ) и файлах .htaccess . Для этого вам необходимы «AllowOverride Options» или «AllowOverride All» привилегии.

Есть несколько директив Apache, которые позволяют вам изменить конфигурацию PHP посредством файлов конфигурации Apache. С директивами PHP_INI_ALL , PHP_INI_PERDIR и PHP_INI_SYSTEM можно ознакомиться в приложении Список директив php.ini.

Устанавливает значение указанной директивы. Может использоваться только с директивами типа PHP_INI_ALL и PHP_INI_PERDIR . Для очистки предыдущих установленных значений используйте значение none .

Замечание: Не используйте php_value для установки логических значений. Вместо этого необходимо использовать php_flag (смотрите ниже).

Используется для установки директивам логических значений. Может быть использовано только с директивами типа PHP_INI_ALL и PHP_INI_PERDIR .

php_admin_value name value

Устанавливает значение указанной директивы. Не может быть использовано в файлах .htaccess . Директивы любого типа, установленные с помощью php_admin_value не могут быть переопределены через .htaccess или ini_set() . Чтобы очистить предыдущее значение используйте значение none .

php_admin_flag name on|off

Используется для установки директивам логических значений. Не может быть использовано в файлах .htaccess . Директивы любого типа, установленные с помощью php_admin_flag не могут быть переопределены через .htaccess или ini_set() .

Пример #1 Пример конфигурации Apache

 php_value include_path ".:/usr/local/lib/php" php_admin_flag engine on php_value include_path ".:/usr/local/lib/php" php_admin_flag engine on 

PHP-константы недоступны вне PHP. К примеру, в httpd.conf вы не можете использовать константы PHP такие как E_ALL или E_NOTICE , чтобы установить директиву error_reporting, так как они не будут иметь значения и будут приравниваться к 0. Используйте вместо этого соответствующие значения типа bitmask (битовая маска). Эти константы могут быть использованы в php.ini

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

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

Другие интерфейсы в PHP

Независимо от того, как вы запускаете PHP, вы можете изменять некоторые значения во время выполнения ваших скриптов c помощью ini_set() . Для более детальной информации смотрите документацию на странице функции ini_set() .

Если вам интересен полный список конфигурационных настроек вашей системы с текущими значениями, то вы можете запустить функцию phpinfo() и просмотреть результирующую страницу. Вы также можете получить доступ к значениям индивидуально сконфигурированных директив в процессе выполнения, используя ini_get() или get_cfg_var() .

Источник

Как переопределить параметры конфигурации PHP

настроить PHP

Настроить PHP легко. Вы можете изменить практически любой аспект интерпретатора в файле конфигурации php.ini, например, изменить обработку ошибок, увеличить использование памяти и т. Д.

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

К счастью, нет необходимости переходить на дорогой выделенный сервер. Два метода ниже позволяют вам переопределить настройки PHP в вашем приложении.

Директивы модуля Apache

Большинство интернет-провайдеров предоставляют хостинг веб-серверов Apache на платформах Linux или Unix. Надеемся, что они также предоставили привилегии «AllowOverride Options» или «AllowOverride All» в конфигурации Apache httpd.conf. Это позволяет вам создать файл .htaccess в корневой папке вашего приложения, переопределяя настройки Apache и PHP по умолчанию.

В .htaccess разрешены две PHP-директивы:

php_flag должен использоваться для значений вкл / выкл, тогда как php_value может использоваться для любых других. Например, следующий файл .htaccess отключит глобальные переменные, установит максимальный размер загружаемого файла 20 МБ и позволит PHP-сценариям работать в течение 10 минут (600 секунд):

 php_flag register_globals off php_value upload_max_filesize 20M php_value max_execution_time 600 

Однако решение не будет работать во всех установках Apache или других веб-серверах, таких как IIS.

PHP Runtime Configuration

Более переносимым, независимым от сервера решением является функция ini_set в PHP. – это позволяет вам изменять настройки в вашем приложении во время выполнения. Функция принимает два аргумента: ini_set ( flag-name , flag-value ) , например

Логические значения, числа и строки могут использоваться взаимозаменяемо – PHP попытается привести значение к соответствующему типу.

Доступны несколько связанных функций:

ini_get ( flag-name )
Возвращает значение конфигурации. Я бы порекомендовал проверить изменения вашей конфигурации и принять соответствующие меры. Не думайте, что ini_get () всегда будет работать.

ini_get_all ([ расширение ])
Возвращает все значения конфигурации в виде ассоциативного массива. Необязательный параметр расширения возвращает параметры, специфичные для этого расширения, например, «allow_url_fopen».

get_cfg_var ( flag-name )
Возвращает исходное значение конфигурации из php.ini (не любые переопределения, установленные в .htaccess или ini_set).

ini_restore ( флаг-имя )
Возвращает опцию конфигурации к ее первоначальному значению.

Скоро: как работать с незагруженными расширениями PHP .

Конфигурация PHP когда-либо вызывала у вас проблемы при переносе приложения на другой сервер?

Источник

Читайте также:  Target in html form submit
Оцените статью