Установка и настройка PHP. Средства для работы с.ini файлами веб-приложений


Если спросить веб-программиста, какой из всех файлов дистрибутива PHP является самым главным, многие могут ответить, что сам интерпретатор, библиотеки, расширения и т. д. Нет, самый важный файл — это php.ini: небольшой текстовый файлик, в котором содержатся все настройки РНР (директивы), конфигурации модулей расширения и переменные среды. Через файл конфигурации можно настроить РНР на максимальное быстродействие, отключить потенциально опасные функции и модули, ну и, конечно, при неудачной настройке нарушить работу всей системы (нет, не всего сервера, максимум веб-сервера и РНР).

Но значение системных переменных можно установить не только через php.ini, но и другии методами, правда, с ограничениями. Для понимания этого следует вкратце рассмотреть механизм обработки конфигурационных файлов средой РНР.

Во первых, в самом простом случае, когда РНР работает как CGI-приложение, файл перечитывается каждый раз при запуске интерпретатора. Если же он подключается как SAPI-модуль к серверу Apache, то тогда путь к файлу определяется директивой PHPIniDir конфигурации сервера.

Если после этого конфигурационный файл не найден, его поиски продолжаются в следующих местах: для Win32-сервера проверяется ключ в реестре HKEY_LOCAL_MACHINE\SOFTWARE\PHP\IniFilePath, далее файл ищется в текущем каталоге, откуда запущен интерпретатор (php-cli.exe), в корневой директории веб-сервера (для SAPI-модуля) или в корневой директории РНР. Потом поиск продолжается в системных директориях (C:\WINDOWS, C:\WINXP, C:\SYSTEM32) и в директории, заданной на этапе сборки РНР опцией "--with-config-file-path".

Кроме этого, сами опции могут указыватся в разных файлах, к примеру в файлах конфигурации сервера Apache (httpd.conf), в файлах.htaccess (для отдельных директорий сайта), в отдельных файлах php.ini, помещаемых в директории со скриптами, и даже в самих РНР-скриптах через вызов функции ini_set(). В зависимости от того, где и каким образом устанавливается переменная, она будет иметь различный эффект – для текущего скрипта, для отдельного сайта или директории, для всего сервера до перезагрузки.

Для чего такое разнообразие? Очень просто. К примеру, в типичной ситуации, когда ваш сайт располагается на виртуальном хостинге, вы лишены возможности перенастроить конфигурацию РНР для себя, в то же время для нормальной работы скриптов вам необходимо установить некоторые переменные, отличные от установок хостера. Тогда вы просто устанавливаете в директориях своего сайта файл php.ini, в котором и прописываете все нужные вам настроки. Если же необходимо изменить всего одну-две переменные, то это можно сделать через вызов функции ini_set() в начале скрипта. Но обратите внимание на один момент. Так как ini_set() является РНР-функцией и, соответственно, исполняется уже после инициализации интерпретатора, то некоторые установки будут проигнорированы, так как влияют на работу только в начальном этапе запуска РНР. Не переживайте, такие параметры, как и ошибочные (синтаксически) неверные, будут просто проигнорированы и не приведут к каким-либо последствиям в работе.

Приведем практический пример. Есть такая директива, error_reporting , которая указывает на степень детализации вывода сообщений про ошибки в ходе интерпретации РНР-скрипта. Ее можно настроить на вывод как всех сообщений, так и просто предупреждений, не влияющих на работу программы. Вы можете для себя перенастроить ее, к примеру, разрешая показывать только критические для выполнения ошибки. В таком случае переменная должна содержать значение "E_COMPILE_ERROR|E_ERROR|E_CORE_ERROR" – то есть выводить ошибки компилятора, критические ошибки среды и ядра. Установить переменную можно с помощью вызова функции ini_set(), которая принимает два строковых параметра: первая строка описывает название опции, а вторая – новое значение. В нашем случае это: ini_set("error_reporting", "E_COMPILE_ERROR|E_ERROR|E_CORE_ERROR"); . Вот и все, в результате РНР будет при каждом запуске вашего скрипта использовать новое значение переменной error_reporting, для всех остальных же пользователей останется значение по умолчанию, описанное в php.ini.

Прежде чем замещать переменную среды, желательно проверить ее текущее значение – это делается с помощью вызова функции ini_get() , которая принимает один параметр, строку с именем переменной, и возвращает строку с ее текущим значением. В нашем примере код echo ini_get("error_reporting"); вернет E_COMPILE_ERROR|E_ERROR|E_CORE_ERROR, то есть только что установленное значение, в то же время, если вызвать ini_get() до установки нового значения, мы получим что-то вроде E_ALL & ~E_NOTICE (на разных хостингах может отличатся) – выводить сообщения про все ошибки, исключая предупреждения.

Но, перед тем как устанавливать переменные, желательно ориентироватся в структуре файла php.ini и в доступных параметрах. На эту тему мало информации, кроме комментариев в самом php.ini, так что мы постараемся подробно описать самые важные переменные, с которыми вам предстоит иметь дело.

Общая структура файла php.ini очень простая. Делится весь файл на секции, каждая секция группирует переменные, относящиеся к какому-либо модулю или всей среде РНР в целом. В каждой секции переменные (директивы) задаются в виде имя_переменной=значение , где значение может быть как произвольной строкой (если она содержит пробелы, то заключается в двойные кавычки), так и значением Оn/Оff (тогда такую переменную называют еще флагом). Переменные задаются по одной в строке, а все строки, которые начинаются со знака "; ", воспринимаются как комментарии и не обрабатываются. Помните, что имена директив чувствительны к регистру и в основном пишутся строчными буквами.

Название секции заключается в квадратные скобки. К примеру, первой идет секция общих установок среды – . Секция модуля ODBC для связи с базами данных имеет название , настройки доступа к MySQL производятся в секции , а новый интерфейс MySQLI настраивается в , параметры сессий указываются в секции . Каждая секция, исключая общесистемную, соответствует какому-либо расширению, если оно, конечно, нуждается в настройке.

Пока начнем с директив, описываемых в секции . Мы будем рассматривать конфигурацию РНР версии 5.0.х, так что, если у вас более ранняя версия, некоторые директивы могут отсутствовать.

engine = — флаг, разрешающий работу РНР на сервере Apache. По умолчанию она всегда установлена в значение On.

zend.ze1_compatibility_mode = — директива появилась в РНР 5.0 и позволяет переключиться в режим совместимости со скриптами, написанными для предыдущих версий. Если вы настраиваете РНР под себя и вам не надо поддерживать совместимость, установите флаг в Off, если же РНР настраивается для общего сервера, то логично позволить пользователям запускать все скрипты, написанные с учетом ядра Zend I (PHP 4.х).

short_open_tag = — РНР умеет распознавать несколько различных тегов начала и конца блока программы. Этот флаг разрешает применять короткую запись вида .

precision = — указывает, сколько значащих цифр должен учитывать РНР при операции с дробными числами. По умолчанию используется 12 знаков, чего вполне достаточно.

output_buffering = — разрешает буферизацию вывода для всех страниц или устанавливает размер буфера в байтах (если значение – целое число, к примеру 4096, устанавливает размер буфера в 4 Кб). Применяется для временной буферизации HTTP-заголовков и cookie перед отсылкой клиенту остального контента.

output_handler = — позволяет указать функцию для перенаправления всего вывода страницы. Одновременно, если задана функция, включается директива output_buffering. Можно использовать для перекодировки генерируемого контента, сжатия, кеширования или другой пост-обработки. Если директива не используется, присвойте ей пустое значение (пустую строку или значение none).

safe_mode = — переключает РНР в специальный защищенный режим работы, который имеет повышенную безопасность, но и накладывает ограничения на программирование. Может быть очень полезно при создании систем с повышенной защищенностью. С этой директивой связано еще несколько других с названием, начинающимся с safe_mode_, задающих конкретные ограничения и дополнительные проверки. По умолчанию директива имеет значение Off.

disable_functions = — задает перечень функций, использование которых запрещено в пользовательских скриптах. Может применяться для дополнительного обеспечения безопасности, блокируя потенциально опасные функции (например, системные вызовы). Для задания функций перечислите их в двойных кавычках через запятую. Например, «exec,php_info,file,ini_set» запрещает вызовы функций exec(), php_info(), file(), ini_set(). Но устанавливать эту директиву можно только до инициализации РНР, то есть в файле php.ini или httpd.conf.

max_execution_time = — указывает время в секундах, в течение которого можно исполнять один скрипт. При превышении лимита исполнение скрипта принудительно завершается с ошибкой. Это может пригодиться для принудительной остановки неправильно написанных программ, которые будут мешать нормальной работе сервера. В то же время не следует устанавливать слишком маленькое время, так как в случае работы с удаленными хостами, базами данных или файлами отведенное время может истечь до того, как скрипт отработает.

max_input_time = [-1/целое число] — указывает время в секундах, в течение которого скрипт может выводить данные. Желательно не устанавливать его меньше директивы max_execution_time. Если скрипт интенсивно выводит данные, к примеру в цикле что-то обрабатывает и выводит большие фрагменты текста, то директиве следует присваивать большие значения или же не устанавливать совсем – тогда единственным ограничением будет общее время исполнения скрипта. Директиву можно установить только через php.ini.

memory_limit = — устанавливает размер оперативной памяти, выделяемой для одного скрипта. Префикс М указывает, что размер указывается в мегабайтах, а К – Кб. Для публичного сервера (к примеру, виртуального хостинга) можно установить меньшее значение, но, если необходимо производить интенсивные вычисления или планируется запуск серьезных коммерческих программ, значение можно увеличить (зависит от размера RAM на сервере).

display_errors = — разрешает выводить пользователю сообщения про ошибки среды исполнения и предуприждения РНР. Я бы рекомендовал всегда включать эту директиву не только в режиме отладки, но и в реальной работе, а более точно настраивать детализацию вывода при помощи опции error_reporting.

error_reporting = [набор предопределенных констант] — указывает желательную детализацию сообщений про ошибки и сбои в работе интерпретатора.

Константы могут обьединяться при помощи битовых операторов сложения. Наиболее важные константы: E_ALL (все ошибки и предупреждения), E_COMPILE_ERROR (фатальные ошибки компилятора), E_CORE_ERROR (фатальные ошибки при инициализации ядра РНР), E_ERROR (фатальные ошибки этапа выполнения), E_PARSE (ошибки синтаксиса), E_NOTICE и E_WARNING (предупреждения на этапе выполнения, не критичные для работы скрипта).

Для отладки скрипта желательно установить максимальную детализацию сообщений, например error_reporting = E_ALL , в реальной работе желательно исключить предупреждения, не влияющие на работу, например error_reporting = E_COMPILE_ERROR|E_CORE_ERROR|E_ERROR покажет только фатальные ошибки (другой вариант: error_reporting = E_ALL & ~E_NOTICE & ~ E_WARNING ).


Прямая ссылка: php-5.3.10-Win32-VC9-x86.zip
Заодно скачайте сразу и документацию на русском языке в формате.chm, она вам понадобится при изучении и работе: php_enhanced_ru.chm

Распакуйте архив в желаемый каталог (изначально предлагается «C:\php»). Откройте конфигурационный файл содержащий рекомендуемые настройки — «php.ini-development» (находящийся в корне дистрибутива), переименуйте его в php.ini и произведите следующие изменения.

Редакция php.ini:

  1. Найдите строку:
    post_max_size = 8M
    Увеличьте до 16 Мбайт максимальный размер данных принимаемых методом POST, изменив ее на:
    post_max_size = 16M
  2. Найдите строку:
    ;include_path = «.;c:\php\includes»
    Раскомментируйте ее, убрав перед строкой символ точки с запятой.
    (Внимание исключение! Обратные косые черты при указании пути):
    include_path = «.;c:\php\includes»
    Создайте пустой каталог «C:\php\includes», для хранения подключаемых классов.
  3. Найдите строку:
    extension_dir = «./»
    Установите значением данной директивы путь к папке с расширениями:
    extension_dir = «C:/php/ext»
  4. Найдите строку:
    ;upload_tmp_dir =
    Раскомментируйте ее и укажите в значении следующий путь:
    upload_tmp_dir = «C:/php/upload»
    Создайте пустую папку «C:\php\upload», для хранения временных файлов загружаемых через HTTP.
  5. Найдите строку:
    upload_max_filesize = 2M
    Увеличьте максимально допустимый размер загружаемых файлов до 16 Мбайт:
    upload_max_filesize = 16M
  6. Подключите, расскомментировав, данные библиотеки расширений:
    extension=php_bz2.dll
    extension=php_curl.dll
    extension=php_gd2.dll
    extension=php_mbstring.dll
    extension=php_mysql.dll
    extension=php_mysqli.dll
  7. Найдите строку:
    ;date.timezone =
    Раскомментируйте и установите значением часовой пояс вашего местоположения (список часовых поясов можно найти в документации):
    date.timezone = «Europe/Moscow»
  8. Найдите строку:
    ;session.save_path = «/tmp»
    Раскомментируйте и установите значением данной директивы такой путь:
    session.save_path = «C:/php/tmp»
    Создайте пустую папку «C:\php\tmp» для хранения временных файлов сессий.

Сохраните изменения и закройте файл php.ini.

Далее необходимо добавить каталог с установленным PHP интерпретатором в PATH операционной системы. Для чего пройдите по пути «Start» («Пуск») -> «Control Panel» («Панель управления») -> «System» («Система»), откройте вкладку «Advanced» («Дополнительно»), нажмите кнопку «Environment Variables» («Переменные среды»), в разделе «System Variables» («Системные переменные») сделайте двойной щелчок на строке «Path», добавьте в поле «Variable Value» («Значение переменной»), к тому что там уже существует, путь к каталогу с установленным PHP, например, «C:\php» (без кавычек). Обратите внимание на то что символ точки с запятой разделяет пути. Чтобы внесенные изменения вступили в силу, перезагрузите операционную систему.

Пример строки Path:
%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\php;C:\Program Files\MySQL\MySQL Server 5.5\bin

Установка и настройка PHP интерпретатора – завершена.

Описание подключаемых библиотек:

php_bz2.dll – С помощью данного расширения PHP сможет создавать и распаковывать архивы в формате bzip2.

php_curl.dll – Очень важная и нужная библиотека, позволяющая соединяться и работать с серверами, с помощью огромного количества интернет-протоколов.

php_gd2.dll – Ещё одна незаменимая библиотека, позволяющая работать с графикой. Вы думали на PHP можно только HTML странички генерировать? А вот и нет! С помощью PHP можно почти всё, в том числе и рисовать.

php_mbstring.dll – Библиотека содержит функции для работы с много-байтными кодировками, к которым относятся кодировки восточных языков (японский, китайский, корейский), Юникод (UTF-8) и другие.

php_mysql.dll – Имя библиотеки говорит само за себя — она необходима для работы с сервером MySQL.

php_mysqli.dll Данная библиотека является расширением предыдущей и содержит дополнительные функции PHP для работы с сервером MySQL версии 4.1.3 и выше.

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

Оригинал статьи: http://php-myadmin.ru/learning/instrument-php.html

php имеет множество настроек, описанных в файле php.ini. Этот файл должен быть доступен в системных путях поиска для того, чтобы php мог использовать эти настройки. Обычно для этого достаточно хранить этот файл в том же каталоге, где расположен сам php, но если php сконфигурирован для работы в качестве модуля web-сервера, то этот файл необходимо скопировать в каталог, явно доступный в системных путях поиска. См. раздел инсталляции php для получения более подробных инструкций.

Здесь рассматриваются основные параметры php, разделенные по категориям. Список параметров в основном соответствует версии php 4.0.6, однако здесь рассматриваются только основные параметры. Полный список параметров с комментариями по каждому из них можно увидеть непосредственно в php.ini, а также в соответствующем разделе php manual.

Значения параметров, имеющих варианты "да/нет" могут быть следующими:

ДА - 1, on, true or yes
НЕТ - 0, off, false or no

Short_open_tag

Включение поддержки сокращенного варианта php тегов. Если эта опция отключена, то php код будет распознаваться только внутри тегов. Если включена - то разрешено использование тегов. Хорошим тоном считается не использовать сокращенной записи php тегов.

Включение поддержки asp тегов <% %> в качестве php тегов.

Output_buffering

Включение буферизированного вывода php. Использование буферизированного вывода позволит вам, к примеру, использовать любые функции, оперирующие с http header"ами (header(), setcookie()) в любом месте вашего скрипта, не заботясь о том, чтобы не выводить ничего до этого. Вы можете управлять буферизированным выводом и из ваших скриптов (см. раздел output control functions в php manual). Помните, что при включенной буферизации вывода результат работы скрипта будет возвращен браузеру только после того, как будет закончена работа скрипта, что может привести к более медленной работе сайта.

Включение безопасного режима работы php. Безопасный режим запрещает скриптам производить любые действия, которые являются небезопасными для сервера, на котором работает php. Очень подробно безопасный режим работы php рассматривается в php manual.

Max_execution_time

Максимальное время работы php скрипта (в секундах). Спустя это время работа скрипта будет принудительно завершена и выдана соответствующая ошибка. Позволяет избежать проблем с "зациклившимися" скриптами.

Максимальный объем памяти, который может быть выделен для нужд скрипта. Также позволяет избежать проблем с "зациклившимися" скриптами.

Error_reporting

Маска для сообщений об ошибках, которые должны генерироваться php. Задается в виде логического выражения с использованием набора предопределенных констант, описывающих различные типы ошибок. Список этих констант, а также правила задания выражений можно найти в php.ini.

Display_errors

Определяет, нужно ли выводить сообщения об ошибках на экран. Обычно эта опция включается во время написания php скриптов, для того, чтобы иметь возможность видеть сообщения об ошибках, а на реальных серверах в интернете она обычно выключена по соображениям безопасности.

Если включена эта опция, то все ошибки будут записываться в log файл, определенный следующей опцией.

Путь и имя файла, куда будут записываться все сообщения об ошибках, генерируемых php. Для систем поддерживающих системный журнал ошибок можно установить значение этого параметра равным syslog, для того, чтобы перенаправить все сообщения об ошибках туда.

Если включена эта опция, то текст последней ошибки будет всегда доступен из переменной $php_errormsg.

Register_globals

Этот параметр определяет, будут ли т.н. egpcs переменные (environment, get, post, cookies, session) доступны в виде глобальных переменных php. Если этот параметр разрешен, то переменные доступ к этим переменным будет осуществляться также, как и к любым другим глобальным переменным php:


echo "Версия http протокола: " . $server_protocol ;
echo "Параметр query string: " . $param1 ;
echo "Элемент формы: " . $txtfirstname ;
echo "Мои cookie: " . $mycookie ;
echo . $mysessionvar ;

Или то же самое, но с отключенным параметром:


echo "Версия http протокола: " . $http_env_vars [ "server_protocol" ];
echo "Параметр query string: " . $http_get_vars [ "param1" ];
echo "Элемент формы: " . $http_post_vars [ "txtfirstname" ];
echo "Мои cookie: " . $http_cookie_vars [ "mycookie" ];
echo "Мои сессионные переменные: " . $http_session_vars [ "mysessionvar" ];

На первый взгляд это менее удобно, но отключение этого параметра имеет и свои преимущества:

Php начинает работать немного быстрее, т.к. не тратится дополнительное время на создание множества переменных.
Нет риска того, что какие-то две переменные будут иметь одинаковые имена, что приведет к появлению ошибок в работе скрипта, которые будет очень сложно отловить в силу их неочевидности.
variables_order

Этот параметр используется в связке с предыдущим параметром и определяет, в какой последовательности производится регистрация глобальных egpcs переменных. Например, при значении по умолчанию (egpcs) переменные, переданные через get будут замещены переменными, переданными через post и имеющими то же имя. post-переменные (а также environment и get переменные) в свою очередь могут быть замещены значениями cookies с такими же именами и т.д.

Magic_quotes_gpc

Включение этого параметра приведет к тому, что все данные, поступающие со стороны клиента (через get, post или cookie) будут обработаны: все кавычки (" и ") в них будут замещены соответственно сочетанием " или ". С одной стороны это очень удобно, если планируется, например, вставлять эти данные в строки, передаваемые, например, sql серверу. Но с другой стороны это может привести к путанице, поэтому обычно надежнее использовать для этой цели функции addslashes() и stripslashes().

Magic_quotes_runtime

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

Magic_quotes_sybase

Включение этой опции приведет к тому, что одинарные кавычки (") будут сдваиваться (""). Это необходимо для некоторых sql серверов, которые поддерживают только такой способ вставки кавычек в строки (interbase, ms sql, sybase и некоторые другие).

Auto_prepend_file

Позволяет задать путь и имя файла, который будет автоматически добавляться в начало каждого php скрипта. Используется только если имеет непустое значение.

Auto_append_file

То же самое, что предыдущий параметр, но добавление содержимого файла производится в конец каждого php скрипта.

Путь к каталогу, где лежат модули php. Обычно это подкаталог extensions в корневом каталоге php.

Последнее обновление: 16.12.2017

Есть разные способы установки всего необходимого программного обеспечения. Мы можем устанавливать компоненты по отдельности, а можем использовать уже готовые сборки на подобие Denwer или EasyPHP. В подобных сборках компоненты уже имеют начальную настройку и уже готовы для создания сайтов. Однако рано или поздно разработчикам все равно приходится прибегать к установке и конфигурации отдельных компонентов, подключения других модулей. Поэтому мы будем устанавливать все компоненты по отдельности. В качестве операционной системы будет использоваться Windows.

Что подразумевает установка PHP? Во-первых, нам нужен интерпретатор PHP. Во-вторых, необходим веб-сервер, например, Apache, с помощью которого мы сможем обращаться к ресурсам создаваемого нами сайта. В-третьих, поскольку мы будем использовать базы данных, то нам также надо будет установить какую-нибудь систему управления базами данных. В качестве такой выбрана MySQL как наиболее популярная в связке с PHP.

Для установки PHP перейдем на офсайт разработчиков http://php.net/ . На странице загрузок мы можем найти различные дистрибутивы для операционной системы Linux. Если нашей операционной системой является Windows, то нам надо загрузить один из пакетов со страницы http://windows.php.net/download/ .

Загрузим zip-пакет последнего выпуска PHP:

Как правило, последний выпуск PHP имеет две версии: Non Thread Safe и Thread Safe. Нам надо выбрать версию Thread Safe . Для этой версии доступны варинты для 32-битной и 64-битной систем.

Распакуем загруженный архив в папку, которую назовем php . Пусть эта папка у нас будет располагаться в корне диска C.

Теперь нам надо выполнить минимальную конфигурацию PHP. Для этого зайдем в каталог c:\php и найдем там файл php.ini-development . Это файл начальной конфигурации интерпретатора. Переименуем этот файл в php.ini и затем откроем его в текстовом редакторе.

Найдем в файле строку:

; extension_dir = "ext"

Эта строка указывает на каталог с подключаемыми расширениями для PHP. Раскомментируем ее (убрав точку с запятой):

Extension_dir = "ext"

Так как все расширения находятся в каталоге ext .

Поскольку мы будем использовать базы данных MySQL, то нам надо указать расширение в php.ini. По умолчанию оно уже имеется в файле, только оно закомментировано:

;extension=mysqli

Раскомментируем его, убрав знак точки с запятой:

Extension=mysqli

Теперь по умолчанию эта библиотека будет использоваться при работе с базой данных. Также мы можем при необходимости раскомментировать и другие расширения. Но для начала нам хватит и одного.

Остальное содержимое файла оставим без изменений.

Теперь установим веб-сервер.

Конфигурационный файл php.ini является основным инструментом настройки ядра PHP . Он считается каждый раз при инициализации PHP . Если изменение не отображается, не забудьте остановить и перезапустить httpd . Если внесенные изменения до сих пор действуют, используйте функцию phpinfo() , чтобы проверить, php ini где лежит.

Файл конфигурации хорошо прокомментирован и подробно проработан. Параметры чувствительны к регистру, значения ключевых слов – нет; пробелы и строки, начинающиеся с точки с запятой, игнорируются. Логические значения могут быть представлены как 1/0 , Yes/No , On/Off или True/False . Значения по умолчанию в php.ini повлияют на установку PHP , которую позже можно будет настроить.

В этой статье мы рассмотрим важные настройки в файле php.ini , которые могут потребоваться для PHP парсера.

short_open_tag = Off

Короткие открытые теги выглядят так: . Для этого параметра должно быть установлено значение Off , если вы хотите использовать функции обработки XML .

safe_mode = Off

Если этот параметр имеет значение ON , вероятно, вы скомпилировали PHP с флагом enable-safe-mode . Безопасный режим наиболее важен для использования CGI .

safe_mode_exec_dir =

Эта опция имеет значение только в том случае, если включен безопасный режим. Она также может быть установлена с флагом —with-exec-dir во время процесса сборки Unix . PHP в безопасном режиме выполняет внешние двоичные файлы только из этого каталога. По умолчанию используется каталог /usr/local/bin . Это не имеет ничего общего с обслуживанием обычной PHP/HTML веб-страницы.

safe_mode_allowed_env_vars =

Эта опция php ini задает, какие переменные окружения пользователи могут изменить в безопасном режиме. По умолчанию, только те переменные, к которым добавлено «PHP_ ». Если эта директива пуста, то большинство переменных можно изменять.

safe_mode_protected_env_vars =

Параметр устанавливает, какие переменные окружения пользователи не могут изменить в безопасном режиме, даже если опция safe_mode_allowed_env_vars включена.

disable_functions =

Довольно полезным дополнением в конфигурации PHP4 , которое сохранилось и в версии PHP5 , является возможность отключения выбранных функций по соображениям безопасности. Раньше это требовало ручной правки кода на языке C , на котором был написан интерпретатор PHP . Функции файловой системы, операционной системы и сети должны быть первыми в этом списке, потому что возможность записи файлов и изменения системы через HTTP не является безопасным.

max_execution_time = 30

При настройке php ini нужно знать, что функция set_time_limit() не будет работать в безопасном режиме. Поэтому это основной способ реализовать задержку выполнения скрипта в безопасном режиме. В Windows вы должны выполнить принудительное завершение, основываясь на максимальном уровне потребляемой памяти, а не на времени. Также можно использовать настройку таймаута Apache для реализации задержки. Но она будет применена и к файлам сайта, не являющимся PHP .

error_reporting = E_ALL & ~E_NOTICE

Значением по умолчанию является E_ALL & ~E_NOTICE , все ошибки кроме уведомлений. Для серверов должно быть установлено, как минимум, значение по умолчанию. И только на основных серверах можно использовать меньшее значение.

error_prepend_string = [«»]

Вместе с » используется со строками, как при формировании значения поля формы.

variables_order = EGPCS

Заменяет gpc_order . Обе версии устарели вместе с register_globals . Он устанавливает порядок различных переменных: Environment , GET , POST , COOKIE и SERVER (или Built-in ). Вы можете изменить этот порядок. Переменные будут последовательно перезаписаны слева направо, при этом самый правый всегда «выигрывает ». Это означает, что если оставить значение по умолчанию и использовать одно имя для переменной среды, переменной POST и переменной COOKIE , то, в конце концов, имя будет принадлежать переменной COOKIE .

register_globals = Off

Этот параметр php ini set позволяет определить, нужно ли регистрировать переменные EGPCS как глобальные. В настоящее время этот способ устарел, и, начиная с PHP 4.2 , этот флаг по умолчанию установлен в значение Off . Вместо него используйте суперглобальные массивы.

gpc_order = GPC

Этот параметр устарел.

magic_quotes_gpc = On

Экранирует кавычки во входящих данных GET/POST/COOKIE . Если вы используете много форм, которые отправляют данные сами себе или другим формам, и отображают значения форм, нужно активировать эту директиву или использовать функции addslashes() для данных строкового типа.

magic_quotes_runtime = Off

Этот параметр экранирует кавычки во входящих строках базы данных и текстовых строках. Помните, что SQL добавляет слеш в одинарные кавычки и апострофы при сохранении строк и не убирает их при возвращении строк. Если этот параметр выключен, необходимо использовать функцию stripslashes() при выводе любых типов строковых данных из БД SQL . Если для magic_quotes_sybase установлено значение On , то этот параметр должен быть Off .

magic_quotes_sybase = Off

Экранирует одиночные кавычки во входящих строках базы данных и текстовых строках с одиночными кавычками в стиле Sybase , а не обратным слешем. Если для параметра magic_quotes_runtime установлено значение On , данный параметр должен быть отключен.

auto-prepend-file =

Если в этом параметре php ini указан путь, PHP должен автоматически добавить конструкцию include() в начало каждого PHP-файла . Следует учитывать ограничения для путей включаемых файлов.

auto-append-file =

Если в этом параметре указан путь, PHP должен автоматически ввести конструкцию include() в конец каждого PHP-файла , кроме случаев, когда осуществляется выход с помощью функции exit () . Следует учитывать ограничения для путей включаемых файлов.

include_path =

Если установить это значение, вам будет разрешено включать или запрашивать файлы только из указанных каталогов. Каталог include обычно находится под корневым документом. Это необходимо, если вы работаете в безопасном режиме. Установите для параметра значение .in , чтобы включить файлы из каталога, в котором находится ваш скрипт. Несколько каталогов разделяются двоеточиями: .:/usr/local/apache/htdocs:/usr/local/lib .

doc_root =

При настройке php ini если вы используете Apache , то в файле httpd.conf корневой каталог документа для этого сервера или виртуального хоста уже задан. Установите это значение здесь, если используете безопасный режим или хотите разрешить PHP только для части сайта (например, только в одном подкаталоге ).

file_uploads =

Активируйте этот флаг, если загружаете файлы с помощью PHP-скрипта .

upload_tmp_dir =

Не удаляйте комментарии из этой строки, если не понимаете, что такое !

session.save-handler = files

За исключением редких случаев изменять этот параметр не нужно.

ignore_user_abort =

Определяет, что произойдет, если посетитель сайта нажмет в своем браузере кнопку «Остановить ». По умолчанию установлено значение On , которое означает, что скрипт продолжит работать до завершения или таймаута. Если изменить значение данного параметра на Off , скрипт будет прерван. Этот параметр работает только в режиме модуля, а не в CGI .







2024 © gtavrl.ru.