• Конфигурирование Apache. Обзор конфигурации Apache в Ubuntu Почему вдруг слетели настройки конфигурационных файлов apache

    Linux-сервер своими руками Колисниченко Денис Николаевич

    12.2.2. Конфигурирование Apache с помощью netconf

    Практически все параметры Web-сервера Apache можно установить, используя конфигуратор netconf (или linuxconf). Для этого запустите netconf и перейдите на вкладку Server Tasks, а затем нажмите на кнопку «Apache Webserver» (см. рис. 12.2).

    Рис. 12.2. Конфигурирование Apache с помощью netconf

    С помощью netconf вы легко можете установить основные параметры Apache (см. рис. 12.3), определить виртуальные хосты, установить параметры подкаталогов, определить спецификацию каталогов и модулей, а также установить параметры модуля mod_ssl (см. рис. 12.4), конфигурирование которого рассмотрено ниже в этой главе.

    Рис. 12.3. Основные параметры Apache

    Рис. 12.4. Конфигурирование модуля mod_ssl

    Из книги Разгони свой сайт автора Мациевский Николай

    Из книги Linux для пользователя автора Костромин Виктор Алексеевич

    Конфигурируем Apache 2 Для Apache 2 описанные действия выглядят гораздо проще.# добавляем Content-Type для всех файлов с расширением.gzAddEncoding gzip .gz# включаем сжатие для HTML- и XML-файловAddOutputFilterByType DEFLATE text/htmlAddOutputFilterByType DEFLATE text/xml# и для иконок (об этом чуть ниже)AddOutputFilterByType DEFLATE image/x-icon#

    Из книги Linux-сервер своими руками автора

    Конфигурируем Apache Тесты под Konqueror показали, что этот браузер не понимает архивированных файлов (CSS и JavaScript), поэтому чтобы уберечь десятую долю процента посетителей от сердечного приступа (когда они увидят сайт без соответствующих стилей), стоит добавить его в этот набор

    Из книги Linux: Полное руководство автора Колисниченко Денис Николаевич

    Из книги Ubuntu 10. Краткое руководство пользователя автора Колисниченко Д. Н.

    Конфигурация Apache 2 # выставляем заголовок Content-Encoding: gzipAddEncoding gzip .gz# с самого начала включаем gzip для текстовых файловAddOutputFilterByType DEFLATE text/htmlAddOutputFilterByType DEFLATE text/xml# и для favicon.icoAddOutputFilterByType DEFLATE image/x-icon# также для CSS- и JavaScript-файловAddOutputFilterByType DEFLATE text/cssAddOutputFilterByType DEFLATE

    Из книги Linux глазами хакера автора Флёнов Михаил Евгеньевич

    13.2.6. Утилита netconf В предыдущих разделах я попытался подробно и последовательно изложить, каким образом можно настроить выход в сеть путем прямого редактирования конфигурационных файлов. Впрочем, настройки локальной сети можно производить и с помощью специальных утилит

    Из книги автора

    12 Сервер Apache Эта глава посвящена популярному WWW-серверу Apache. Сервер Apache разработан и поддерживается организацией Apache Project. Первоначально, сервер Apache был разновидностью сервера Web-сервера NCSA, разработанного в Национальном центре разработок суперкомпьютеров Иллинойского

    Из книги автора

    12.1. Установка Apache Для установки сервера Apache необходимо установить пакеты apache и apache-docs. В первом из них находится сам сервер, а во втором - документация. Желательно устанавливать самую новую версию. В последних версиях вам нужно установить еще и пакет apache-common, содержащий

    Из книги автора

    12.5. SSL и Apache 12.5.1. Установка SSL SSL (Secure Sockets Layer) является методом шифрования, разработанным компанией Netscape для обеспечения безопасности в Интернет. Этот метод поддерживает несколько способов шифрования и обеспечивает аутентификацию как на уровне клиента, так и на уровне

    Из книги автора

    12.5.2. Подключение SSL к Apache Теперь осталось подключить mod_ssl к Apache. При этом следует учитывать, что вам нужна версия mod_ssl, которая совместима с вашей версией Apache. Иначе модуль mod_ssl будет некорректно работать или вообще откажется что-либо делать. Последние цифры в названии

    Из книги автора

    16.1. Установка Apache В зависимости от дистрибутива, пакет, из которого устанавливается веб-сервер Apache, может называться apache или httpd, а пакет с документацией - apache-docs или httpd-manual соответственно. В первом случае вам понадобится установить еще пакет apache-common, содержащий

    Из книги автора

    16.10. SSL и Apache 16.10.1. Установка SSL SSL (Secure Sockets Layer) является методом шифрования, разработанным компанией Netscape для обеспечения безопасности передачи данных. Этот метод поддерживает несколько методов шифрования и обеспечивает аутентификацию как на уровне клиента, так и на

    Из книги автора

    16.10.2. Подключение SSL к Apache Версия mod_ssl, которую вам нужно установить, должна быть совместима с вашей версией Apache, иначе модуль mod_ssl будет некорректно работать или вообще откажется что-либо делать. Последние цифры в названии модуля указывают на совместимость с определенной

    Из книги автора

    16.13. Защита сервера Apache По окончании настройки сервера запретим изменение и удаление файла конфигурации:# chattr +i /etc/httpd/conf/httpd.confПосле этого вы (и никто другой) не сможете изменить этот файл даже с помощью конфигуратора.Желательно также установить права 511 для

    Из книги автора

    26.2.1. Установка Apache и PHP Запустите менеджер Synaptic. В поле Быстрый поиск введите apache. Щелкните правой кнопкой мыши на пакете apache2 и выберите команду Отметить для установки. Менеджер пакетов сообщит вам, что нужно установить дополнительные пакеты (рис. 26.1). Нажмите кнопку

    Из книги автора

    5.1.1. netconf Эта команда запускает конфигуратор сети (рис. 5.1). Программа netconf имеет удобный графический интерфейс и позволяет настраивать сетевые параметры, не задумываясь о конфигурационных файлах. Рис. 5.1. Окно программы

    Для конфигурации Apache есть 4 основных подхода:

    1. Компиляция / инсталляция: сборка из исходников позволяет выбрать необходимые модули, установить нужные флаги, пути и т. д.
    2. Параметры командной строки: позволяют конфигурировать Apache при запуске.
    3. Глобальные конфигурационные файлы: главный файл по умолчанию называется httpd.conf.
    4. Локальные конфигурационные файлы: использование.htaccess.

    Конфигурационные директивы в файле httpd.conf можно разбить на 3 категории:

    1. Директивы, контролирующие общий процесс работы.
    2. Директивы виртуальных хостов.
    3. Настройки виртуальных хостов.

    К директивам первой группы относятся , , , , , .

    Они применяются в привязке к конкретной файловой структуре либо к URL. В первом случае это , во втором - . Apache может обслуживать одновременно несколько веб-сайтов с различными именами, реализуя виртуальный хостинг, что делается на основе директивы . Для того, чтобы изменения в главном конфиге вступили в силу, сервер должен быть перезапущен.

    Локальная конфигурация реализована на основе.htaccess. Имя этого файла можно изменить в секции AccessFileName. Изменения в файле.htaccess вступают в силу немедленно, без перезапуска, его действие распространяется на каталог, в котором он лежит, со всеми вложенными подкаталогами. Избыточное использование.htaccess может повлиять на производительность сервера.

    Содержимое основного конфига httpd.conf можно разделить на 5 секций:

    1. Глобальные директивы.
    2. - применимы к выиртуальным серверам.
    3. , - применимы к каталогам.
    4. , - применимы к файлам.
    5. , - применимы к URL.

    Директива может иметь несколько параметров, тип параметров может различаться.

    Каждая директива обрабатывается определенным модулем.

    Например, директива

    Следующая директива будет обработана модулем mod_env, будет установлена переменная окружения:



    Содержимое локального файла.htaccess можно разделить также на 5 секций:

    1. AuthConfig - контроль авторизации.
    2. Limits - контроль доступа.
    3. Options - конкретные настройки каталогов.
    4. FileInfo - установка атрибутов для документов.
    5. Indexes - индексация каталогов.

    В Ubuntu apache находится по адресу /etc/apache2 и, помимо конфигурационных файлов, содержит директории "sites-available" и "sites-enabled". В первой директории находится список сайтов, которые доступны на сервере, а во второй - те, которые обслуживаются сервером. Это дает возможность быстро добавлять и удалять сайты, которые будут обслуживаться сервером, без необходимости физически удалять их из DocumentRoot. В дополнение к этому другие файлы настроек могут быть добавлены с использованием инструкции Include, а символы группировок могут использоваться для включения множества файлов настроек. Любая инструкция может быть добавлена в любой из этих файлов настроек. Сервер также читает файлы, содержащие типы mime документов; имя файла задается инструкцией TypesConfig, обычно через /etc/apache2/mods-available/mime.conf, который также может включать дополнения и переопределения, а по умолчанию используется /etc/mime.types.

    httpd.conf - конфигурация сервера Apache

    Apache настраивается путем размещения директив в обычные текстовые файлы конфигурации. Основной конфигурационный файл сервера Apache - httpd.conf .
    С помощью директивы Include могут быть добавлены другие конфигурационные файлы. Любая директива может быть установлена в любом из этих файлов конфигурации.
    Apache 2.4 конфигурируется файлами находящимися в подкаталоге (по умолчанию) - conf (C:\Program Files\Apache Software Foundation\Apache2.4\conf\). Это - те же самые файлы, что и для конфигурирования на OS Unix, но есть несколько директив специально предназначенных для Windows.

    Главный файл конфигурации сервера Apache HTTP 2.4 обычно называется - httpd.conf .

    Он содержит директивы и параметры, управляющие работой Web-сервера, виртуальных серверов, а также всех программных модулей Apache 2.4. . Apache - модульный сервер. Это означает, что только самые основные функциональные возможности включены в основной сервер. Расширение функций, доступно при помощи динамически загружаемых модулей. Файлы конфигурации содержат одну директиву в строке. Наклонная черта влево "\" может использоваться как последний символ в строке, для указания того, что директива продолжается на следующую строку. Не должно быть никаких других символов или пробелов между наклонной чертой влево и концом строки. Директивы в файлах конфигурации нечувствительны к регистру, но аргументы директив - часто чувствительны. Строки, которые начинаются с символа "#", считают комментариями, и игнорируется. Комментарии не могут быть включены в строку после директивы конфигурации. Пустые строки и пробелы, перед директивой игнорируются.

    Директива - команда конфигурации, которая контролирует один или несколько аспектов поведения сервера Apache.
    Директивы, размещенные в основных файлах конфигурации, относятся ко всему серверу .

    Для проверки файлов конфигурации на синтаксические ошибки, используется команда httpd.exe -t .

    При установке Apache 2.4 были введены:

    В Network Domain (Сетевой Домен) - server-apache24.ru
    в Server Name (Имя сервера) - www.server-apache24.ru
    в Administrator"s Email Adress (Почтовый Адрес Администратора) - [email protected]

    Следовательно, server-apache24.ru - будет именем главного сайта сервера Apache.

    Главный сайт сервера Apache конфигурируется в файле - httpd.conf .

    Внесение изменений в файл конфигурации сервера Apache - httpd.conf

    Для обращения к главному сайту сервера Apache по доменному имени - server-apache24.ru , создайте на диске каталог - C:\server-apache24.ru

    server-apache24.ru

    • C:\server-apache24.ru
      • logs
        • access.log
        • error.log
      • www
        • index.html

    каталог server-apache24.ru

    В корне диска C: нужно создать каталог server-apache24.ru
    В нём обязательно должны быть папки:
    logs с "пустыми" файлами access.log и error.log
    и
    www с файлом index.html

    См. в файле httpd.conf строки -
    209 ServerAdmin [email protected]
    218 ServerName www.server-apache24.ru:80
    243 DocumentRoot "C:/server-apache24.ru/www"
    245

    httpd.conf - конфигурирование сервера Apache 2.4

    httpd.conf .
    Действие директив главного файла конфигурации распространяется на весь сервер

    Все записи, за исключением выделенных красным цветом, должны быть закомментированы. Строки начинающиеся с символа "#" - это комментарии.

    # # This is the main Apache HTTP server configuration file. It contains the # configuration directives that give the server its instructions. # See for detailed information. # In particular, see # # for a discussion of each configuration directive. # # Do NOT simply read the instructions in here without understanding # what they do. They"re here only as hints or reminders. If you are unsure # consult the online docs. You have been warned. # # Configuration and logfile names: If the filenames you specify for many # of the server"s control files begin with "/" (or "drive:/" for Win32), the # server will use that explicit path. If the filenames do *not* begin # with "/", the value of ServerRoot is prepended -- so "logs/access_log" # with ServerRoot set to "/usr/local/apache2" will be interpreted by the # server as "/usr/local/apache2/logs/access_log", whereas "/logs/access_log" # will be interpreted as "/logs/access_log". # # NOTE: Where filenames are specified, you must use forward slashes # instead of backslashes (e.g., "c:/apache" instead of "c:\apache"). # If a drive letter is omitted, the drive on which httpd.exe is located # will be used by default. It is recommended that you always supply # an explicit drive letter in absolute paths to avoid confusion. # # ServerRoot: The top of the directory tree under which the server"s # configuration, error, and log files are kept. # # Do not add a slash at the end of the directory path. If you point # ServerRoot at a non-local disk, be sure to specify a local disk on the # Mutex directive, if file-based mutexes are used. If you wish to share the # same ServerRoot for multiple httpd daemons, you will need to change at # least PidFile. # ServerRoot "C:/Program Files/Apache Software Foundation/Apache2.4" # # Mutex: Allows you to set the mutex mechanism and mutex file directory # for individual mutexes, or change the global defaults # # Uncomment and change the directory if mutexes are file-based and the default # mutex file directory is not on a local disk or is not appropriate for some # other reason. # # Mutex default:logs # # Listen: Allows you to bind Apache to specific IP addresses and/or # ports, instead of the default. See also the # directive. # # Change this to Listen on specific IP addresses as shown below to # prevent Apache from glomming onto all bound IP addresses. # #Listen 12.34.56.78:80 Listen 80 # # Dynamic Shared Object (DSO) Support # # To be able to use the functionality of a module which was built as a DSO you # have to place corresponding `LoadModule" lines at this location so the # directives contained in it are actually available _before_ they are used. # Statically compiled modules (those listed by `httpd -l") do not need # to be loaded here. # # Example: # LoadModule foo_module modules/mod_foo.so # LoadModule access_compat_module modules/mod_access_compat.so LoadModule actions_module modules/mod_actions.so LoadModule alias_module modules/mod_alias.so LoadModule allowmethods_module modules/mod_allowmethods.so LoadModule asis_module modules/mod_asis.so LoadModule auth_basic_module modules/mod_auth_basic.so #LoadModule auth_digest_module modules/mod_auth_digest.so #LoadModule authn_anon_module modules/mod_authn_anon.so LoadModule authn_core_module modules/mod_authn_core.so #LoadModule authn_dbd_module modules/mod_authn_dbd.so #LoadModule authn_dbm_module modules/mod_authn_dbm.so LoadModule authn_file_module modules/mod_authn_file.so #LoadModule authn_socache_module modules/mod_authn_socache.so #LoadModule authnz_ldap_module modules/mod_authnz_ldap.so LoadModule authz_core_module modules/mod_authz_core.so #LoadModule authz_dbd_module modules/mod_authz_dbd.so #LoadModule authz_dbm_module modules/mod_authz_dbm.so LoadModule authz_groupfile_module modules/mod_authz_groupfile.so LoadModule authz_host_module modules/mod_authz_host.so #LoadModule authz_owner_module modules/mod_authz_owner.so LoadModule authz_user_module modules/mod_authz_user.so LoadModule autoindex_module modules/mod_autoindex.so #LoadModule buffer_module modules/mod_buffer.so #LoadModule cache_module modules/mod_cache.so #LoadModule cache_disk_module modules/mod_cache_disk.so #LoadModule cern_meta_module modules/mod_cern_meta.so LoadModule cgi_module modules/mod_cgi.so #LoadModule charset_lite_module modules/mod_charset_lite.so #LoadModule data_module modules/mod_data.so #LoadModule dav_module modules/mod_dav.so #LoadModule dav_fs_module modules/mod_dav_fs.so #LoadModule dav_lock_module modules/mod_dav_lock.so #LoadModule dbd_module modules/mod_dbd.so #LoadModule deflate_module modules/mod_deflate.so LoadModule dir_module modules/mod_dir.so #LoadModule dumpio_module modules/mod_dumpio.so LoadModule env_module modules/mod_env.so #LoadModule expires_module modules/mod_expires.so #LoadModule ext_filter_module modules/mod_ext_filter.so #LoadModule file_cache_module modules/mod_file_cache.so #LoadModule filter_module modules/mod_filter.so #LoadModule headers_module modules/mod_headers.so #LoadModule heartbeat_module modules/mod_heartbeat.so #LoadModule heartmonitor_module modules/mod_heartmonitor.so #LoadModule ident_module modules/mod_ident.so LoadModule imagemap_module modules/mod_imagemap.so LoadModule include_module modules/mod_include.so #LoadModule info_module modules/mod_info.so LoadModule isapi_module modules/mod_isapi.so #LoadModule lbmethod_bybusyness_module modules/mod_lbmethod_bybusyness.so #LoadModule lbmethod_byrequests_module modules/mod_lbmethod_byrequests.so #LoadModule lbmethod_bytraffic_module modules/mod_lbmethod_bytraffic.so #LoadModule lbmethod_heartbeat_module modules/mod_lbmethod_heartbeat.so #LoadModule ldap_module modules/mod_ldap.so #LoadModule logio_module modules/mod_logio.so LoadModule log_config_module modules/mod_log_config.so #LoadModule log_debug_module modules/mod_log_debug.so #LoadModule log_forensic_module modules/mod_log_forensic.so #LoadModule lua_module modules/mod_lua.so LoadModule mime_module modules/mod_mime.so #LoadModule mime_magic_module modules/mod_mime_magic.so LoadModule negotiation_module modules/mod_negotiation.so #LoadModule proxy_module modules/mod_proxy.so #LoadModule proxy_ajp_module modules/mod_proxy_ajp.so #LoadModule proxy_balancer_module modules/mod_proxy_balancer.so #LoadModule proxy_connect_module modules/mod_proxy_connect.so #LoadModule proxy_express_module modules/mod_proxy_express.so #LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so #LoadModule proxy_ftp_module modules/mod_proxy_ftp.so #LoadModule proxy_html_module modules/mod_proxy_html.so #LoadModule proxy_http_module modules/mod_proxy_http.so #LoadModule proxy_scgi_module modules/mod_proxy_scgi.so #LoadModule ratelimit_module modules/mod_ratelimit.so #LoadModule reflector_module modules/mod_reflector.so #LoadModule remoteip_module modules/mod_remoteip.so #LoadModule request_module modules/mod_request.so #LoadModule reqtimeout_module modules/mod_reqtimeout.so #LoadModule rewrite_module modules/mod_rewrite.so #LoadModule sed_module modules/mod_sed.so #LoadModule session_module modules/mod_session.so #LoadModule session_cookie_module modules/mod_session_cookie.so #LoadModule session_crypto_module modules/mod_session_crypto.so #LoadModule session_dbd_module modules/mod_session_dbd.so LoadModule setenvif_module modules/mod_setenvif.so #LoadModule slotmem_plain_module modules/mod_slotmem_plain.so #LoadModule slotmem_shm_module modules/mod_slotmem_shm.so #LoadModule socache_dbm_module modules/mod_socache_dbm.so #LoadModule socache_memcache_module modules/mod_socache_memcache.so #LoadModule socache_shmcb_module modules/mod_socache_shmcb.so #LoadModule speling_module modules/mod_speling.so #LoadModule ssl_module modules/mod_ssl.so #LoadModule status_module modules/mod_status.so #LoadModule substitute_module modules/mod_substitute.so #LoadModule unique_id_module modules/mod_unique_id.so LoadModule userdir_module modules/mod_userdir.so #LoadModule usertrack_module modules/mod_usertrack.so #LoadModule version_module modules/mod_version.so #LoadModule vhost_alias_module modules/mod_vhost_alias.so #LoadModule watchdog_module modules/mod_watchdog.so #LoadModule xml2enc_module modules/mod_xml2enc.so # После установки PHP уберите комментарии со строк Load, Add, PHP #LoadModule php7_module "c:/php7/php7apache2_4.dll" #AddHandler application/x-httpd-php .php # configure the path to php.ini #PHPIniDir "c:/php7" # # If you wish httpd to run as a different user or group, you must run # httpd as root initially and it will switch. # # User/Group: The name (or #number) of the user/group to run httpd as. # It is usually good practice to create a dedicated user and group for # running httpd, as with most system services. # User daemon Group daemon # "Main" server configuration # # The directives in this section set up the values used by the "main" # server, which responds to any requests that aren"t handled by a # definition. These values also provide defaults for # any containers you may define later in the file. # # All of these directives may appear inside containers, # in which case these default settings will be overridden for the # virtual host being defined. # # # ServerAdmin: Your address, where problems with the server should be # e-mailed. This address appears on some server-generated pages, such # as error documents. e.g. [email protected] # ServerAdmin [email protected] # # ServerName gives the name and port that the server uses to identify itself. # This can often be determined automatically, but we recommend you specify # it explicitly to prevent problems during startup. # # If your host doesn"t have a registered DNS name, enter its IP address here. # ServerName www.server-apache24.ru:80 # # Deny access to the entirety of your server"s filesystem. You must # explicitly permit access to web content directories in other # blocks below. # AllowOverride none Require all denied # # Note that from this point forward you must specifically allow # particular features to be enabled - so if something"s not working as # you might expect, make sure that you have specifically enabled it # below. # # # DocumentRoot: The directory out of which you will serve your # documents. By default, all requests are taken from this directory, but # symbolic links and aliases may be used to point to other locations. # # DocumentRoot "C:/Program Files/Apache Software Foundation/Apache2.4/htdocs" было DocumentRoot "C:/server-apache24.ru/www" # было # # Possible values for the Options directive are "None", "All", # or any combination of: # Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews # # Note that "MultiViews" must be named *explicitly* --- "Options All" # doesn"t give it to you. # # The Options directive is both complicated and important. Please see # //httpd.apache.org/docs/2.4/mod/core.html#options # for more information. # # Options Indexes FollowSymLinks было Options Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews # # AllowOverride controls what directives may be placed in .htaccess files. # It can be "All", "None", or any combination of the keywords: # AllowOverride FileInfo AuthConfig Limit # # AllowOverride None было AllowOverride All # # Controls who can get stuff from this server. # Require all granted AddHandler server-parsed .shtml .shtm .html .htm # # DirectoryIndex: sets the file that Apache will serve if a directory # is requested. # DirectoryIndex index.html # # The following lines prevent .htaccess and .htpasswd files from being # viewed by Web clients. # Require all denied # # ErrorLog: The location of the error log file. # If you do not specify an ErrorLog directive within a # container, error messages relating to that virtual host will be # logged here. If you *do* define an error logfile for a # container, that host"s errors will be logged there and not here. # # ErrorLog "logs/error.log" было ErrorLog c:/server-apache24.ru/logs/error.log # # LogLevel: Control the number of messages logged to the error_log. # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. # LogLevel warn # # The following directives define some format nicknames for use with # a CustomLog directive (see below). # LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined LogFormat "%h %l %u %t \"%r\" %>s %b" common # You need to enable mod_logio.c to use %I and %O LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio # # The location and format of the access logfile (Common Logfile Format). # If you do not define any access logfiles within a # container, they will be logged here. Contrariwise, if you *do* # define per- access logfiles, transactions will be # logged therein and *not* in this file. # # CustomLog "logs/access.log" common было CustomLog c:/server-apache24.ru/logs/access.log common # # If you prefer a logfile with access, agent, and referer information # (Combined Logfile Format) you can use the following directive. # #CustomLog "logs/access.log" combined # # Redirect: Allows you to tell clients about documents that used to # exist in your server"s namespace, but do not anymore. The client # will make a new request for the document at its new location. # Example: # Redirect permanent /foo //www.server-apache24.ru/bar # # Alias: Maps web paths into filesystem paths and is used to # access content that does not live under the DocumentRoot. # Example: # Alias /webpath /full/filesystem/path # # If you include a trailing / on /webpath then the server will # require it to be present in the URL. You will also likely # need to provide a section to allow access to # the filesystem path. # # ScriptAlias: This controls which directories contain server scripts. # ScriptAliases are essentially the same as Aliases, except that # documents in the target directory are treated as applications and # run by the server when requested rather than as documents sent to the # client. The same rules about trailing "/" apply to ScriptAlias # directives as to Alias. # # ScriptAlias /cgi-bin/ "C:/Program Files/Apache Software Foundation/Apache2.4/cgi-bin/" было ScriptAlias /cgi-bin/ "C:/server-apache24.ru/cgi-bin/" # # ScriptSock: On threaded servers, designate the path to the UNIX # socket used to communicate with the CGI daemon of mod_cgid. # #Scriptsock cgisock # # "C:/Program Files/Apache Software Foundation/Apache2.4/cgi-bin" should be changed to whatever your ScriptAliased # CGI directory exists, if you have that configured. # # AllowOverride None Options None Require all granted # # TypesConfig points to the file containing the list of mappings from # filename extension to MIME-type. # TypesConfig conf/mime.types # # AddType allows you to add to or override the MIME configuration # file specified in TypesConfig for specific file types. # #AddType application/x-gzip .tgz # # AddEncoding allows you to have certain browsers uncompress # information on the fly. Note: Not all browsers support this. # #AddEncoding x-compress .Z #AddEncoding x-gzip .gz .tgz # # If the AddEncoding directives above are commented-out, then you # probably should define those extensions to indicate media types: # AddType application/x-compress .Z AddType application/x-gzip .gz .tgz AddType application/x-httpd-php .php # # AddHandler allows you to map certain file extensions to "handlers": # actions unrelated to filetype. These can be either built into the server # or added with the Action directive (see below) # # To use CGI scripts outside of ScriptAliased directories: # (You will also need to add "ExecCGI" to the "Options" directive.) # #AddHandler cgi-script .cgi AddHandler cgi-script .cgi .pl # For type maps (negotiated resources): #AddHandler type-map var # # Filters allow you to process content before it is sent to the client. # # To parse .shtml files for server-side includes (SSI): # (You will also need to add "Includes" to the "Options" directive.) # AddType text/html .shtml AddOutputFilter INCLUDES .shtml # # The mod_mime_magic module allows the server to use various hints from the # contents of the file itself to determine its type. The MIMEMagicFile # directive tells the module where the hint definitions are located. # #MIMEMagicFile conf/magic # # Customizable error responses come in three flavors: # 1) plain text 2) local redirects 3) external redirects # # Some examples: #ErrorDocument 500 "The server made a boo boo." #ErrorDocument 404 /missing.html #ErrorDocument 404 "/cgi-bin/missing_handler.pl" #ErrorDocument 402 //www.server-apache24.ru/subscription_info.html ErrorDocument 404 C:/server-apache24.ru/www/404error.html ErrorDocument 500 C:/server-apache24.ru/www/500error.html # # MaxRanges: Maximum number of Ranges in a request before # returning the entire resource, or one of the special # values "default", "none" or "unlimited". # Default setting is to accept 200 Ranges. #MaxRanges unlimited # # EnableMMAP and EnableSendfile: On systems that support it, # memory-mapping or the sendfile syscall may be used to deliver # files. This usually improves server performance, but must # be turned off when serving from networked-mounted # filesystems or if support for these functions is otherwise # broken on your system. # Defaults: EnableMMAP On, EnableSendfile Off # #EnableMMAP off #EnableSendfile on # Supplemental configuration # # The configuration files in the conf/extra/ directory can be # included to add extra features or to modify the default configuration of # the server, or you may simply copy their contents here and change as # necessary. # Server-pool management (MPM specific) #Include conf/extra/httpd-mpm.conf # Multi-language error messages Include conf/extra/httpd-multilang-errordoc.conf # Fancy directory listings Include conf/extra/httpd-autoindex.conf # Language settings Include conf/extra/httpd-languages.conf # User home directories Include conf/extra/httpd-userdir.conf # Real-time info on requests and configuration #Include conf/extra/httpd-info.conf # Virtual hosts Include conf/extra/httpd-vhosts.conf # Local access to the Apache HTTP Server Manual #Include conf/extra/httpd-manual.conf # Distributed authoring and versioning (WebDAV) #Include conf/extra/httpd-dav.conf # Various default settings Include conf/extra/httpd-default.conf # Configure mod_proxy_html to understand HTML4/XHTML1 Include conf/extra/proxy-html.conf # Secure (SSL/TLS) connections #Include conf/extra/httpd-ssl.conf # # Note: The following must must be present to support # starting without SSL on platforms with no /dev/random equivalent # but a statically compiled-in mod_ssl. # SSLRandomSeed startup builtin SSLRandomSeed connect builtin # # uncomment out the below to deal with user agents that deliberately # violate open standards by misusing DNT (DNT *must* be a specific # end-user choice) # # #BrowserMatch "MSIE 10.0;" bad_DNT # # #RequestHeader unset DNT env=bad_DNT #


    Изменения .
    Команда - httpd.exe -k restart , позволяет завершить любые выполняемые сервером Apache операции и вынуждает Apache перечитать конфигурационный файл.


    Поиск и устранение ошибок при установке сервера Apache

    Apache поставляется с утилитой под названием Apache Service Monitor. С её помощью вы можете увидеть и управлять состоянием всех установленных служб Apache на любом компьютере в сети.

    Перезапуск Apache 2.4

    Так как изменения в основных конфигурационных файлах вступят в силу только при запуске или перезагрузке сервера Apache ,
    нужно перезапустить сервер.

    ApacheMonitor

    Значок ApacheMonitor можно увидеть нажав на кнопку - отображать скрытые значки

    Дважды щелкните левой кнопкой мыши на значке Apache Service Monitor .

    Пезапустить сервер Apache можно нажав на кнопку Restart
    в окне программы Apache Service Monitor.
    Или - Stop и затем - Start .

    Если вы внесли изменения только в файл httpd.conf,

    то введя в адресную строку браузера - localhost или - 127.0.0.1 ,
    вы увидите страницу - Ошибка 403 (Error 403) .

    Access forbidden!

    You don"t have permission to access the requested directory. There is either no index document or the directory is read-protected.
    If you think this is a server error, please contact the webmaster.

    Error 403

    127.0.0.1
    Apache/2.4.4 (Win64)

    Доступ запрещен!

    У вас нет разрешения на доступ к запрошенному каталогу. Отсутствует индексный документ или каталог защищен от чтения.
    Если вы считаете, что это ошибка сервера, обратитесь к веб-мастеру.

    Ошибка 403

    Войдите с правами администратора в командную строку - Администратор - Командная строка
    и введите:
    "C:\Program Files\Apache Software Foundation\Apache2.4\bin\httpd.exe" 2> C:\errapache.txt

    Microsoft Windows (c) Корпорация Майкрософт (Microsoft Corporation), 2016. Все права защищены. C:\Windows\system32>"C:\Program Files\Apache Software Foundation\Apache2.4\bin\httpd.exe" 2> C:\errapache.txt C:\Windows\system32>

    На диске C:/ будет создан файл errapache.txt


    AH00112: Warning: DocumentRoot does not exist AH00112: Warning: DocumentRoot does not exist (OS 10048) Обычно разрешается только одно использование адреса сокета (протокол/сетевой адрес/порт). : AH00072: make_sock: could not bind to address [::]:80 (OS 10048) Обычно разрешается только одно использование адреса сокета (протокол/сетевой адрес/порт). : AH00072: make_sock: could not bind to address 0.0.0.0:80 AH00451: no listening sockets available, shutting down AH00015: Unable to open logs

    AH00112: Предупреждение (Warning):
    C:/Program Files/Apache Software Foundation/Apache2.4/docs/dummy-host.server-apache24.ru
    C:/Program Files/Apache Software Foundation/Apache2.4/docs/dummy-host2.server-apache24.ru
    Они не существуют (does not exist) .

    Но главное - это ошибки OS 10048:

    не удалось привязать к адресу [::]:80 (could not bind to address [::]:80)
    не удалось привязать к адресу 0.0.0.0:80 (could not bind to address 0.0.0.0:80)

    Войдите в командную строку и введите:
    netstat -aon

    Администратор: Командная строка

    Microsoft Windows (c) Корпорация Майкрософт (Microsoft Corporation), 2016. Все права защищены. C:\Windows\system32>netstat -aon Активные подключения Имя Локальный адрес Внешний адрес Состояние PID TCP 0.0.0.0:80 0.0.0.0:0 LISTENING 1612 TCP [::]:80 [::]:0 LISTENING 1612 TCP 127.0.0.1:49693 127.0.0.1:49694 ESTABLISHED 5612 TCP 127.0.0.1:49694 127.0.0.1:49693 ESTABLISHED 5612 TCP 127.0.0.1:51341 0.0.0.0:0 LISTENING 3920 TCP 127.0.0.1:52006 0.0.0.0:0 LISTENING 3708 TCP 192.168.0.100:139 0.0.0.0:0 LISTENING 4 TCP 192.168.0.100:51330 34.226.135.28:443 ESTABLISHED 1232 TCP 192.168.0.100:51345 52.196.85.70:443 ESTABLISHED 1232 TCP 192.168.0.100:52796 88.212.253.127:21 ESTABLISHED 1128 TCP 192.168.0.100:53160 151.101.112.134:443 CLOSE_WAIT 3712 TCP 192.168.0.100:53161 151.101.112.134:443 CLOSE_WAIT 3712 TCP 192.168.0.100:53162 151.101.128.134:443 CLOSE_WAIT 3712 TCP 192.168.0.100:53176 151.101.112.134:443 ESTABLISHED 3712 TCP 192.168.0.100:53179 151.101.128.233:443 CLOSE_WAIT 3712 TCP 192.168.0.100:53192 151.101.112.64:443 CLOSE_WAIT 3712 TCP 192.168.0.100:53223 23.61.217.175:443 CLOSE_WAIT 3712 TCP 192.168.0.100:53230 185.29.133.52:443 CLOSE_WAIT 3712 TCP 192.168.0.100:53246 2.18.74.149:443 CLOSE_WAIT 3712 TCP 192.168.0.100:53271 52.205.235.141:443 ESTABLISHED 5236 C:\Windows\system32>

    Идентификатор процесса, более известный как идентификатор PID - это уникальный номер. Каждый процесс, запущенный в системе имеет уникальный идентификатор.
    TCP 0.0.0.0:80 0.0.0.0:0 LISTENING 1612
    TCP [::]:80 [::]:0 LISTENING 1612

    Откройте Диспетчер задач

    Только служба Apache2.4 имеет идентификатор PID - 1612

    В каталоге C:/Program Files/Apache Software Foundation/Apache2.4/conf/extra/
    откройте в Блокноте файл - httpd-vhosts.conf

    Прежде чем вносить какие-либо изменения, сделайте резервную копию файла - httpd-vhosts.conf .

    Замените в секциях VirtualHost
    на

    httpd-vhosts.conf - содержание файла конфигурации сервера Apache 2.4

    # Virtual Hosts # # Required modules: mod_log_config # If you want to maintain multiple domains/hostnames on your # machine you can setup VirtualHost containers for them. Most configurations # use only name-based virtual hosts so the server doesn"t need to worry about # IP addresses. This is indicated by the asterisks in the directives below. # # Please see the documentation at #

    В каталоге C:\Windows\System32\drivers\etc\
    откройте в Блокноте файл - hosts
    И добавьте в него строку:

    127.0.0.1 localhost www.server-apache24.ru server-apache24.ru

    Пезапустите сервер Apache, нажав на кнопку Restart
    в Apache Service Monitor.

    Введите в адресную строку браузера - server-apache24.ru
    и увидите, созданную вами, индексную страницу главного сайта сервера Apache2.4

    Индексная страница сайта должна находиться в подкаталоге www (C:\server-apache24.ru\www\)

    После установки сервера Apache 2.4 войдите в командную строку и введите команды:

    httpd.exe -t

    Будет получено два предупреждения.

    Администратор: Командная строка

    Microsoft Windows (c) Корпорация Майкрософт (Microsoft Corporation), 2016. Все права защищены. C:\Windows\system32>cd C:\Program Files\Apache Software Foundation\Apache2.4\bin\ C:\Program Files\Apache Software Foundation\Apache2.4\bin>httpd.exe -t AH00112: Warning: DocumentRoot does not exist AH00112: Warning: DocumentRoot does not exist Syntax OK C:\Program Files\Apache Software Foundation\Apache2.4\bin>

    Apache HTTP Server, это - сложный программный продукт, работающий на разных платформах и в разных операционных системах по всему миру. Поэтому для корректной работы на установленной системе его необходимо настроить (сконфигурировать).
    По умолчанию настройки Apache расположены в файле httpd.conf в каталоге conf. Далее будут описаны основные директивы файла httpd.conf и их общеупотребительные значения.

    Редактирование файла httpd.conf

    1. Для загрузки модуля mod_rewrite найдите и раскомментируйте (уберите в начале строки символ "#") данную строку:
    LoadModule rewrite_module modules/mod_rewrite.so
    2. Для загрузки PHP интерпретатора, в конец блока загрузки модулей необходимо добавить строку:
    LoadModule php5_module "C:/php/php5apache2_2.dll"
    3. Определите каталог содержащий конфигурационный файл PHP, добавив ниже следующую строку:
    PHPIniDir "C:/php"
    4. Найдите и раскомментируйте строку:
    ServerName localhost:80
    5. Найдите строку:
    DocumentRoot "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs"
    Назначьте корневую директорию управления сайтами (немного раньше вы ее уже создали):
    DocumentRoot "C:/apache"
    6. Найдите данный блок:

    Options FollowSymLinks
    AllowOverride None
    Order deny,allow
    Deny from all

    И замените его на нижеследующий:

    Options Includes Indexes FollowSymLinks
    AllowOverride All
    Allow from all

    7. Удалите или закомментируйте первоначальный блок управления директориями (он нам не понадобится), который без комментариев выглядит примерно так:

    Options Indexes FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all

    8. Найдите блок:

    DirectoryIndex index.html

    Замените его на:

    DirectoryIndex index.html index.htm index.shtml index.php

    9. Найдите строку:
    ErrorLog "logs/error.log"
    Замените на нижеследующую (в этом случае просматривать глобальный файл ошибок сервера будет удобнее):
    ErrorLog "C:/apache/error.log"
    10. Найдите строку:
    CustomLog "logs/access.log" common
    Замените на:
    CustomLog "C:/apache/access.log" common
    11. Для работы SSI (включения на стороне сервера) следующие строки, находящийся в блоке , необходимо найти и раскомментировать:
    AddType text/html .shtml
    AddOutputFilter INCLUDES .shtml
    12. Добавьте ниже, в тот же блок , две строки:
    AddType application/x-httpd-php .php
    AddType application/x-httpd-php-source .phps
    13. И, наконец, найдите и раскомментируйте строки:
    Include conf/extra/httpd-autoindex.conf
    Include conf/extra/httpd-vhosts.conf
    Include conf/extra/httpd-manual.conf
    Include conf/extra/httpd-default.conf
    Сохраните изменения и закройте файл "httpd.conf"

    Теперь откройте файл "httpd-vhosts.conf" находящийся в директории "conf\extra", и произведите в нём следующие изменения:

    Существующие блоки примеров виртуальных хостов необходимо закомментировать, либо удалить, и вставить нижеследующее:

    DocumentRoot "C:/apache/localhost/www"
    ServerName localhost
    ErrorLog "C:/apache/localhost/error.log"
    CustomLog "C:/apache/localhost/access.log" common

    Пример создания виртуального хоста

    При необходимости установки собственных виртуальных хостов сделайте следующее:

    Откройте файл "httpd-vhosts.conf", и создайте в нём блок, примерно, следующего содержания:

    # Папка, в которой будет корень вашего хоста.
    DocumentRoot "C:/apache/test.ru/www"
    # Домен по которому вы сможете обращаться к виртуальному хосту.
    ServerName test.ru
    # Алиас (добавочное имя) домена.
    ServerAlias www.test.ru
    # Файл, в который будут записываться ошибки.
    ErrorLog "C:/apache/test.ru/error.log"
    # Файл журнала доступа к хосту.
    CustomLog "C:/apache/test.ru/access.log" common

    Затем в каталоге "apache", создайте папку "test.ru" (прямо так, с точкой), в которой, в свою очередь, создайте папку "www".

    Следующий шаг создания виртуального хоста – это изменение файла C:\WINDOWS\system32\drivers\etc\hosts операционной системы. Откройте данный файл и добавьте в него две строки:
    127.0.0.1 test.ru
    127.0.0.1 www.test.ru

    Теперь перезапустите сервер Apache ярлыком "Restart", находящимся в меню "Start", откройте браузер, введите в адресной строке test.ru или www.test.ru и вы окажетесь в своем виртуальном хосте. Только будьте внимательны, теперь вы сможете попасть на оригинальный сайт с именем виртуального хоста (www.test.ru если таковой существует), только закомментировав либо удалив строку: 127.0.0.1 www.test.ru, в вышеупомянутом файле "hosts".

    Документация Apache, при запущенном сервере, доступна по адресу http://localhost/manual/

    Установка и настройка веб-сервера Apache – завершена.

    Создание пакетных файлов для запуска и остановки сервисов

    Согласитесь, что вручную редактировать файл "hosts" при каждом запуске сервисов – это не удобно, поэтому для более удобного, одновременного запуска сервисов Apache, MySQL, и изменения файла "hosts" мы создадим два пакетных файла: на запуск и остановку, которые будут выполнять всю рутинную работу автоматически.

    При использовании виртуальных хостов необходимо создать в директории C:\apache два файла: vhosts-off.txt – содержащий изначальное содержимое файла "hosts" и vhosts-on.txt – содержащий все виртуальные хосты. Обратите внимание, что при создании новых виртуальных хостов вам необходимо будет добавлять их в файл vhosts-on.txt, а не в C:\WINDOWS\system32\drivers\etc\hosts. Посмотрите на примеры ниже.

    Файл vhosts-off.txt (может содержать одну единственную строку):
    127.0.0.1 localhost

    Пример файла vhosts-on.txt с виртуальными хостами www.test.ru и test.ru:

    127.0.0.1 localhost
    127.0.0.1 www.test.ru
    127.0.0.1 test.ru

    В той же директории C:\apache, создайте два пакетных файла: start-webserver.bat – для запуска сервисов и подмены файла "hosts", и stop-webserver.bat – для остановки сервисов и очистки файла "hosts".

    Файл запуска start-webserver.bat:

    @echo off
    echo.
    if not exist C:\apache\vhosts-on.txt goto no_vhosts
    echo Create virtual hosts:
    copy /v /y C:\apache\vhosts-on.txt C:\WINDOWS\system32\drivers\etc\hosts
    echo.
    :no_vhosts
    NET start Apache2.2
    NET start MySQL

    Файл остановки stop-webserver.bat:

    @echo off
    echo.
    if not exist C:\apache\vhosts-off.txt goto no_vhosts
    echo Restore hosts file:
    copy /v /y C:\apache\vhosts-off.txt C:\WINDOWS\system32\drivers\etc\hosts
    echo.
    :no_vhosts
    NET stop Apache2.2
    NET stop MySQL

    В случае если вы не используете виртуальные хосты или хотите запустить сервисы без подмены файла "hosts", просто уберите из директории C:\apache файлы vhosts-on.txt и vhosts-off.txt.

    Понятия: конфигурирование, директивы. Конфигурационные файлы, директивы. Основные конфигурационные директивы. Серверные процессы. Контроль доступа к каталогам и файлам.

    Конфигурирование (лат. configuratio - взаимное расположение) - особый логико-методологический прием, мыслительная техника синтезирования разнопредматных знаний, различных представлений об одном и том же объекте.

    Директивы, ж. (от латин. directio - направление) . Общее руководящее указание, даваемое высшим органом подчиненному (сервером для рабочей станции и т.д.).

    Конфигурационный файл- файл с достаточно простым форматом. Каждая строка представляет собой ключевое слово и один или более аргументов. Для простоты большинство строк содержат только один аргумент. Всё, что следует за символом # является комментарием и игнорируется.

    Apache конфигурируется изменением служебных файлов в каталоге /etc/httpd/conf/. Главный конфигурационный файл веб-сервера -httpd.conf. Конфигурационные директивы могут размещаться в различных файлах, которые включают в основной конструкцией Include имя_файла.conf.

    Eсли размещение какого-либо файла или каталога в конфигурационном файле указано неявно (явное размещение начинается с корня файловой системы - с символа "/") Apache использует каталог, заданный в директиве ServerRoot для определения реального местоположения цели.

    Описание модулей и конфигурационных директив Apache

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

    A уровень конфигурации сервера - директива может быть использована только в главном конфигурационном файле.

    V уровень - директиву можно использовать по-разному для разных виртуальных хостов.

    D уровень - для любого каталога директивой этого уровня можно установить свои настройки.

    H уровень файлов.htaccess - директиву разрешено использовать в файлах.htaccess в местах, где они разрешены сервером.

    В любой точке использование в директиве параметра filename обозначает абсолютный (начинается с "/") или относительный от каталогаServerRoot путь к файлу.

    CORE - ядро веб-сервера (основной модуль Apache)

    AccessConfig filename

    Устанавливает расположение файла конфигурации. Системный файл конфигурации по умолчанию - conf/access.conf; для отмены чтения этого файла рекомендуется устанавливать /dev/null.

    AccessFileName file file ...

    Устанавливает имена файлов доступа, используемых для настройки конфигурации «на лету» по умолчанию - .htaccess.

    AddModule module module ... [A]

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

    AddModule module module ...

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

    AllowOverride param param ...

    Устанавливает правила, по которым Apache использует директивы внутренних файлов.htaccess;

    None - игнорирует;

    All - использует все директивы;

    Options - разрешает использовать Options и XBitHack;

    Indexes - директивы управления индексированием каталогов;

    FileInfo - директивы управления типами файлов и их обработчиками;

    AuthConfig - директивы доступа к каталогам Auth*;

    Limit - директивы allow/deny/order.

    AuthName realm

    AuthType type

    Используется для указания способа запроса и передачи имени пользователя и пароля для доступа к каталогам веб-сайтов. Чаще всего используют Basic, реже - Digest и другие.

    BindAddress address [A]

    Задаёт адрес, на котором Apache будет принимать соединения. Можно использовать имя хоста, IP-адрес или *.

    ClearModuleList [A]

    Директива очищает список загруженных модулей. После данной директивы нужно использовать директивы AddModule для работы с необходимыми модулями.

    ContentDigest on|off

    Включает или выключает пересылку MD5 хэша данных. Вычисляется для всех передаваемых страниц и не кешируется.

    CoreDumpDirectory dirname [A]

    Указывает Apache на каталог, в котором будут сохраняться файлы дампа памяти (core), создаваемые при аварийных ошибках.

    DefaultType mimetype

    Задаёт тип MIME, отправляемый клиентам, если Apache не может определить тип через файл mime.types или директивы AddType. По умолчанию установлен как text/plain.

    ...

    Объединяет группу директив, задающих поведение Apache при обращениях к документам, расположенным в данной директории. Разрешено использовать маски имён - символы *, ? по правилам shell. В случае использования маски перед именем помещается знак тильда ~.

    ...

    Определяет группу каталогов заданных регулярным выражением и устанавливает правила работы Apache с каталогами и файлами этой группы.

    DocumentRoot dirname

    Указывает серверу месторасположение корня дерева каталогов в ниже которого расположена структура данных веб-сервера.

    ErrorDocument filename|string|URL

    В случае ошибки делает редирект на указанные страницы. Также можно установить комментарий к возникшей ситуации, который должен начинаться с одной кавычки. Пример:

    ErrorDocument 500 http://foo.example.com/cgi-bin/tester

    ErrorDocument 404 /cgi-bin/bad_urls.pl

    ErrorDocument 401 /subscription_info.html

    ErrorDocument 403 "Sorry can"t allow you access today"

    ErrorLog filename

    Имя файла протокола ошибок. Если строка параметра начинается с (/), то путь к файлу нужно указывать от ServerRoot; если она начинается с (|), тогда сообщения ошибок передаются указанной команде на стандартный вход. В частности, таким образом, например, можно реализовать сохранение журнала сразу в SQL СУБД или сохранять их сразу сжатыми, передавая, для примера, на gzip. Apache версии 1.3 и выше по умолчанию выводит сообщения в syslog, если система поддерживает такую возможность; но это можно запретить используя syslog:facility.

    ...

    Контроль доступа к файлу. Разделы обрабатываются в том же порядке, что и в файле конфигурации, после того, как прочитаны разделы директивы и файлы.htaccess, но перед тем, как прочитаны разделы директории . Аргумент должен содержать имя фала или маску, в которой "?" - любой символ, "*" - любая строка. С дополнительным символом ~ могут использоваться расширенные рег. выражения (см REGULAR EXPRESSIONS секцию в grep(1)) Например: будет соответствовать общеиспользуемым в Internet графическим файлам.

    ...

    То же что и , но использует регулярные выражения.

    Имеет отношение только к запуску Apache и отфоркиванию процессов в окружении и с правами соответствующему данному имени.

    HostNameLookups on|off|double

    Управляет возможностью определения имени хоста посетителя по реверсному ДНС. Работает медленно и по умолчанию считается отключённой. Double указывает, что имя хоста должно быть подвергнуто дополнительной проверке на соответствие этого имени IP адресу отправившего запрос хоста.

    IdentityCheck on|off

    Включение RFC1413 аутентификации. Включение функции значительно увеличит время доступа к серверу.

    ...

    и должны быть выполнены только если данный параметр определён во внутренних структурах Apache. Предшествующий параметру знак [!] указывает, что блок директив будет прочтён только если параметр не определён.

    ...

    Указывает, что директивы, помещённые внутри блока, образованного парой директив и должны быть выполнены только если данный модуль откомпилирован в Apache. Предшествующий модулю знак [ !] указывает, что блок директив будет прочтён только если параметр не определён.

    Include filename [A]

    Директива позволяет включать файлы конфигурации в конфигурацию сервера.

    KeepAlive on|off [A]

    Разрешает клиенту последовательно запрашивать несколько файлов без разрыва TCP соединения.

    KeepAliveTimeout sec [A]

    Указывается время (в секундах) до разрыва TCP соединения, которое Apache будет ждать следующего запроса от клиента.

    ...

    Позволяет указывать к какому HTTP методу (например GET или POST) относятся помещённые внутрь ... команды ограничения доступа.

    Могут использоваться методы: GET, POST, PUT, DELETE, CONNECT, OPTIONS, TRACE, PATCH, PROPFIND, PROPPATCH, MKCOL, COPY, MOVE, LOCK, UNLOCK.

    Listen port [A]

    Заставляет Apache слушать указанные адреса и порты. Например, что бы заставить сервер слушать порты 80 и 8000, используйте:

    Чтобы Apache работал на разных интерфейсах с указанными номерами портов, используйте:

    Listen 192.170.2.1:80

    Listen 192.170.2.5:8000

    ListenBacklog length [A]

    Максимальная длина очереди обработки подключений.

    ...

    Подробности в apache-manual:)

    ...

    Подробности в apache-manual

    Lockfile filename [A]

    Директива устанавливает путь к lockfile.

    LogLevel emerg|alert|crit|error|warn|notice|info|debug

    Устанавливает уровень информативности протокола (лог-файла работы сервера). Рекомендуется использование по крайней мере уровня crit.

    MaxClients count [A]

    Директива устанавливает предел на число одновременных запросов к серверу. На самом деле, это число не может превышать число дочерних процессов сервера, которых по умолчанию не может быть более 256. Что бы исправить ситуацию редактируйте HARD_SERVER_LIMIT в httpd.h и компилируйте его.

    MaxKeepAliveRequest count [A]

    Разрешает клиенту последовательно запрашивать указанное число файлов без разрыва TCP соединения, если включена KeepAlive. Если параметр установлен в 0, то Apache будет разрывать соединение только учитывая параметр KeepAliveTimeout.

    MaxRequestsPerChild count [A]

    Директива устанавливает предел на числе запросов которые может обработать индивидуальный дочерний процесс. Если MaxRequestsPerChild установлена в 0, число запросов не ограничено.

    MaxSpareServers count [A]

    Директива устанавливает желательное максимальное число неактивных процессов сервера. Директива бесполезна если используется версия Apache для Microsoft Windows.

    MinSpareServers count [A]

    Директива устанавливает желательное минимальное число неактивных процессов сервера. Директива бесполезна если используется версия Apache для Microsoft Windows.

    NameVirtualHost port [A]

    Указывает, что запросы к данному порту-имени следует разделять по имени хоста к которому производится обращение (заголовок "Host:" HTTP). Позволяет определять несколько виртуальных хостов для одного IP адреса.

    Options param param ...

    Определяет установки действий Apache для указанного контента. Подробно все возможные установки описаны в apache-manual. Часто применяемые: Indexes - включает показ содержимого каталога если в нем не найден индексный файл (директива DirectoryIndex); ExecCGI - включает возможность размещения в данном каталоге исполняемых файлов (cgi, perl скриптов); Includes - включает возможность размещения в каталоге SSI файлов. Каждая установка поддерживается соответствующим модулем её использующим и может не действовать если нужный модуль не подгружен. Каждая директива Options считается дополняющей уже известные Options определённые для родительских каталогов. Каждая установка может сопровождаться префиксом + или - для её "включения-выключения" в данном контексте.

    PidFile filename [A]

    Директива устанавливает имя файла в который сервер записывает идентификатор процесса.

    Указывает Apache порт - число от 0 до 65535 (следует помнить, что некоторые порты могут использоваться другими протоколами, см. /etc/servises). Стандартный порт для http протокола - 80.

    require userid|groupid|valid-user|file-owner|group-owner [A]

    Определяет, какие пользователи имеют доступ к каталогу.

    Require user userid - только эти пользователи имеют доступ

    Require group имя-группы [имя-группы] - все пользователи этих групп

    Require valid-user - все адекватные пользователи.

    ResourceConfig filename [A]

    Сервер читает из этого файла дальнейшие директивы после прочтения httpd.conf. Имя файла задаётся относительно ServerRoot.Может быть отключена: ResourceConfig /dev/null

    RLimitCPU max|sec[ max|sec] [A]

    RLimitMEM max|bytes[ max|bytes] [A]

    RLimitNPROC max|count[ max|count] [A]

    Satisfy any|all [A]

    Определяет политику доступа, если одновременно используются Allow и Require. Используется в том случае, когда доступ к области ограничен именем/паролем и клиентским адресом. В этом случае по умолчанию ("all") требуется, чтобы клиент прошёл проверку по адресу и ввёл правильное имя и пароль. В случае параметра "any" клиент получит доступ если ввёл правильное имя и пароль или прошёл ограничение по хосту. Может использоваться, чтобы ограничить доступ через пароль, но пропустить клиентов с определённого адреса без пароля.

    ScoreBoardFile filename [A]

    Директива требуется для того, что бы указать имя файла, используемый сервером для связи между дочерними и материнскими процессами. Выяснить, требуется ли этот файл, можно запустив Apache и посмотрев, создал ли он файл с заданным именем. Если да, то нужно убедиться, что он используется только одной копией Apache.

    SendBufferSize bytes [A]

    Установит размер буфера TCP.

    ServerAdmin email

    Устанавливает email адрес, который сервер показывает клиенту в сообщения об ошибках.

    ServerAlias hostname

    Задаёт альтернативное виртуальное имя хоста.

    ServerName hostname

    Директива устанавливает имя сервера; используется в создании ссылок. Если имя не задано, сервер попытается получить его из собственного IP-адреса.

    ServerPath path

    Директива устанавливает унаследованное имя пути для хоста.

    ServerRoot path [A]

    Устанавливает каталог, в котором живёт сервер. Обычно содержит подкаталоги conf/ и logs/. Пути для других файлов конфигурации строится относительно этого каталога.

    ServerSignature on|ff|mail

    Конфигурирует строку внизу сгенерированного сервером документа. По умолчанию выключено, On - показывает версию сервера и ServerName виртуального хоста, Email добавляет ссылку mailto: на ServerAdmin

    ServerTokens Minimal|OS|Full [A]

    Контролирует заголовок, отсылаемый клиенту сервером с описанием ОС сервера и скомпилированных модулей.

    ServerType standalone|inetd [A]

    Определяет, как сервер запускается системой. inetd - запускается из системного процесса inetd. standalone - как daemon-процесс.

    StartServers count [A]

    Устанавливает число дочерних процессов, создаваемых при запуске. Число все равно динамически изменяется в зависимости от загрузки, обычно нет причин менять этот параметр.

    Время, которое Apache будет ждать: получения запроса GET, получение пакетов TCP на запросах POST и PUT, пауза между ACK"ами при передаче пакетов TCP в ответах.

    UseCanonicalName on|off

    Заставляет Apache генерировать названия страниц которые он создаёт используя значения SERVER_NAME с SERVER_PORT.

    User username

    Устанавливает userid, по которому сервер будет отвечать на запросы. Чтобы использовать директиву, сервер должен быть запущен как root.

    ... [A]

    Директивы, помещённые внутри блока, образованного парой директив и определяю конфигурацию заданного виртуального хоста. У каждого виртуального хоста должен быть уникальный IP-адрес, номер порта или имя хоста. Директиву имеет смысл использовать если, например, сервер имеет сетевой интерфейс для внутренней сети и ещё один интерфейс для внешней сети.

    mod_env - устанавливающий и передающий переменные для обработки в CGI/SSI файлы

    PassEnv variable[ variable] ...

    Передаёт переменную окружения (напр. HOME) обработчикам.

    SetEnv variable value

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

    UnsetEnv variable[ variable] ...

    Сбрасывает переменную, что делает невозможным её прочтение из обработчиков.

    mod_setenvif - использующий условные выражения для установки переменных окружения

    BrowserMatch regex env-variable[=value] ] ... [A]

    Использует переданное регулярное выражение как фильтр для заголовка User-Agent от броузера клиента. При удачном попадании инициализирует переменную данным значением. Если указано только имя переменной - она инициализируется числом 1. Если указана переменная с предшествующим знаком "!" - переменная сбрасывается.

    BrowserMatchNoCase regex env-variable[=value] ] ... [A]

    Действует аналогично BrowserMatch допуская различия в регистре символов переданного значения User-Agent и используемого в качестве фильтра регулярного выражения.

    SetEnvIf attribute regex env-variable[=value] ] ... [A]

    Выполняемое директивой действие полностью аналогично BrowserMatch, но вместо User-Agent может быть использован любой другой заголовок: Remote_Host; Remote_Addr; Remote_User; Request_Method; Request_URI; Referer

    SetEnvIfNoCase attribute regex env-variable[=value] ] ... [A]

    Отличие от SetEnvIf такое же как у BrowserMatchNoCase от BrowserMatch выше.

    mod_unique_id - генерирующий уникальную переменную окружения UNIQUE_ID

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

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

    mod_mime - предназначенный для определения mime типа файла при передачи его клиенту

    AddCharset charset extension ...

    Для указанных расширений файлов указывает Apache необходимость передачи данного charset при ответе клиенту.

    AddEncoding MIME-enc extension ...

    Для указанных расширений файлов указывает Apache возможность передачи файла с использованием нужной кодировки MIME.

    AddHandler handler-name extension ...

    Указывает Apache, что файлы с данными расширениями должны быть переданы конкретному обработчику. Обработчик может как внутренним (cgi-sript и другие), так и внешним, описанным ранее директивой Action.

    AddLanguage MIME-lang extension ...

    Устанавливает связь между расширениями файлов и передаваемым в ответе кодом языка.

    AddType MIME-type extension ...

    Дополняет таблицу MIME - типов новым соответствием расширений файлов и кода MIME для ответа клиенту.

    DefaultLanguage MIME-lang

    Устанавливает язык ответа передаваемый всегда, если это невозможно сделать другими средствами.

    ForceType MIME-type

    Форсирует ответ с данным MIME-типом в каталоге, к которому отнесена данная директива.

    RemoveEncoding extension ...

    Удаляет код MIME-кодировки в ответе для файлов с данными расширениями.

    RemoveHandler extension ...

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

    RemoveType extension ...

    Сбрасывает MIME-тип в ответе клиенту на тип MIME по умолчанию

    SetHandler handler

    Форсирует вызов данного обработчика для всех файлов к которым отнесена данная директива.

    TypesConfig filename [A]

    Указывает расположение таблицы соответствия MIME-типов. По умолчанию - conf.mime.types

    mod_mime_magic - модуль использующий сложные правила для определения MIME-типа передаваемого в ответе файла

    MimeMagicFile filename

    Активизирует действие модуля с использованием указанного файла на данную область документов веб-сервера или на все документы доступные Apache.

    mod_negotiation - обеспечивающий согласование передаваемых типов данных между клиентом и сервером

    CacheNegotiatedDocs [A]

    Разрешает кеширование документов с согласуемым содержимым на промежуточных прокси-серверах и компьютере клиента.

    LanguagePriority MIME-lang ... [A]

    Определяет приоритет языков используемых в ответе клиенту, когда точно не удаётся определить или найти затребованный клиентом язык документа.

    mod_alias - позволяющий располагать документы в каталогах веб-сервера более произвольным образом

    Alias URL-path filesystem-path

    Указывает Apache, что документы, расположенные "ниже" данного URL следует искать "ниже" данного расположения в файловой системе.

    AliasMatch URL-regexp filesystem-path

    Определяет более сложные правила поиска данных в файловой системе по результатам сравнения URL с регулярным выражением.

    Redirect URL-path URL

    В ответ на запрос URL-path и "ниже" расположенных документов возвращает указанный код ответа (302 по умолчанию) и перенаправляет клиента на другой URL. Статус может задаваться как число или символически: permanent (301), temp (302), seeother (303), gone (410). Для кода ответа 410 URL ответа должен быть опущен.

    RedirectMatch URL-regexp URL

    Аналогично Redirect, с использованием для сравнения переданного URL не точного соответствия а заданного регулярного выражения.

    RedirectTemp URL-path URL

    Аналогично Redirect с использованием кода ответа 302.

    RedirectPermanent URL-path URL

    Аналогично Redirect с использованием кода ответа 301.

    ScriptAlias URL-path filesystem-path

    Действует аналогично Alias но автоматически задаёт запуск cgi-handler обработчика для всех файлов внутри целевой директории.

    ScriptMatch URL-regexp filesystem-path

    Аналогично ScriptAlias, с проверкой URL регулярным выражением.

    mod_rewrite - управляющий расположением документов на сервере

    В кратком собрании описания директив Apache сложно описать задачи решаемые этим сложным модулем. Как руководство к действию лучше всего использовать специальные разделы apache-manual "Module mod_rewrite URL Rewriting Engine" и "URL Rewriting Guide". Обучиться использованию данного модуля проще всего рассматривая конкретные задачи и их решения с его использованием.

    Существует единственный основной (родительский) процесс, который ответственен за создание дочерних процессов, которые в свою очередь прислушиваются к связям и обрабатывают запросы клиента. Apache всегда пробует держать в запасе несколько неиспользуемых серверных процессов, которые готовы обработать поступающие запросы.Таким образом, клиенты не должны ждать создания новых дочерних процессов, которые будут разветвленны прежде, чем их запрос обслужится.Директивы StartServers, MinSpareServers, MaxSpareServers и MaxClients регулируют, как родительский процесс создает дочерние процессы, чтобы обслуживать запросы.

    Вообще, Apache очень автономен, таким образом для большинство web-сайтов нет необходимости изменения этих дирректив от значений по умолчанию (default).

    Для сайтов, которые должны обслуживать большее 256 одновременных запросов, возможно, следует увеличить MaxClients, а для сайтов, расположенных на серверах с ограниченной памятью, возможно, следует уменьшить значение MaxClients, чтобы не довести сервер до необходимости свапа памяти на диск (swapping memory to disk and back), что приведет к сильным замедлениям в работе.

    Выбор модулей - один из наиболее важных шагов в обеспечении хорошей защиты Apache Web server. Мы должны руководствоваться одним хорошим правилом: чем меньше, тем лучше. Чтобы задействовать нужные нам функциональные возможности и обеспечить хорошую защиту, должны быть включены следующие модули:

    httpd_core - Ядро Apache, требуется при каждой установке Apache.

    mod_access - Контроль доступа к каталогам сервера в зависимости от IP-адреса или имени узла клиента.

    mod_auth - Требуется, чтобы осуществлять авторизацию пользователей, используя текстовые файлы.

    mod_dir - Требуется, чтобы искать индексные файлы: "index.html", "default.html", и т. д.

    mod_log_config - Обеспечивает регистрацию запросов, направляемых серверу. mod_mime - Содержит директивы, способствующие организации на сервере различных типов MIME.

    Все остальные модули Apache должны быть выключены. Мы можем спокойно их отключить, потому что они нам не понадобятся. Отключая ненужные модули, мы предотвращаем возможность взломщика эксплуатировать уязвимость, которая была найдена в одном из этих модулей.

    Также стоит обратить внимание, что два модуля Apache (mod_autoindex и mod_info) являются наиболее опасными. Первый модуль позволяет автоматически проиндексировать каталог и он включен по умолчанию. Чтобы посмотреть, как он работает, введите, например, http://server_name/icons/ и если в этом каталоге нет индексных файлов, то будет выведено содержание всего каталога. Второй модуль, mod_info, никогда не должен быть доступен через Интернет, потому что он показывает всю конфигурацию Web сервера Apache.

    Следующий вопрос - как компилировать модули. Мне кажется, что статический метод - самый лучший (коды встраиваются в исполняемые файлы), нежели динамическая (коды собираются в момент запуска программы). Выбирая статический метод, мы также устраняем потребность в еще одном модуле - mod_so.

    Самостоятельная работа: Работа с сервером баз данных MySQL. Создание таблиц. Вставка, извлечение и обновление данных в базе данных.

    Лабораторная работа № 12. Установка и настройка web-сервера Apache.

    Самостоятельная работа: Работа с сервером баз данных MySQL.