Самоучитель PHP 4 - Котеров Д. В.
.pdf528 |
|
Часть VI. Приложения |
AddLanguage kr .kr |
|
|
AddCharset ISO-2022-KR .iso-kr |
|
|
AddLanguage no .no |
|
|
AddLanguage pl .po |
|
|
AddCharset ISO-8859-2 .iso-pl |
|
|
AddLanguage pt .pt |
|
|
AddLanguage pt-br .pt-br |
|
|
AddLanguage ltz .lu |
|
|
AddLanguage ca .ca |
|
|
AddLanguage es .es |
|
|
AddLanguage sv .se |
|
|
AddLanguage cz .cz |
|
|
AddLanguage ru .ru |
|
|
AddLanguage tw .tw |
|
|
AddCharset Big5 |
.Big5 |
.big5 |
AddCharset WINDOWS-1251 |
.cp-1251 |
|
AddCharset CP866 |
.cp866 |
|
AddCharset ISO-8859-5 |
.iso-ru |
|
AddCharset KOI8-R |
.koi8-r |
|
AddCharset UCS-2 |
.ucs2 |
|
AddCharset UCS-4 |
.ucs4 |
|
AddCharset UTF-8 |
.utf8 |
|
#LanguagePriority позволяет определить первоочередность некоторых
#языков при установлении протокола обмена.
#
#Возможно, вы захотите изменить предложенный порядок языков. Просто
#перечислите их в порядке убывания приоритета.
#
<IfModule mod_negotiation.c>
LanguagePriority en da nl fr de el it ja no pl pt ru ca es sv tw </IfModule>
#
#AddType позволяет слегка подправить mime.types, не редактируя его,
#или объявить конкретные файлы имеющими определенный тип.
#
#Например, модуль PHP3 (этот модуль не является частью дистрибутива
#сервера Apache), обычно использует следующие объявления:
Приложение 1. Файл конфигурации Apache httpd.conf |
529 |
#
#AddType application/x-httpd-php3 .php3
# AddType application/x-httpd-php3-source .phps
#
#В случае PHP 4.x укажите:
AddType application/x-httpd-php .php
#AddType application/x-httpd-php-source .phps
#Следующие строки не относятся к заданию типов документов,
#но их удобно поместить сюда для подключения PHP:
#
ScriptAlias /_php/ "C:/Program Files/PHP4/" Action application/x-httpd-php "/_php/php.exe"
AddType application/x-tar .tgz
#
#AddHandler позволяет отобразить определенные расширения имен файлов
#на обработчиков вне связи с определениями типов файлов. Обработчики
#могут быть как встроены в сервер, так и объявлены директивой
#Action (см. ниже).
#
#Если вы хотите использовать файлы, вставляемые сервером в ваши
#документы (SSI — server side includes), снимите комментарий
#со следующих строк:
#
# для использования сценариев CGI —
#
AddHandler cgi-script .bat .exe .cgi
#
#для HTML-файлов, предварительно обрабатываемых
#сервером (server-parsed HTML files):
#
AddType text/html .shtml
AddHandler server-parsed .shtml .html .htm
#
530 |
Часть VI. Приложения |
#Раскомментируйте следующую строку, чтобы разрешить Apache передачу
#специальных файлов, которые не сопровождаются стандартными
#заголовками HTTP (send-asis HTTP file).
#
# AddHandler send-as-is asis
#
#Если вы хотите использовать карты-изображения, обрабатываемые
#сервером, раскройте следующую директиву:
#
# AddHandler imap-file map
#
#Если вы хотите задействовать карты типов (type maps, см.
#документацию), используйте:
#
# AddHandler type-map var
</IfModule>
# Конец блока директив описания типов документов.
#
#Директива Action позволяет определить приложение, выполняющее сценарии,
#когда запрашиваются содержащие их файлы. Это устраняет необходимость
#многократного упоминания URL часто используемых процессоров
#CGI-сценариев.
#Формат: Action псевдоним_типа /псевдоним_пути/обработчик
#Action среда/тип /псевдоним_пути/обработчик
#
#
#MetaDir: определяет имя каталога, в котором Apache может найти файлы с
#метаинформацией. Эти файлы содержат дополнительные заголовки HTTP,
#включаемые при отправке определенных документов.
#
# MetaDir .web
#
# MetaSuffix устанавливает суффикс имени файла, содержащего метаинформацию.
Приложение 1. Файл конфигурации Apache httpd.conf |
531 |
#
#MetaSuffix .meta
#Настраиваемая реакция на ошибки (собственный стиль Apache) может быть
#трех типов.
#
#1) простой текст
#ErrorDocument 500 "Сервер сказал а-я-яй!"
#Внимание: знак двойной кавычки просто означает, что далее следует
#текст.
#
#2) локальная переадресация
#Чтобы перенаправить на локальный документ:
#ErrorDocument 404 /missing.html
#Перенаправлять можно и на сценарий, и на документ, использующий
#включения на стороне сервера:
#ErrorDocument 404 /cgi-bin/missing_handler.pl
#
#3) внешняя переадресация
#ErrorDocument 402 http://some.other_server.com/info.html
#Большинство переменных окружения, связанных с исходным запросом,
#станут недоступны при такой переадресации.
#
# Установки, связанные с браузером пользователя.
#
<IfModule mod_setenvif.c>
#
#Следующие директивы отменяют поддержку долговременных соединений
#(keepalives) и "смывание" заголовков HTTP. Первая директива
#отменяет их для Netscape 2.x и браузеров, которые "притворяются",
#что они — Netscape (известны некоторые проблемы с такими
#браузерами). Вторая директива предназначена для Microsoft Internet
#Explorer 4.0b2, реализация HTTP/1.1 которого не полна и не
#поддерживает должным образом keepalive, когда он используется в
#откликах 301 или 302 (переадресация).
#
BrowserMatch "Mozilla/2" nokeepalive
532 |
Часть VI. Приложения |
BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0
#
#Следующая директива отключает отклики по HTTP/1.1 браузерам,
#которые нарушают стандарты HTTP/1.0 и не могут разобрать
#основной отклик 1.1.
#
BrowserMatch "RealPlayer 4\.0" force-response-1.0 BrowserMatch "Java/1\.0" force-response-1.0 BrowserMatch "JDK/1\.0" force-response-1.0
</IfModule>
# Конец настроек, связанных с браузерами.
#
#Следующая группа директив управляет отчетами о состоянии сервера,
#имеющего URL http://servername/server-status. Для приведения в
#соответствие с вашими нуждами измените .your_domain.com.
#
#<Location /server-status>
#SetHandler server-status
#Order deny,allow
#Deny from all
#Allow from .your_domain.com
#</Location>
#
#Эта группа директив управляет отчетами конфигурации удаленного
#сервера http://servername/server-info (требуется, чтобы был загружен
#mod_info.c). Замените .your_domain.com на имя вашего домена.
#
#<Location /server-info>
#SetHandler server-info
#Order deny,allow
#Deny from all
#Allow from .your_domain.com
#</Location>
#
Приложение 1. Файл конфигурации Apache httpd.conf |
533 |
#Поступали сообщения, что некие люди пытаются злоупотреблять древней
#ошибкой старых версий Apache. Ошибка касалась CGI-сценария,
#поставлявшегося с Apache.
#Раскрыв следующие строки, вы можете переадресовать эти атаки
#на регистрирующий сценарий на phf.apache.org. А можете регистрировать
#их сами, используя сценарий support/phf_abuse_log.cgi.
#
#<Location /cgi-bin/phf*>
#Deny from all
#ErrorDocument 403 http://phf.apache.org/phf_abuse_log.cgi
#</Location>
#
#Директивы proxy-сервера.
#<IfModule mod_proxy.c>
#Раскройте следующую строку для того, чтобы разрешить
#работу с proxy.
#ProxyRequests On
#<Directory proxy:*>
#Order deny,allow
#Deny from all
#Allow from .your_domain.com
#</Directory>
#
#Разрешить/запретить обработку заголовков HTTP/1.1 Via:.
#Возможные значения: Off | On | Full | Block. Full добавляет в
#заголовок версию сервера, Block удаляет все исходящие
#заголовки Via:.
#
# ProxyVia On
#
#Для разрешения также кэширования отредактируйте и раскройте
#следующие строки (нельзя включать кэширование без указания
#CacheRoot):
#
534 |
Часть VI. Приложения |
#CacheRoot "C:/Program Files/Apache Group/Apache/proxy"
#CacheSize 5
#CacheGcInterval 4
#CacheMaxExpire 24
#CacheLastModifiedFactor 0.1
#CacheDefaultExpire 1
#NoCache a_domain.com another_domain.edu joes.garage_sale.com
#</IfModule>
#Конец настроек proxy-сервера.
### Раздел 3: Виртуальные хосты
#
#Директива VirtualHost: Если вы хотите держать на своей машине несколько
#хостов, следует для каждого из них завести контейнер VirtualHost.
#Прежде чем их устанавливать, обращайтесь за подробными разъяснениями к
#документации по адресу http://www.apache.org/docs/vhosts/. Для проверки
#конфигурации ваших виртуальных хостов вы можете задавать опцию -S
#командной строки.
#
#Если вы хотите использовать именные виртуальные хосты (name-based
#virtual hosts), вам необходимо определить для них как минимум один
#адрес IP (и номер порта).
#
NameVirtualHost 127.0.0.1:80
#
#Пример использования директивы VirtualHost:
#В контейнер VirtualHost может включаться почти любая
#директива Apache.
#<VirtualHost ip.address.of.host.some_domain.com>
#ServerAdmin webmaster@host.some_domain.com
#DocumentRoot /www/docs/host.some_domain.com
#ServerName host.some_domain.com
#ErrorLog logs/host.some_domain.com-error_log
#CustomLog logs/host.some_domain.com-access_log common
#</VirtualHost>
#<VirtualHost _default_:*>
Приложение 1. Файл конфигурации Apache httpd.conf |
535 |
#</VirtualHost>
#Далее идут настройки для виртуальных хостов, описанных во второй
#части этой книги.
#----localhost <VirtualHost localhost>
ServerAdmin webmaster@localhost.ru ServerName localhost
DocumentRoot "z:/home/localhost/www" ScriptAlias /cgi/ "z:/home/localhost/cgi/" ErrorLog z:/home/localhost/error.log CustomLog z:/home/localhost/access.log common
</VirtualHost>
#----hacker <VirtualHost hacker>
ServerAdmin webmaster@hacker.ru ServerName hacker
DocumentRoot "z:/home/hacker/www" ScriptAlias /cgi/ "z:/home/hacker/cgi/" ErrorLog z:/home/hacker/error.log CustomLog z:/home/hacker/access.log common
</VirtualHost>
#----cracker <VirtualHost cracker>
ServerAdmin webmaster@cracker.ru ServerName cracker
DocumentRoot "z:/home/cracker/www" ScriptAlias /cgi/ "z:/home/cracker/cgi/" ErrorLog z:/home/cracker/error.log CustomLog z:/home/cracker/access.log common
</VirtualHost>
# Конец главного файла конфигурации Apache.
Приложение 2
Файл конфигурации
PHP php.ini
Приложение 2, которое вы видите перед собой, уважаемый читатель, включает полный перевод на русский язык комментариев внутри файла конфигурации PHP php.ini.
Директивы в листинге П2.1 полностью соответствуют рекомендациям по уста- новке PHP для Windows, представленным в части II книги. Впрочем, чтобы получить этот файл, мне понадобилось всего пара изменений в настройках PHP по умолчанию (настройки по умолчанию хранятся в файле php.inidist) — не то, что в случае с Apache.
Если вы установили PHP как модуль Apache, перед вами открываются дополнительные возможности: вы можете задавать значения некоторых директив прямо в файлах httpd.conf или .htaccess. В силу специфики синтаксиса файлов конфигурации Apache, для отделения имени директивы и ее значения нужно использовать пробел, а не знак =. Кроме того, имена директив PHP должны быть предварены префиксом php_. Например, директива из php.ini
auto_prepend_file=top.html
будет выглядеть в httpd.conf или .htaccess так:
php_auto_prepend_file top.html
Приведенного листинга с комментариями должно быть вполне достаточно для понимания роли большинства директив PHP. Именно поэтому я уделил им так мало страниц в частях IV и V данной книги. И все-таки, если у вас возникнут какие-то затруднения, их легко сможет разрешить документация, которую можно получить, например, с официального сайта PHP: http://www.php.net.
Листинг П2.1. Файл php.ini
[PHP]
;;;;;;;;;;;;;;;;;
; Об этом файле ;
Приложение 2. Файл конфигурации PHP php.ini |
537 |
;;;;;;;;;;;;;;;;;
;Этот файл содержит большинство установок PHP. Чтобы PHP смог его
;обнаружить, он должен называться 'php.ini'. Интерпретатор ищет файл в
;текущем каталоге, в случае неудачи — в каталоге, указанном в
;переменной окружения PHPRC, и, наконец, в каталоге, заданном при
;компиляции и сборке PHP (именно в таком порядке).
;В системе Windows путь, указанный при компиляции PHP,
;соответствует каталогу Windows (в большинстве случаев это
;c:\windows). Папка, в которой будет производиться поиск файла
;'php.ini', может быть также определена с использованием ключа –c
;командной строки.
;
;Синтаксис файла крайне прост. Пробельные символы (то есть, пробелы,
;символы табуляции и т. д.), строки, начинающиеся с точки с запятой (;)
;игнорируются (как вы, наверное, уже догадались). Заголовки секций
;(например, [Foo]) также пропускаются, но, возможно, будут учитываться
;в будущих версиях PHP.
;
;Директивы задаются примерно так:
;directive=value
;Имена директив чувствительны к регистру символов — foo=bar не то же
;самое, что FOO=bar.
;
;Значение value может быть строкой, числом, константой PHP (например,
;E_ALL или M_PI), одной из INI-констант (On, Off, True, False, Yes, No
;или None), выражением (например, E_ALL & ~E_NOTICE), а также строкой
;в кавычках ("foo").
;
;В выражениях могут использоваться только побитовые и логические
;операторы, а также скобки:
;| поразрядное ИЛИ (OR)
;& поразрядное И (AND)
;~ поразрядное НЕ (NOT)
;! логическое отрицание (NOT)
;
;В качестве логических флагов со значением "истина" могут быть
;использованы значения 1, On, True или Yes. Значение "ложь" дают 0, Off,
;False и No.
