Php flag engine off

Php flag engine off

When using PHP as an Apache module, you can also change the configuration settings using directives in Apache configuration files (e.g. httpd.conf ) and .htaccess files. You will need «AllowOverride Options» or «AllowOverride All» privileges to do so.

There are several Apache directives that allow you to change the PHP configuration from within the Apache configuration files. For a listing of which directives are PHP_INI_ALL , PHP_INI_PERDIR , or PHP_INI_SYSTEM , have a look at the List of php.ini directives appendix.

Sets the value of the specified directive. Can be used only with PHP_INI_ALL and PHP_INI_PERDIR type directives. To clear a previously set value use none as the value.

Note: Don’t use php_value to set boolean values. php_flag (see below) should be used instead.

Used to set a boolean configuration directive. Can be used only with PHP_INI_ALL and PHP_INI_PERDIR type directives.

php_admin_value name value

Sets the value of the specified directive. This can not be used in .htaccess files. Any directive type set with php_admin_value can not be overridden by .htaccess or ini_set() . To clear a previously set value use none as the value.

php_admin_flag name on|off

Used to set a boolean configuration directive. This can not be used in .htaccess files. Any directive type set with php_admin_flag can not be overridden by .htaccess or ini_set() .

Example #1 Apache configuration example

 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 constants do not exist outside of PHP. For example, in httpd.conf you can not use PHP constants such as E_ALL or E_NOTICE to set the error_reporting directive as they will have no meaning and will evaluate to 0. Use the associated bitmask values instead. These constants can be used in php.ini

Changing PHP configuration via the Windows registry

When running PHP on Windows, the configuration values can be modified on a per-directory basis using the Windows registry. The configuration values are stored in the registry key HKLM\SOFTWARE\PHP\Per Directory Values , in the sub-keys corresponding to the path names. For example, configuration values for the directory c:\inetpub\wwwroot would be stored in the key HKLM\SOFTWARE\PHP\Per Directory Values\c\inetpub\wwwroot . The settings for the directory would be active for any script running from this directory or any subdirectory of it. The values under the key should have the name of the PHP configuration directive and the string value. PHP constants in the values are not parsed. However, only configuration values changeable in PHP_INI_USER can be set this way, PHP_INI_PERDIR values can not, because these configuration values are re-read for each request.

Other interfaces to PHP

Regardless of how you run PHP, you can change certain values at runtime of your scripts through ini_set() . See the documentation on the ini_set() page for more information.

If you are interested in a complete list of configuration settings on your system with their current values, you can execute the phpinfo() function, and review the resulting page. You can also access the values of individual configuration directives at runtime using ini_get() or get_cfg_var() .

Источник

Настройка во время выполнения

Поведение модуля Apache PHP зависит от настроек в php.ini . Настройки конфигурации из php.ini могут быть переопределены через настройки флага php_flag в конфигурационном файле сервера или локальном файле .htaccess .

Пример #1 Отключение парсера PHP для директории при помощи .htaccess

Настройки конфигурации Apache

Имя По умолчанию Меняемо Список изменений
engine «1» PHP_INI_ALL Доступно начиная с версии PHP 4.0.5.
child_terminate «0» PHP_INI_ALL Доступно начиная с версии PHP 4.0.5.
last_modified «0» PHP_INI_ALL Доступно начиная с версии PHP 4.0.5.
xbithack «0» PHP_INI_ALL Доступно начиная с версии PHP 4.0.5.

Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

Включает или выключает интерпретатор PHP. Эта директива в действительности очень полезна в модуле Apache PHP. Она используется сайтами, которым необходимо разрешить или запретить интерпретатор PHP на основе директорий или виртуальных хостов. Устанавливая engine off по необходимости в файле httpd.conf , можно разрешить или запретить интерпретатор PHP.

Эта настройка управляет тем, могут ли скрипты PHP требовать окончания дочерних процессов по завершении запроса. Смотрите также apache_child_terminate() .

Посылает скриптам PHP дату модификации как заголовок Last-Modified для этого запроса.

Исполнение файлов с битом запускаемого как PHP, независимо от расширения.

Источник

Php flag engine off

Поведение модуля Apache PHP зависит от настроек в php.ini . Настройки конфигурации из php.ini могут быть переопределены через настройки флага php_flag в конфигурационном файле сервера или локальном файле .htaccess .

Пример #1 Отключение парсера PHP для директории при помощи .htaccess

Настройки конфигурации Apache

Имя По умолчанию Место изменения Список изменений
engine «1» PHP_INI_ALL
child_terminate «0» PHP_INI_ALL
last_modified «0» PHP_INI_ALL
xbithack «0» PHP_INI_ALL

Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

Включает или выключает интерпретатор PHP. Эта директива в действительности очень полезна в модуле Apache PHP. Она используется сайтами, которым необходимо разрешить или запретить интерпретатор PHP на основе директорий или виртуальных хостов. Устанавливая engine off по необходимости в файле httpd.conf , можно разрешить или запретить интерпретатор PHP.

Эта настройка управляет тем, могут ли скрипты PHP требовать окончания дочерних процессов по завершении запроса. Смотрите также apache_child_terminate() .

Посылает скриптам PHP дату модификации как заголовок Last-Modified для этого запроса.

Исполнение файлов с битом запускаемого как PHP, независимо от расширения.

User Contributed Notes

Источник

Disable PHP in a directory with Apache .htaccess

If you have a directory which users can upload files into it’s a good idea for security reasons to disable server-side parsing of scripts such as PHP. This post shows a couple of options using Apache’s .htaccess files.

RemoveHandler and RemoveType

The handlers for PHP are added using AddType in the Apache configuration, and should be able to be removed in a .htaccess file like so (adding whatever additional extensions you need):

RemoveHandler .php .phtml .php3 RemoveType .php .phtml .php3

However this doesn’t seem to work for me. I don’t know why. If anyone has any ideas please leave your thoughts in the comments section below.

php_flag engine off

Another way to disable PHP in a .htaccess file is by adding a line like this:

This method did work for me when I tested it.

I assume this will still invoke the PHP handler which will then not parse the script when it knows what various PHP settings are enabled and disabled. Note that when PHP is disabled then the end user will get the source code of the PHP script in their browser.

To be on the safe side

Just to be certain that PHP isn’t parsed in the selected directory, and given RemoveHandler and RemoveType didn’t seem to work for me, it may be best to add all three lines like so:

RemoveHandler .php .phtml .php3 RemoveType .php .phtml .php3 php_flag engine off

Источник

Читайте также:  Convert hashmap to string java
Оцените статью