Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

web - tec / PHP 5 для начинающи

.pdf
Скачиваний:
119
Добавлен:
12.06.2015
Размер:
26.79 Mб
Скачать

822 Приложение Е

;Должен ли РНР регистрировать EGPCS-переменные как глобальные

;переменные. Можно отключить эту функцию, чтобы не "засорять"

;глобальную область видимости сценария. Это особенно полезно,

;если используется директива track_vars — в этом случае

;получить доступ к GPC-данным можно через переменные $НТТР_*_VARS[].

;Желательно так писать сценарии, чтобы они по возможности

;обходились без директивы register_globals. Использование

;данных, поступивших из формы, как глобальных переменных,

;потенциально может породить проблемы в защите сценария, если

;программист специально не позаботится об их устранении.

register_globals = Off

;Следующая директива заставляет PHP регистрировать массивы входных

;данных в старом стиле, т.е. массивы HTTP_GET_VARS и др. Если эти

;массивы в приложении не используются, то рекомендуется отключить

;директиву в целях повышения производительности интерпретатора.

register_long_arrays = On

;Следующая директива указывает РНР, обязан ли он создавать

;переменные $argv и $argc на основе информации, поступившей

;посредством метода GET. Если эти переменные не используются в

;приложениях, то директиву register_argc_argv следует отключить –

;это повысит производительность РНР.

register_argc_argv = On

;Максимально допустимый размер принимаемых POST-данных. post_max_size = 8M

;Следующая директива устарела — вместо нее следует использовать

;variables_order.

gpc order="GPC"

; Автоматическая обработка кавычек и апострофов

;

;Использовать ли автокавычки для входящих GET/POST/Cookie-данных magic_quotes_gpc = Off

;Заключать ли в автокавычки данные, генерируемые во время

;выполнения, например, данные из SQL, ехес() и т.д.

magic_quotes_runtime = On

;Нужно ли РНР оформлять автокавычки в стиле Sybase-style (заменять '

;на '', а не на \')

magic_quotes_sybase = Off

;Следующие директивы указывают РНР, содержимое каких файлов он

;должен обрабатывать до и после вывода сценария соответственно.

auto_prepend_file = auto_append_file =

;Начиная с версии 4.0b4, РНР всегда сообщает браузеру об

;используемой кодировке в заголовке Content-type. Чтобы отключить

;эту функцию необходимо просто оставить следующую директиву пустой.

;

;По умолчанию используется text/html. default_mimetype = "text/html" ;default_charset = "iso-8859-l"

;Следующая директива (если она используется) заставляет PHP

;наполнять данными массив $HTTP_RAW_POST_DATA.

;always_populate_raw_post_data = On

Конфигурация PHP5 823

Пути и каталоги

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

;;;;;;;;;;;;;;;;;;;

;Пути и каталоги ;

;;;;;;;;;;;;;;;;;;;

;UNIX: "/path1:/path2"

;include_path = ".:/php/includes"

;

;Windows: "\ path1;\ path2" ;include_path = ".;c:\ php\ includes"

;Корневой каталог для РНР-сценариев.

;Игнорируется, если значение равно "". Если PHP не был скомпилирован

;с ключом FORCE_REDIRECT, то директива doc_root ДОЛЖНА быть

;установлена, если PHP работает как CGI на любом сервере (кроме

;IIS). Обратитесь к документации по вопросам безопасности сайтов.

;Можно также использовать параметр cgi.force_redirect; см. ниже.

doc_root =

;Каталог, который РНР использует при открытии сценария вида

;/~username. Игнорируется, если значение равно "".

user_dir =

;Каталог, в котором хранятся динамически загружаемые расширения

;(модули).

extension_dir = ./

;Следующая директива разрешает или запрещает использование функции

;dl().Функция dl() работает неправильно в многопоточных

;Web-серверах, например, в IIS или Zeus, и автоматически отключается

;для них.

enable_dl = On

;Директива cgi.force_redirect необходима для обеспечения

;безопасности при работе PHP в виде CGI в большинстве Web-серверов.

;Если она не определена, то PHP по умолчанию включает ее

;автоматически. Ее можно отключить здесь на собственный страх и

;риск.

;**Эту директиву МОЖНО, а по сути, НУЖНО отключить для IIS.**

;cgi.force_redirect = 1

;Если предыдущая директива включена и используется Web-сервер

;отличный от Apache или Netscape(iPlanet), то может возникнуть

;необходимость создать переменную окружения, которую PHP будет

;проверять и в зависимости от ее значения продолжать или

;останавливать выполнение сценария. Установка этой переменной может

;вызвать проблемы в защите сценариев. Используйте ее, только если

;вы знаете что делаете.

;cgi.redirect_status_env = ;

;FastCGI на Web-сервере IIS (в операционных системах на основе

;WINNT) поддерживает возможность имитировать маркеры безопасности

;вызывающего клиента. Это позволяет IIS определить контекст

;безопасности, в котором выполняется запрос. В Web-сервере Apache

;mod_fastcgi по состоянию на 17.03.2002 не поддерживает эту функцию.

824 Приложение Е

;Установите значение 1 для IIS. По умолчанию используется 0.

;fastcgi.impersonate = 1;

;Параметр cgi.rfc2616_headers сообщает PHP, заголовки какого типа

;использовать при отправке кода HTTP-ответа. Значение 0

;соответствует заголовку Status:, который поддерживается

;Web-сервером Apache, а значение 1 соответствует

;RFC2616-совместимому заголовку. По умолчанию используется 0.

;cgi.rfc2616_headers = 0

Загрузка файлов на сервер

Если приложение зависит от загрузки файлов на сервер, то для временного хране+ ния загружаемых файлов потребуется немало свободного места на диске. Чтобы избе+ жать переполнения диска, можно даже использовать файловую систему в памяти (такая файловая система создается из операционной системы, а в директиве upload_tmp_dir необходимо указать соответствующий путь). Стандартная настройка максимального размера загружаемых файлов upload_max_filesize весьма консервативна, поэтому ее значение можно увеличить, если есть уверенность, что пользователи не превысят указанный предел.

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;Загрузка файлов на сервер ;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;Следующая директива разрешает PHP загружать файлы на сервер. file_uploads = On

;Каталог для временных файлов, в который РНР помещает закачанные по

;HTTP файлы (если в директиве указана пустая строка, то используется

;системный временный каталог)

;upload_tmp_dir =

; Максимальный размер закачанного файла upload_max_filesize = 2M

Обработчики функции fopen

Самым важным параметром в этом разделе является директива allow_url_fopen, предоставляющая удобный способ рассматривать Web+сайты как обычные файлы. По умолчанию значение этой директивы равно On. Чтобы запретить другим программи+ стам, работающим с этим сервером, использовать эту функцию, необходимо устано+ вить значение Off.

Описанные ниже параметры имеют важное значение. Иногда требуется, чтобы PHP открывал файлы на удаленных машинах, используя URL. В таких случаях воз+ можность устанавливать таймаут (default_socket_timeout) или имя пользователя для анонимного доступа (from) позволяет найти и открыть необходимый файл на удаленном сервере.

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;Обработчики функции fopen ;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;Следующая директива определяет, можно ли трактовать URL (http://

;или ftp://) как файлы.

Конфигурация PHP5 825

allow_url_fopen = On

;Здесь задается пароль для анонимного FTP-доступа (email-адрес). ;from="john@doe.com"

;Здесь определяется строка User-Agent.

;user_agent="PHP"

;Таймаут по умолчанию для потоков данных, основанных на сокетах

;(в секундах).

default_socket_timeout = 60

;Если сценарии должны работать с файлами, созданными в системах

;Macintosh, или PHP работает на Macintosh-машине и необходимо

;работать с файлами из Unixили Win32-систем, установка этого флага

;заставляет PHP автоматически определять символы конца строки (EOL)

;так, чтобы функции fgets() и file() работали правильно.

;auto_detect_line_endings = Off

Динамически загружаемые расширения

Расширения позволяют добавлять функциональность в PHP без перекомпиляции исходного кода. Обычно для работы с базами данных пользователю приходится рас+ комментировать имя расширения. Например, если PHP работает на Windows+ платформе и при этом нужно подключаться к PostgreSQL+серверу, следует расском+ ментировать строку extension=php_pgsql.dll. В Unix+платформах используется файловое расширение .so вместо .dll.

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

; Динамически загружаемые расширения ;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;

;Чтобы модули загружались автоматически, необходимо задавать

;настройки в формате:

;

;extension=modulename.extension

;

;Например, для Windows:

;extension=msql.dll

;

;для UNIX:

;extension=msql.so

;Примечание: указывается только имя файла расширения без пути.

;Чтобы задать каталог, в котором расположены расширения, следует

;использовать директиву extension_dir, описанную выше.

;

;Расширения для Windows

;Примечание: поддержка MySQL и ODBC теперь включена в ядро РНР,

;поэтому для нее уже не нужны никакие библиотеки DLL.

;

;extension=php_bz2.dll ;extension=php_cpdf.dll ;extension=php_curl.dll ;extension=php_dba.dll ;extension=php_dbase.dll ;extension=php_dbx.dll ;extension=php_exif.dll ;extension=php_fdf.dll

826 Приложение Е

;extension=php_filepro.dll ;extension=php_gd2.dll ;extension=php_gettext.dll ;extension=php_iconv.dll ;extension=php_ifx.dll ;extension=php_iisfunc.dll ;extension=php_imap.dll ;extension=php_interbase.dll ;extension=php_ldap.dll ;extension=php_mbstring.dll ;extension=php_mcrypt.dll ;extension=php_mhash.dll ;extension=php_mime_magic.dll ;extension=php_ming.dll ;extension=php_mssql.dll ;extension=php_msql.dll ;extension=php_mysql.dll ;extension=php_oci8.dll ;extension=php_openssl.dll ;extension=php_oracle.dll ;extension=php_pdf.dll ;extension=php_pgsql.dll ;extension=php_shmop.dll ;extension=php_snmp.dll ;extension=php_sockets.dll ;extension=php_sybase_ct.dll ;extension=php_w32api.dll ;extension=php_xmlrpc.dll ;extension=php_xsl.dll ;extension=php_yaz.dll ;extension=php_zip.dll

Настройки расширений

Настройки расширений ++++++ параметры, которые передаются загружаемым расширени+ ям (чтобы узнать, какие расширения загружаются, обратитесь к разделу ‘‘Динамически за+ гружаемые расширения’’). В этом разделе задаются параметры многих расширений, поэтому следует изучить настройки для всех необходимых расширений, остальные можно проигнорировать. Например, если вместо баз данных Oracle нужно использо+ вать базы данных PostgreSQL, то лучше сразу просмотреть параметры, имена которых начинаются с pgsql.

;;;;;;;;;;;;;;;;;;;;;;;;

; Настройки расширений ;

;;;;;;;;;;;;;;;;;;;;;;;;

[Syslog]

;Следует определять различные переменные Syslog, такие как

;$LOG_PID, $LOG_CRON и т.д. Для ускорения работы рекомендуется

;выключать следующую директиву. Во время выполнения сценария

;эти переменные можно определить с помощью функции

;define_syslog_variables().

define_syslog_variables = Off

[mail function]

;Только для Win32. SMTP = localhost

;Только для Win32.

;sendmail_from = me@example.com

Конфигурация PHP5 827

;Только для UNIX. Можно задать аргументы (по умолчанию:

;"sendmail -t –i").

;sendmail_path =

;Передавать программе sendmail заданные параметры как.

;дополнительные Эти параметры всегда заменяют значение

;пятого параметра mail(), даже в безопасном режиме.

;mail.force_extra_paramaters =

[SQL] sql.safe_mode = Off

[ODBC]

;odbc.default_db = Пока не реализовано ;odbc.default_user = Пока не реализовано ;odbc.default_pw = Пока не реализовано

;Разрешает или запрещает постоянные соединения odbc.allow_persistent = On

;Проверка доступности соединения перед его использованием. odbc.check_persistent = On

;Макс. число постоянных соединений. -1 означает, что ограничений нет. odbc.max_persistent = -l

;Макс. число соединений (в том числе постоянных).

;-1 означает, что ограничений нет.

odbc.max_links = -l

;Обработка LONG-полей. Возвращает в переменную количество байтов. 0

;означает режим passthru

odbc.defaultlrl = 4096

;Установки для бинарных данных. 0 означает режим passthru, 1 – режим

;"как есть", 2 - преобразование в тип char.

;См. документацию по odbc_binmode и odbc_longreadlen для более

;детального разъяснения смысла директив odbc.defaultlrl и

;odbc.defaultbinmode.

odbc.defaultbinmode = l

[MySQL]

;Разрешать или запрещать постоянные соединения. mysql.allow_persistent = On

;Максимальное количество постоянных соединений. -1 означает, что

;ограничений нет.

mysql.max_persistent = -1

;Максимальное количество соединений (включая постоянные). -1

;означает, что ограничений нет.

mysql.max_links = -1

;Порт по умолчанию для функции mysql_connect(). Если порт не задан,

;функция попытается использовать переменную $MYSQL_TCP_PORT

;или запись mysql-tcp в файле /etc/services, либо заданную во время

;компиляции РНР константу MYSQL_PORT (именно в таком порядке).

;В РНР для Win32 используется только константа.

mysql.default_port =

;Здесь определяется имя сокета по умолчанию для локальных соединений

;MySQL. Если сокет не задан, то используется встроенное значение по

828 Приложение Е

;умолчанию в MySQL. mysql.default_socket =

;Хост по умолчанию для mysql_connect() (не работает в безопасном

;режиме).

mysql.default_host =

; Пользователь по умолчанию для mysql_connect()

;(не работает в безопасном режиме). mysql.default user=

;Пароль по умолчанию для mysql_connect() (не работает в безопасном

;режиме).

;Замечание: вообще идею хранить пароль в этом файле нельзя назвать

;хорошей. *Любой* пользователь, который может запускать РНР, сможет

;узнать пароль путем выполнения следующего оператора:

;echo cfg_get_var("mysql.default_password")

;Конечно, узнать пароль сможет также и пользователь, который имеет

;права на чтение этого файла.

mysql.default_password =

;Максимальное время (в секундах) ожидания соединения. -1 означает,

;что ограничений нет.

mysql.connect_timeout = 60

;Режим трассировки. Когда режим трассировки активен (trace_mode =

;On), отображаются предупреждения о сканировании таблиц/индексов, а

;также SQL-ошибки.

mysql.trace_mode = Off

[mSQL]

;Разрешать или запрещать постоянные соединения. msql.allow_persistent = On

;Максимальное количество постоянных соединений. -1 означает, что

;ограничений нет.

msql.max_persistent = -1

;Максимальное количество соединений (включая постоянные). -1

;означает, что ограничений нет.

msql.max_links = -1

[PostgresSQL]

;Разрешать или запрещать постоянные соединения. pgsql.allow_persistent = On

;Всегда обнаруживать разорванные постоянные соединения с помощью

;pg_pconnect(). Вносит незначительные издержки.

pgsql.auto_reset_persistent = Off

;Максимальное количество постоянных соединений. -1 означает, что

;ограничений нет.

pgsql.max_persistent = -1

;Максимальное количество соединений (включая постоянные). -1

;означает, что ограничений нет.

pgsql.max_links = -1

;Следующая директива определяет, следует ли игнорировать замечания

;PostgreSQL-серверов.

pgsql.ignore_notice = 0

; Записывать замечания PostgreSQL-серверов в журнал или нет.

Конфигурация PHP5 829

;Если pgsql.ignore_notice не равно 0, то расширение не может

;записывать сообщения в журнал.

pgsql.log_notice = 0

[Sybase]

;Разрешать или запрещать постоянные соединения. sybase.allow_persistent = On

;Максимальное количество постоянных соединений. -1 означает, что

;ограничений нет.

sybase.max_persistent = -1

;Максимальное количество соединений (включая постоянные). -1

;означает, что ограничений нет.

sybase.max_links = -1

;sybase.interface_file = "/usr/sybase/interfaces"

;Минимальный уровень серьезности отображаемых ошибок. sybase.min_error_severity = 10

;Минимальный уровень серьезности отображаемых сообщений. sybase.min_message_severity = 10

;Режим совместимости со старыми версиями PHP 3.0.

;Если этот режим включен, то PHP не трактует все результаты как

;строки, а автоматически назначает им типы согласно типам в Sybase.

;Этот режим, скорее всего, в будущих версиях будет упразднен,

;поэтому лучше всего его выключить и внести соответствующие

;изменения в код.

sybase.compatability_mode = Off

[Sybase-CT]

;Разрешать или запрещать постоянные соединения. sybct.allow_persistent = On

;Максимальное количество постоянных соединений. -1 означает, что

;ограничений нет.

sybct.max_persistent = -1

;Максимальное количество соединений (включая постоянные). -1

;означает, что ограничений нет.

sybct.max_links = -1

;Минимальный уровень серьезности отображаемых сообщений сервера. sybct.min_server_severity = 10

;Минимальный уровень серьезности отображаемых сообщений клиента. sybct.min_client_severity = 10

[dbx]

;Возвращаемые имена столбцов можно конвертировать в целях

;совместимости. Возможные значения директивы dbx.colnames_case:

;"unchanged" ("не изменять"; используется по умолчанию, если

;директива не установлена)

;"lowercase" ("в нижний регистр")

;"uppercase" ("в верхний регистр")

;Рекомендуется использовать либо значение "uppercase", либо

;"lowercase" в настоящее время в целях обратной совместимости

;используется значение "unchanged"

dbx.colnames_case = "unchanged"

[bcmath]

; Количество десятичных цифр для всех bcmath-функций.

830 Приложение Е

bcmath.scale = 0

[browscap]

;browscap = extra/browscap.ini

[Informix]

;Хост по умолчанию для ifx_connect() (не работает в безопасном

;режиме).

ifx.default_host =

;Пользователь по умолчанию для ifx_connect() (не работает в

;безопасном режиме).

ifx.default_user =

;Пароль по умолчанию для ifx_connect() (не работает в безопасном

;режиме).

ifx.default_password =

;Разрешать или запрещать постоянные соединения. ifx.allow_persistent = On

;Максимальное количество постоянных соединений. -1 означает, что

;ограничений нет.

ifx.max_persistent = -1

;Максимальное количество соединений (включая постоянные). -1

;означает, что ограничений нет.

ifx.max_links = -1

;Если следующая директива установлена в On, select-оператор

;возвращает содержимое поля типа text blob вместо его

;идентификатора.

ifx.textasvarchar = 0

;Эта директива заставляет оператор select возвращать значение поля

;типа byte blob вместо его идентификатора.

ifx.byteasvarchar = 0

;Заставляет РНР удалять завершающие пробелы из столбцов типа char

;фиксированного размера. Может помочь пользователям Informix SE.

ifx.charasvarchar = 0

;Если следующая директива установлена, то содержимое полей text и

;byte сохраняется в файле, а не в памяти.

ifx.blobinfile = 0

;Если значение следующей директивы не равно 1, то NULL-значения

;возвращаются как пустые строки, иначе они возвращаются

;как строки 'NULL'.

ifx.nullformat = 0

[Session]

;Определяет режим хранения данных сеансов. session.save_handler = files

;Следующая директива задает аргумент, передаваемый save_handler.

;В случае режима сохранения в файлах здесь должен указываться

;каталог, в который будут сохраняться файлы сеансов.

;Примечание: чтобы использовать функции сеансов в Windows-системах,

;необходимо изменить это значение.

;

;Начиная с PHP 4.0.1, можно определить путь как:

;session.save_path = "N;/path"

Конфигурация PHP5 831

;

;где N - целое число. В результате все файлы сеанса будут

;сохраняться не в каталоге /path, а в подкаталогах с N-уровнем

;вложений. Это полезно, если в операционной системе имеются

;сложности с сохранением большого количества файлов в одном

;каталоге, а, кроме того, это более эффективно для серверов,

;обрабатывающих большое количество сеансов.

;Примечание 1: PHP автоматически не создает такую структуру

;каталогов. С этой целью можно использовать

;сценарий, находящийся в каталоге ext/session

;Примечание 2: см. ниже раздел настроек, управляющих

;сборкой мусора, если для хранения сеансов

;используются подкаталоги.

;Модуль сохранения сеансов в файлах создает файлы,

;используя по умолчанию права доступа 600.

;Изменить настройку можно с помощью директивы:

;session.save_path = "N;MODE;/path"

;где MODE – восьмеричное представление прав доступа.

;При этом umask процесса не меняется.

session.save_path = "/tmp"

;Должен ли РНР использовать cookie-файлы. session.use_cookies = l

;Следующая директива позволяет администраторам защитить своих

;пользователей от атак, в которых используется передача

;идентификатор сеанса в URL; по умолчанию значение равно 0.

;session.use_only_cookies = 1

;Имя сеанса (используется как имя cookie-файла).

session.name = PHPSESSID

;Инициализация сеансов в начале запроса. session.auto_start = 0

;Время жизни cookie-файла сеанса. 0 - до закрытия браузера. session.cookie_lifetime = 0

;Путь, для которого cookie-файл является достоверным. session.cookie_path=/

;Домен, для которого cookie-файл является достоверным. session.cookie_domain=

;Функция, используемая для сериализации данных. Значение php задает

;стандартную функцию PHP.

session.serialize_handler= php

;Вероятность того, что при очередном запуске сценария, работающего с

;сеансами, будет вызвана функция "сборки мусора". Вероятность

;вычисляется по формуле gc_probability/gc_divisor, 1/100 означает,

;что сборка мусора запускается 1 раз в 100 запросов.

session.gc_probability

=

l

session.gc_divisor

=

100

;После указанного здесь промежутка времени сохраненные данные будут

;удалены автоматически сборщиком мусора.

session.gc_maxlifetime = 1440

;Примечание: если для хранения файлов сеансов используются

;подкаталоги (см. раздел session.save_path выше),

;то сборка мусора *не* включается автоматически.

;Необходимо использовать собственную сборку мусора

;посредством shell-сценария, cron-задания или другого

;метода. Например, следующий сценарий эквивалентен

Соседние файлы в папке web - tec