Запускаем скачанный установщик. Проверяем запустился ли веб сервер

Как известно, с выходом конфигураций 1С 8.3, написанных полностью на управляемых формах, появилась возможность публикации этих конфигураций на веб-сервере.

Публикация 1С 8.3 на веб-сервере IIS отличается лишь установкой серверной части.

Установка веб-сервера Apache

Сначала нужно скачать дистрибутив сервера. Находится он по адресу http://www.apache.org . Скачиваем последнюю версию дистрибутива для Windows и запускаем установку.

Нажимаем «Next» до тех пор, пока не появится вот такое окно:

В первые два поля впишем «localhost» (или 127.0.0.1). Это означает, что сервер будет работать на локальном компьютере. В третьем поле укажите почтовый адрес, на него будут приходить ответы сервера.

Следует заметить, что программа Skype тоже может использовать 80 порт. Поэтому, если Вы ее используете, отключите в настройках 80 порт.

Нажимаем «Next».

В следующем окне я предлагаю выбрать типовую установку. При этом будут установлены все необходимые для работы компоненты.

Каталог установки тоже оставим по умолчанию. Нажимаем «Install». Начнется процесс установки.

Получите 267 видеоуроков по 1С бесплатно:

После окончания установки сервер должен автоматически запуститься. При этом в системном трее появится значок . Это означает, что сервер успешно запустился. Если кликнуть два раза на этой иконке, откроется следующее окно:

Публикация веб-клиента и веб-сервисов в 1С 8.3 (8.2) на сервере Apache

Сервер запущен. Теперь займемся программой 1С. Запустим Конфигуратор.

В Конфигураторе выбираем меню «Администрирование», далее «Публикация на веб-сервере».

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

Нужно только выбрать каталог, можно любой пустой. «Имя» нужно указать латинскими символами.

Можно выбирать по желанию. Можно отключить совсем. Главное, перейти на закладку HTTP-сервисы. Тут нужно сделать те же настройки, что и на предыдущей закладке:

Серия контента:

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

1. Архитектура Apache 1.x

Клиентский запрос проходит в Apache несколько фаз:

  1. Запрашиваемый URL переводится в имя локального файла.
  2. Проверяется аутентификация пользователя.
  3. Проверяются права доступа.
  4. Определяется тип запрашиваемого документа: это может быть текст, картинка, звук, видео.
  5. Отсылается документ клиенту.
  6. Логирование.

Каждая фаза управляется собственным модулем Apache.


На каждый запрос ядро Apache создает объект структуры request_rec, которую затем передает по очереди соответствующему модулю и получает ее в модифицированном варианте.

На следующем рисунке архитектура Apache представлена более детально. Есть небольшие функциональные модули - ap, regex, которые используются как ядром, так и другими базовыми модулями. Отдельный модуль OS реализует кроссплатформенность Apache.


При ближайшем рассмотрении дерева исходников выясняется:

  1. Все заголовки сгруппированы в каталоге include.
  2. Ядро лежит в каталоге main (libmain.a).
  3. Базовые модули лежат в каталоге modules (libstandard.a).
  4. Реализация кроссплатформенности находится в каталоге os, который включает в себя соответствующие подкаталоги, в каждом из которых лежит свой соответствующий заголовок os.h. (libos.a).
  5. Отдельный библиотечный компонент для работы с регулярными выражениями лежит в каталоге regex (libregex.a).
  6. Отдельный компонент лежит в каталоге ap и включает набор различных функций (libap.a).
  7. Отдельный компонент лежит в каталоге support и включает в себя скрипты и код для вспомогательных утилит Apache, таких как ротация лог файлов, манипуляция с файлами паролей и т.д.
  8. Каталог helpers включает скрипты, используемые при компиляции самого Apache.

Практически все функции имеют префикс ap_, это было введено в версии 1.3 для избежания конфликта имен при переходе с версии 1.2.

Код ядра лежит в каталоге main. Ядро было разработано с учетом того, что любой, кто хочет расширять функционал Apache, по возможности не трогал код ядра, который уже включает все возможности для такого расширения. Единственный внутренний компонент ядра, который может подвергаться изменению - это реализация HTTP протокола.


  • http_main.c включает основной серверный цикл, управление таймаутами и дочерними процессами. В цикле устанавливается TCP/IP соединение, выделяется память под клиентский запрос, читается запрос и вызывается функция из http_request.c для управления этим запросом, после чего соединение закрывается и память освобождается.
  • http_core.h описывает наиболее важные функции, обрабатывающие запрос.
  • mod_core.c определяет структуру каждого модуля.
  • http_core.c определяет таблицу стандартных конфигурационных команд, инициализацию самого ядра и управление фазами обработки запроса.
  • http_request.c инициализирует модули и другие компоненты ядра. В нем реализовано чтение конфигурационных файлов и вызов соответствующих табличных конфигурационных команд. Хэндлеры всех модулей по обработке запроса находятся в связном списке, и из него происходит выбор нужного хэндлера для обработки соответствующей фазы запроса.
  • http_protocol.c реализует HTTP протокол, управляет соединением с клиентом, закрывает коннект в случае ошибки. Для хранения информации о запросе есть текстовый заголовок и бинарный контент. Этот компонент ядра вызывается после установки коннекта, после его закрытия, а также в случае, когда документ готов для отправки клиенту.
  • Файлы buff.c, alloc.c управляют ресурсами, буферизуют ввод/вывод. Пул ресурсов - это кусок памяти, необходимый для управления запросом, включает в себя файловые дескрипторы. Каждый запрос имеет свой собственный пул, который может быть освобожден после обработки запроса.
  • http_log.c - управляет логированием, приоритетом сообщений, очередью сообщений.
  • http_chost.c - один сервер может работать с нескольких адресов в соответствии с прописанными в конфиге правами для каждого из них.

3. Модули Apache

Модули реализуют функционал Apache. Модули могут напрямую общаться с ядром, но не могут напрямую общаться друг с другом. Каждый модуль фактически является набором обработчиков (хэндлеров) для различных фаз HTTP запроса. Следующий рисунок дает детальный обзор архитектуры модуля. Модуль - это коллекция функций-обработчиков, вызываемых ядром. Каждый модуль имеет собственную структуру под названием module, в которой хранятся указатели на обработчики, и объект такой структуры каждый модуль передает ядру.

Каждый модуль должен быть проинициализирован ядром. По идее, любой модуль может использовать команды, которые пользователь прописывает в конфигурационном файле. Чтением файла занимается ядро, которое затем сопоставляет их с таблицей команд, полученных от модуля в структуре module. Каждая строка в этой таблице состоит из пары: тип контента - указатель на обработчик, где тип контента - это MIME type.

Обработчики, которые занимаются непосредственной отсылкой данных клиенту, называются content handlers или response handlers. Для каждого типа объекта имеется свой собственный обработчик.

В Apache все модули сгруппированы в каталоге modules. Стандартные модули сгруппированы в подкаталоге standard. реализация прокси лежит в каталоге proxy. Демонстрационный модуль, имеющий всего один обработчик, лежит в каталоге examples.

Все стандартные модули загружаются статично, хотя возможна динамическая загрузка: их можно слинковать с ядром и так, и так. При инсталляции Apache, когда вы запускаете конфигурацию, создается файл modules.c, в котором определяются 2 массива указателей на модульные структуры:

module *ap_prelinked_modules = { &core_module, &env_module, &config_log_module, &mime_module, ... dule *ap_preloaded_modules = { &core_module, &env_module, &config_log_module, &mime_module, &negotiation_module, ...

При этом все перечисленные модули можно разбить на следующие группы:

  1. Трансляция URL
    • mod_userdir - перевод домашнего каталога в урл;
    • mod_rewrite - переписывает урл на базе регулярных выражений.
  2. Аутентификация / авторизация
    • mod_auth, mod_auth_anon,mod_auth_db, mod_auth_dbm - аутентификация пользователей на основе парольных файлов;
    • mod_access - контроль доступа.
  3. MIME
    • mod_mime - определение типа документа на основе файлового расширения;
    • mod_mime_magic - определение типа документа по его заголовку;
    • mod_negotiation.
  4. fix-ups
    • mod_alias - алиасы;
    • mod_env - переменные среды на основе конфигов;
    • mod_speling - исправление ошибок в урлах;
    • mod_expires, mod_headers.
  5. Отсылка данных клиенту
    • mod_actions, mod_asis, mod_autoindex, mod_cgi, mod_dir, mod_imap, mod_include, mod_info, mod_negotiation, mod_status, mod_core.
  6. Логирование
    • mod_log_
  7. Proxy
    • mod_proxy, proxy_cache, proxy_connect, proxy_ftp, proxy_http, proxy_util.

4. Параллелизм

При старте Apache создает (fork) по умолчанию 5 главных процессов, это минимальное возможное число процессов. Каждый процесс в свою очередь может поддерживать как минимум 50 потоков (thread - если многопоточность поддерживается операционной системой). На каждый клиентский запрос отводится один процесс. Существует специальная структура - scoreboard - которая хранит состояние всех процессов. Число одновременных возможных процессов по умолчанию - от 5 до 10. Максимальное число таких процессов - 256. Есть также специальная очередь для запросов на ожидание, которым пока нет места в scoreboard. Максимальная длина такой очереди - 511.

Максимально возможное число одновременных клиентских коннектов - 100.

5. Структуры данных

На следующем рисунке показана временная диаграмма прохождения различных фаз клиентского запроса, при этом основная работа выполняется в ядре, в файле http_request.c.


При вызове обработчика каждому модулю передается в качестве параметра одна и та же публичная структура - request_rec. При этом может происходить изменение состояния различных полей этой структуры. Responce handlers возвращают контент клиенту. Обработчик также может выполнять другой под-запрос. Структура request_rec может включать указатель на другую структуру request_rec в том случае, когда происходит редирект, а в случае под-запроса указатель может указывать на самое себя. Редирект означает вызов обработчика картинки внутри документа или вызов CGI-скрипта. При этом вызывается обработчик ap_internal_redirect, который создает новый объект request_rec. Такой объект может быть помещен в связный список request_recs.

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

  • указатели на другие request_rec;
  • указатель на пул ресурсов;
  • обьекты запроса:
    • filename
  • информация о контенте:
    • тип контента
    • кодировка
  • MIME headers;
  • информация о запросе:
    • протокол
    • метод

Ниже дано выборочное представление структуры request_rec с наиболее часто используемыми полями:

struct request_rec { pool *pool; conn_rec *connection; server_rec *server; /* запрос */ char *uri; char *filename; char *path_info; char *args; /* QUERY_ARGS */ char *content_type; char *content_encoding; /* здесь представлен заголовок MIME * также массив с переменными, передаваемый в дочерний процесс */ table *headers_in; table *headers_out; table *err_headers_out; table *subprocess_env; /* информация о запросе */ int header_only; /* HEAD - заголовок запроса */ char *protocol; /* Protocol */ char *method; /* GET, HEAD, POST. */ int method_number; /* M_GET, M_POST */ /* логирование */ char *the_request; int bytes_sent; /* флаг кеширования */ int no_cache; /* массивы конфигурационных параметров с указателями типа void* */ void *per_dir_config; void *request_config; };

Apache использует пул ресурсов - pool - структуру данных, в которой хранится список всех выделенных ресурсов для запроса. Когда обработка запроса заканчивается, все ресурсы, затраченные на этот запрос, освобождаются. У модулей могут быть свои собственные пулы на свои нужды.

Как уже было сказано, ядро хранит таблицу конфигурационных команд. Также и каждый модуль может иметь свою собственную командную таблицу. Каждая команда представляет обьект структуры command_struct и включает:

  • имя команды;
  • указатель на функцию-обработчик;
  • передаваемый аргумент;
  • условия инициализации;
  • тип и число аргументов;
  • описание аргументов;

Структура scoreboard хранит список обрабатываемых запросов. Хранится статус запроса и его id. Для каждого создаваемого процесса в scoreboard добавляется запись, которая после обработки запроса удаляется. Статус процесса в этой структуре изменяется самим процессом. Статус запроса может приобретать следующие значения:

SERVER_DEAD 0 SERVER_STARTING 1 /* Server Starting up */ SERVER_READY 2 /* Waiting for connection (or accept() lock) */ SERVER_BUSY_READ 3 /* Reading a client request */ SERVER_BUSY_WRITE 4 /* Processing a client request */ SERVER_BUSY_KEEPALIVE 5 /* Waiting for more requests via keepalive */ SERVER_BUSY_LOG 6 /* Logging the request */ SERVER_BUSY_DNS 7 /* Looking up a hostname */ SERVER_GRACEFUL 8 /* server is gracefully finishing request */ SERVER_NUM_STATUS 9 /* number of status settings */

6. Обработчик response

Результат работы большинства обработчиков сводится к банальному изменению значения полей структуры request_rec, либо к возврату специальных кодов. Данный же обработчик отсылает реальные данные клиенту. Вначале клиенту отсылается HTTP-заголовок с помощью функции send_http_header. Если у запроса есть метка header_only, то клиенту более ничего не высылается. В противном случае, клиенту высылается само сообщение, для этого используются специальные примитивы rputc, rprintf, send_fd. Следующий код показывает обработку GET-запроса и отсылку данных клиенту:

int default_handler (request_rec *r) { int errstatus; FILE *f; if (r->method_number != M_GET) return DECLINED; if (r->finfo.st_mode == 0) return NOT_FOUND; if ((errstatus = set_content_length (r, r->finfo.st_size)) || (errstatus = set_last_modified (r, r->finfo.st_mtime))) return errstatus; f = fopen (r->filename, "r"); if (f == NULL) { log_reason("file permissions deny server access", r->filename, r); return FORBIDDEN; } register_timeout ("send", r); send_http_header (r); if (!r->header_only) send_fd (f, r); pfclose (r->pool, f); return OK; }

Эта функция может вернуть либо код ошибки, либо OK, во втором случае вызывается редирект на другой обработчик с помощью internal_redirect.

7. Пул

Основная проблема, решаемая с помощью пула - pool - это предотвращение утечек памяти.

Пул в Apache разработан таким образом, что освобождение всех ресурсов - памяти, дескрипторов и т.д. - происходит автоматически, после завершения обработки клиентского запроса. Каждому такому запросу выделяется свой собственный пул, представленный структурой pool. После обработки этот пул удаляется.

При старте Apache выделятся специальный пул - конфигурационный. При перезапуске сервера этот пул также очищается.

Память выделяется с помощью palloc, что быстрее, чем malloc. Эта функция имеет 2 аргумента - указатель на пул и количество выделяемой памяти:

int my_handler(request_rec *r) { struct my_structure *foo; ... foo = (foo *)palloc (r->pool, sizeof(my_structure)); }

Функция pfree отсутствует, поскольку освобождение памяти идет автоматически тогда, когда освобождается пул. Есть специальные прикладные функции, выделяющие память: например, в следующем примере функция pstrcat выделяет память под 8 байтовый строковый модуль:

pstrcat (r->pool, "foo", "/", "bar", NULL);

Аналогично происходит открытие файлов:

FILE *f = pfopen (r->pool, r->filename, "r");

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

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

Пул также можно освободить в любой момент с помощью clear_pool или destroy_pool.

В случае подзапросов для надежного очищения памяти используется destroy_sub_request.

8. Конфигурация

Первый Apache разрабатывался с прицелом на максимальную совместимость со своим предшественником - вебсервером NCSA 1.3 - в плане чтения конфигурационных файлов. Была поставлена задача вынести максимально весь функционал из ядра в модули. Для этого в ядре была создана специальная таблица команд. Определения типа файла по суффиксу делается на основе конфигурационных директив AddType и DefaultType.

Работа с файловой системой выполняется с помощью директив Aliases и Redirect.

Работа с вложенными конфигурационными файлами выполняется на базе файлов.htaccess.

Когда сервер читает в файле директиву , он создает структуру mime_dir_config:

typedef struct { table *forced_types; /* AddType */ table *encoding_types; /* AddEncoding */ } mime_dir_config;

Команды AddType и AddEncoding обычно присутствуют в.htaccess.

Для создания такой структуры нужны 2 параметра - пул и имя каталога:

void *create_mime_dir_config (pool *p, char *dummy) { mime_dir_config *new = (mime_dir_config *) palloc (p, sizeof(mime_dir_config)); new->forced_types = make_table (p, 4); new->encoding_types = make_table (p, 4); return new; }

Если в нашем серверном каталоге, который мы только что прочитали, есть вложенный каталог, и там есть свой собственный.htaccess, нам придется объединять две структуры:

void *merge_mime_dir_configs (pool *p, void *parent_dirv, void *subdirv) { mime_dir_config *parent_dir = (mime_dir_config *)parent_dirv; mime_dir_config *subdir = (mime_dir_config *)subdirv; mime_dir_config *new = (mime_dir_config *)palloc (p, sizeof(mime_dir_config)); new->forced_types = overlay_tables (p, subdir->forced_types, parent_dir->forced_types); new->encoding_types = overlay_tables (p, subdir->encoding_types, parent_dir->encoding_types); return new; }

Заключение

Архитектура первого Apache имеет свои особенности - все функции имеют префикс ap_, реализация кроссплатформенности сделана на основе отдельных модулей, модули не могут общаться друг с другом, а только с ядром, все модули можно разбить на 7 основных групп: трансляция, аутентификация, MIME, fix-ups, генераторы контента, логирование, прокси. Управление памятью реализовано на основе пулов. Система конфигурация имеет широкие возможности для предварительной настройки сервера.

Этот раздел включает инструкции по установке Apache и PHP на платформах Unix. Установка PHP с Apache2 описана в другом разделе .

Вы можете менять аргументы configure на шаге 10 ниже. Полный список аргументов доступен на странице список основных параметров конфигурации . А параметры, специфичные для различных расширений, описаны в разделах посвященных соответствующим расширениям. В инструкции ниже опущены номера версий - вы должны заменить "xxx" на номер версии присутствующий в именах скачанных вами файлов.

Пример #1 Инструкция по установке PHP, как подгружаемого модуля Apache

1. gunzip apache_xxx.tar.gz 2. tar -xvf apache_xxx.tar 3. gunzip php-xxx.tar.gz 4. tar -xvf php-xxx.tar 5. cd apache_xxx 6. ./configure --prefix=/www --enable-module=so 7. make 8. make install 9. cd ../php-xxx 10. Теперь мы сконфигурируем PHP. Здесь вы можете настроить установку PHP при помощи параметров скрипта configure. Вы можете включить или выключить некоторые расширения. Просмотрите вывод команды./configure --help для получения полного списка параметров конфигурации. В нашем примере мы сконфигурируем PHP очень просто - с поддержкой Apache 1 и MySQL. В вашей системе путь до apxs может отличаться от указанного в примере. ./configure --with-mysql --with-apxs=/www/bin/apxs 11. make 12. make install Если вы решите изменить параметры конфигурации после установки, три последних шага надо будет повторить. Так же вам надо будет перезапустить Apache, чтобы новые модули подгрузились и начали работать. Перекомпиляция Apache для этого не потребуется. Заметьте, что "make install" установит так же PEAR, различные инструменты PHP - такие как phpize, версию PHP для командной строки (PHP CLI) и т.д. 13. Настройте ваш php.ini: cp php.ini-development /usr/local/lib/php.ini Вероятно, вы захотите изменить некоторые настройки в php.ini. Если вы предпочитаете держать файл php.ini в другом месте, используйте параметр --with-config-file-path=/some/path в шаге 10. Если вы используете php.ini-production, прочитайте его, чтобы знать какие изменения в поведении PHP это повлечет. 14. Отредактируйте ваш httpd.conf, чтобы Apache подгружал модуль PHP. Путь в правой части инструкции LoadModule должен указывать на модуль PHP. Команда make install может добавить эту иструкцию автоматически, но этого может и не произойти, поэтому проверьте, чтобы убедиться. LoadModule php5_module libexec/libphp5.so 15. Так же в секции AddModule файла httpd.conf, несколько ниже ClearModuleList, добавьте следующее: AddModule mod_php5.c 16. Теперь следует сконфигурировать Apache, чтобы он передавал файлы с некоторыми расширениями на обработку модулю PHP. В нашем примере сделаем это для файлов с расширениями.php и.phtml. Вы можете добавить также другие расширения в конец строки, разделяя их символом пробела. AddType application/x-httpd-php .php .phtml Сделаем то же самое для расширения.phps - модуль PHP покажет его как исходный код с подсветкой синтаксиса, вместо того чтобы исполнять. AddType application/x-httpd-php-source .phps 17. Используйте стандартную процедуру запуска сервера. (Нужно остановить и заново запустить сервер, процедура перезапуска с использованием сигналов HUP или USR1 в данном случае не подходит.)

В качестве альтернативы, можно установить PHP, как статический модуль Apache:

Пример #2 Инструкция по статической сборке PHP и Apache

1. gunzip -c apache_1.3.x.tar.gz | tar xf - 2. cd apache_1.3.x 3. ./configure 4. cd .. 5. gunzip -c php-5.x.y.tar.gz | tar xf - 6. cd php-5.x.y 7. ./configure --with-mysql --with-apache=../apache_1.3.x 8. make 9. make install 10. cd ../apache_1.3.x 11. ./configure --prefix=/www --activate-module=src/modules/php5/libphp5.a (Строка выше корректна. Да, мы знаем, что libphp5.a не существует на данном этапе. Этот файл будет создан.) 12. make (Теперь вы должны получить бинарный файл httpd, который вы можете скопировать в каталог bin сервера Apache. Затем вам надо выполнить "make install", если это ваша первая установка) 13. cd ../php-5.x.y 14. cp php.ini-development /usr/local/lib/php.ini 15. Для изменения конфигурации PHP можно отредактировать файл /usr/local/lib/php.ini. Отредактируйте httpd.conf или srm.conf, добавив туда: AddType application/x-httpd-php .php

В зависимости от варианта вашей установки Apache и версии Unix, возможно множество путей остановки и запуска сервера. Ниже приведены несколько распространенных команд перезапуска сервера для различных установок Apache и Unix-систем. Замените /path/to/ на реальный путь до приложений в вашей системе.

Пример #3 Примеры команд перезапуска Apache

1. Некоторые дистрибутивы Linux и системы SysV: /etc/rc.d/init.d/httpd restart 2. Использование скрипта apachectl: /path/to/apachectl stop /path/to/apachectl start 3. httpdctl и httpsdctl (использующий OpenSSL), аналогично apachectl: /path/to/httpsdctl stop /path/to/httpsdctl start 4. При использовании mod_ssl или другого SSL сервера, можно сделать ручную остановку и пуск: /path/to/apachectl stop /path/to/apachectl startssl

Пути к apachectl и http(s)dctl часто различаются. Если в вашей системе есть команды locate или whereis , или which , они помогут вам найти программы, контролирующие сервер.

Другие варианты компиляции PHP для Apache:

./configure --with-apxs --with-pgsql

Будет создан файл подгружаемой библиотеки libphp5.so . Эта библиотека должна быть подгружена в Apache с использованием директивы LoadModule конфигурационного файла httpd.conf . В данном случае поддержка PostgreSQL будет встроена в эту библиотеку.

./configure --with-apxs --with-pgsql=shared

Будет создан файл подгружаемой библиотеки libphp5.so для Apache, но так же будет создана подгружаемая библиотека pgsql.so , которая должна быть подгружена в PHP одним из двух способов: директивой extension в php.ini или в скрипте, использованием функции dl() .

./configure --with-apache=/path/to/apache_source --with-pgsql

Будет создана библиотека libmodphp5.a . Файл mod_php5.c и несколько сопровождающих файлов будут скопированы в каталог src/modules/php5 дерева исходных кодов Apache. Затем следует cкомпилировать Apache, используя --activate-module=src/modules/php5/libphp5.a , система сборки Apache создаст libphp5.a и статически свяжет с исполняемым httpd . Поддержка PostgreSQL будет включена непосредственно в httpd и конечным результатом будет единственный исполняемый файл httpd , включающий все от Apache и все от PHP.

./configure --with-apache=/path/to/apache_source --with-pgsql=shared

Так же как и прежде, взамен поддержки PostgreSQL, встроенной непосредственно в конечный исполняемый файл httpd , вы получите подгружаемую библиотеку pgsql.so , которую вы должны будете подгрузить в PHP одним из двух способов: php.ini или используя функцию dl() .

Выбирая способ установки PHP, следует учитывать преимущества и недостатки каждого из методов. Если вы собираете PHP, как подгружаемый модуль Apache - вы сможете компилировать PHP и Apache отдельно друг от друга и вам не нужно будет перекомпилировать Apache, если вы захотите изменить конфигурацю PHP. Если вы собираете PHP статически - PHP будет работать чуть быстрее. Для получения более подробной информаци посетите страницу посвященную поддержке » DSO (Dynamic Shared Object) в Apache.

Замечание :

В настоящее время файл конфигурации Apache httpd.conf обычно поставляется со следующими настройками:

User nobody Group "#-1"

Пока вы не измените группу на "Group nogroup" или что-нибудь вроде "Group daemon" (такая настройка довольно распространена), PHP не сможет открывать файлы.

Замечание :

Убедитесь, что вы указываете установленную версию apxs, когда используете --with-apxs=/path/to/apxs . Вы НЕ ДОЛЖНЫ указывать версию apxs, поставляемую с исходными кодами Apache - только действительно установленную в вашу систему вместе с сервером.

Это автоматический установщик (иначе – wizard) сервера Apache под Windows. Эта программа попытается почти самостоятельно (а точнее, с минимальными усилиями с вашей стороны) установить на компьютер какое-либо программное обеспечение, а в данном случае сервер. После запуска файла установщика появляется следующее окошко (рис. 1).

Чтобы установить HTTP-сервер Apache версии 1.3.29 на свой компьютер, нужно нажать на кнопку Next. Кстати говоря, эта же программа позволит изменить или удалить уже установленный web-сервер.

После нажатия кнопки Next программа предложит согласиться с условиями лицензии (рис. 2).

Следующий экран будет содержать информацию о сервере Apache, и в частности о его Windows-реализации (его изображение не приводим).

На следующем шаге нужно ввести имя сетевого домена, имя сервера и e-mail администратора. Программа попытается автоматически определить ваш домен и хост по настройкам компьютера (рис. 3).

После того как вы ввели данные в вышеприведенную форму, нужно выбрать тип установки: полная (устанавливаются все компоненты сервера) или определяемая пользователем (можно выбрать компоненты для установки) (рис. 4.).

Выбор компонентов сервера не очень большой – это инструменты, необходимые для работы сервера и документация к нему (рис. 5).

Мы выберем полную установку. Тогда на следующем шаге программа предложит выбрать папку, в которую будет установлен сервер. По умолчанию сервер устанавливается в папку c:\Program Files\Apache Group\ (рис. 6).

На следующем экране (рис. 7) потребуется подтвердить правильность введенных данных и начать установку. Из любого окна установки, включая и это, можно вернуться назад и изменить введенные ранее данные.

После нажатия кнопки Install начнется непосредственная установка сервера. От пользователя никаких дополнительных действий больше не требуется. С одной стороны, это хорошо, но есть у такой автоматизированной установки и некоторые недостатки. Например, домашние директории пользователей оказываются там же, где и файлы настроек сервера (c:\Program Files\Apache Group\Apache\users\). Это небезопасно, если на компьютере работает несколько пользователей, не являющихся администраторами сервера. Но для начала можно ничего не менять. Допустим, мы запустили установщик, ввели все необходимые данные, он выполнил все операции успешно и говорит, что сервер установлен. Как проверить, действительно ли сервер установлен? Набираем в окне браузера http://localhost/ . Если все установилось правильно, мы получим страничку приветствия сервера Apache (см. рис. 8).

Итак, сервер установлен. Как теперь с ним работать? Откуда можно запускать скрипты и где должны находиться файлы пользователей? Файлы, которые должны быть обработаны сервером, можно сохранять либо в корне сервера (в нашем случае это c:\Program Files\Apache Group\Apache\htdocs ), либо в директориях пользователей (в нашем случае это c:\Program Files\Apache Group\Apache\users\ ). Местоположение корня сервера и директорий пользователей прописано в настройках сервера, а точнее, в файле конфигурации httpd.conf (найти его можно в c:\Program Files\Apache Group\Apache\conf ). Для изменения этих путей нужно изменить соответствующие переменные в файле конфигурации сервера. Переменная в файле конфигурации DocumentRoot отвечает за корневую директорию сервера, а переменная UserDir – за директорию, где будут располагаться файлы пользователей сервера (для более безопасной работы советуем изменить переменную UserDir на что-нибудь типа c:\users\). Чтобы получить доступ к файлу test.html, находящемуся в корне сервера, нужно набрать в браузере http://localhost/test.html (т. е. имя хоста, имя файла). Если же файл test.html находится в директории пользователя user, то для его просмотра нужно набрать в браузере http://localhost/~user/test.html .

2.Запуск, останов и перезапуск сервера Apache

Теперь необходимо научиться управлять Apache, а именно научится запускать, останавливать и перезапускать сервер. Существует несколько способов осуществить эти операции: используя консоль управления сервисов Windows, используя пункты меню Пуск, из командной строки… Мы рассмотрим консоль управления сервисов Windows, позволяющего настроить Apache для автоматического старта при запуске системы. Для запуска консоли управления выполните команду
Пуск->Панель управления->Администрирование->Службы.
В появившемся окне консоли, на приведённом ниже рисунке, следует выбрать сервис Apache. Контекстное меню, открывающееся по нажатию на правой кнопке, позволяет осуществлять запуск, остановку и перезапуск сервиса.


Рис. 9 Управление сервером Apache при помощи консоли управления служб (Нажать на рисунок для увеличения)

Службы Windows позволяют осуществлять запуск фоновых приложений при старте системы. Для этого необходимо перейти в окно Свойства, выбрав в контекстном меню сервиса пункт Свойства и в появившемся окне в выпадающем списке "Тип запуска" выбрать пункт "Авто".

3. Возможные проблемы.
3.1. Если не выходит страница приветсвия, проверьте не установлен ли у вас Скайп.
Скайп и Apache конфликтуют.
Закройте Скайп,проверьте страницу приветсвия, затем запустите опять Скайп.

4. Описания основных директив файла конфигурации
4.1. Директива ServerRoot

ServerRoot директива устанавливает корневой каталог сервера. Обычно он содержит подкаталоги conf/ и logs/. Пути для других файлов конфигурации устанавливаются относительно этого каталога.
Указывает на каталог, содержащий программные файлы WEB-сервера Apache.Не путайте директиву ServerRoot с директивой DocumentRoot, которая указывает каталог для файлов WEB-сайта

4.2. Директива DocumentRoot

Эта директива устанавливает каталог, из которого apache будет брать файлы web - сайта.Определяет каталог, в котором расположены файлы WEB-сайта.

4.3. Директива ServerAdmin

ServerAdmin устанавливает адрес электронной почты, который сервер включает в любые сообщения об ошибках, которые он возвращает клиенту. Содержит e-mail-адрес администратора web-сервера, который будет отображаться при ошибках работы сервера.

4.4. Директива Directory

Контейнер Directory используется, чтобы включить группу директив, которые необходимо применить только к указанному каталогу и его подкаталогам. Может использоваться любая директива применимая в контексте каталога.
Сфера действия директив внутри этого контейнера распространяется на все файлы и подкаталоги.

5.Набор полезных файлов.

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

Гарантия в Санкт-Петербурге

Интернет-магазин и розничная сеть «ВелоДрайв» является официальным представителем всех представленных в наших магазинов торговых марок. Велосипеды, аксессуары, запчасти и спортивные товары, продаваемые в розничной сети или через сайт по Санкт-Петербургу, покрываются полной фирменной гарантией производителя с обслуживанием в официальных сервисных центрах нашего города и нашей розничной сети, в соответствии с информацией приложенной к гарантийному талону.

Производитель Срок гарантии Адрес гарантийной мастерской Телефон
Author 1 год пр. Шаумяна д.2 715-13-19
Atom 6 мес 944-65-91
Brompton 5 рама, 2 обвес пр. Энгельса до.109, "Велодрайв" 944-65-91
Cronus 6 месяцев пр. Энгельса до.109, "Велодрайв" 944-65-91
Dahon 1 год пр. Энгельса до.109, "Велодрайв" 944-65-91
Elbike 6 месяцев пр. Энгельса до.109, "Велодрайв" 944-65-91
Eltreco 6 месяцев пр. Энгельса до.109, "Велодрайв" 944-65-91
Eurobike 6 месяцев пр. Энгельса до.109, "Велодрайв" 944-65-91
Fly 6 месяцев пр. Энгельса до.109, "Велодрайв" 944-65-91
Forward/Format 1 год пр. Энгельса до.109, "Велодрайв" 944-65-91
Gary Fisher 1 год пр. Энгельса до.109, "Велодрайв" 944-65-91
Giant 5 рама, 1 обвес пр. Энгельса до.109, "Велодрайв" 944-65-91
Kettler 1 год пр. Энгельса до.109, "Велодрайв" 944-65-91
Marin 1 год пр. Энгельса до.109, "Велодрайв" 944-65-91
Merida 1 год пр. Энгельса до.109, "Велодрайв" 944-65-91
Miraco 1 год пр. Энгельса до.109, "Велодрайв" 944-65-91
Mobiky 1 год пр. Энгельса до.109, "Велодрайв" 944-65-91
Montego 1 год пр. Энгельса до.109, "Велодрайв" 944-65-91
Scott 1 год пр. Энгельса до.109, "Велодрайв" 944-65-91
Smith 1 год пр. Энгельса до.109, "Велодрайв" 944-65-91
Stark 6 мес пр. Энгельса до.109, "Велодрайв" 944-65-91
Stels 6 мес пр. Энгельса до.109, "Велодрайв" 944-65-91
Trek 1 год пр. Энгельса до.109, "Велодрайв" 944-65-91
Univega 1 год пр. Энгельса до.109, "Велодрайв" 944-65-91
Viva 6 мес пр. Энгельса до.109, "Велодрайв" 944-65-91
Create 1 год ул. Гончарная д.20 969–71–31
Shulz 1 год ул. Гончарная д.20 969–71–31
Strida 5 рама, год обвес ул. Гончарная д.20 969–71–31
Novatrack 6 мес 784-64-41
Specialized 1 год ул. Зайцева д.8, "Велоцентр Автово" 784-64-42

Первое бесплатное ТО

В течение 1 (одного) месяца после покупки Вы имеете право на одно бесплатное техническое обслуживание (ТО). Перед прохождением ТО желательно проехать от 50 до 100 км. Бесплатное ТО проводится в магазине, где был куплен велосипед, по будним дням с 11:00 до 16:00. Для прохождения ТО необходимо иметь с собой гарантийный талон, паспорт и чек на велосипед.

В ТО входит:

  • Проверка правильного функционирования и регулировка заднего и переднего переключателей.
  • Проверка правильного функционирования и регулировка тормозов.
  • Проверка рулевой колонки и устранение люфта.
  • Проверка и протяжка крепления шатунов.
  • Проверка и регулировка давления в шинах.
  • Регулировка сидения.
  • Проверка и протяжка педалей.

Гарантия по России

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

Если все-таки гарантийный случай произошел, вам достаточно связаться с нами по бесплатной общероссийской линии 8-800-2-344-755 и выслать нам фотографии сломанного механизма. В случае очевидного брака мы абсолютно бесплатно и за наш счет вышлем вам необходимые для ремонта запчасти или передадим вашу покупку для ремонта в официальный сервисный центр. Во втором случае, если поломка возникла по вине производителя, мы компенсируем вам стоимость ваших почтовых расходов.

Возврат велосипедов, которые вам не подошли

Не всегда выбранный через сайт велосипед выглядит также хорошо, как и на фотографии. Хотя велосипед и относится к классу товаров, которые не подлежат возврату или обмену на аналогичный товар, интернет-магазин «Велодрайв» идет навстречу всем покупателям, которым не понравился выбранный товар или не подошел по росту. Если вы не катались на велосипеде и он сохранил все элементы защитной упаковки, в течение 2-х недель со дня покупки мы готовы вернуть вам деньги или предложить велосипед, который подходит вам с учетом ваших новых пожеланий. При заказе велосипеда по России не через пункт выдачи, мы также предоставляем вам возможность возврата.

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

Условия

  • Велосипеды и аксессуары принимаются на возврат по адресу: Санкт-Петербург, Митрофаньевское шоссе, дом 2, корпус 3 . В будни дни с 10 до 19 часов. Обязательно предварительное согласование с менеджером по телефону + 7 812 9-237-237
  • Возврат возможен только при сохранении того внешнего вида, в котором вам доставили велосипед, без следов использования.
  • Возврат возможен в течение 2х недель со дня покупки.
  • При возврате покупки по Санкт-Петербургу, возможно оформление возврата курьером. Услуга платная и составляет 350 руб в пределах зоны доставки, стоимость забора товара вне зоны доставки согласовывается с менеджером интернет-магазина.
  • При возврате по России, товар должен быть возвращен в ненарушенной заводской упаковке. Оплата доставки на обратный адрес производится за счет покупателя.

Возврат денежных средств на банковскую карту

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

Возврат денежных средств будет осуществлен на банковскую карту в течение 21 (двадцати одного) рабочего дня со дня получения «Заявление о возврате денежных средств» Компанией.

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

Сумма возврата будет равняться сумме покупки. Срок рассмотрения Заявления и возврата денежных средств начинает исчисляться с момента получения Компанией Заявления и рассчитывается в рабочих днях без учета праздников/выходных дней.

Возврат велосипедов и товаров ненадлежащего качества

В исключительных случаях поломки в первые две недели катания, произошедшей по вине производителя, мы выполняем все обязательства, которые накладывает на нас «Закон о защите прав потребителя». Оформление всех документов на обмен или возврат велосипеда происходит по адресу Санкт-Петербург, Митрофаньевское шоссе, дом 2, корпус 3. Чтобы избежать ожидания, пожалуйста, сообщите перед визитом нашему менеджеру о факте поломки. Обслуживание велосипедов и компонентов, проданных более двух недель назад, происходит в официальном сервисном центре в соответствии с гарантийным талоном.



Есть вопросы?

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: