Apache Quickstart HOWTO

Материал из openSUSE.

Содержание

Быстрый старт

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

Другие Howto Вы можете найти здесь: Apache

Общие настройки компьютера:

  • настройте Вашу сеть
  • убедитесь, что у Вас установлены текущие (свежие) версии пакетов. Для этого регулярно запускайте YaST Online Update.

Синхронизируйте системное время

часть протокола HTTP зависит от правильно настроенного времени.

  • настройте компьютер, как NTP клиент. Воспользуйтесь модулем настройки в YaST либо измените файл /etc/ntp.conf (просто впишите имя сервера в этот файл) и запустите "rcntpd start", затем запустите "chkconfig -a ntpd"

Брандмауэр (Firewall)

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

Запустите сервер, и настройте его автоматический запуск при старте системы:

  • rcapache2 start
  • chkconfig -a apache2

Добавьте вэб страницы:

  • DocumentRoot по умолчанию размещается в /srv/www/htdocs.
  • если Вы размещаете документы в другом месте и указываете на них с помощью, например, команды Alias мое_место "/path/to/мое_место" убедитесь, что также используете <Directory /path/to/мое_место> ... </Directory> для определения разрешений и опций для этой директории, в виду того (начиная с SuSE Linux 9.0), что доступ ко всей файловой системе блокирован по умолчанию. Смотрите http://httpd.apache.org/docs-2.2/mod/core.html#directory

Проверьте /etc/sysconfig/apache2:

  • проверьте загруженные модули (APACHE_MODULES="..."). (Так же их можно посмотреть с помощью команды "a2enmod -l".)
  • добавьте "php5", "perl", и другие необходимые модули в APACHE_MODULES по своему усмотрению. Модули могут быть включены/отключены простым (Debian-совестимым ;) способом в командной строке, как показано ниже:
a2enmod php5
a2dismod php5
  • существует также команда a2enflag, чтобы изменять значение APACHE_SERVER_FLAGS
  • перезапустите сервер ('rcapache2 restart')

Куда добавлять свою собственную конфигурацию:

  • добавьте, например /etc/apache2/httpd.conf.local и измените APACHE_CONF_INCLUDE_FILES в /etc/sysconfig/apache2, например APACHE_CONF_INCLUDE_FILES="httpd.conf.local"
  • чтобы понять иерархию и размещение всех подключаемых файлов, прочтите комментарии в начале файла httpd.conf
  • если вы упорно предпочитаете старые, одиночные, 40 Кб монолитные конфигурационные файлы , то они уже здесь! Просто воспользуйтесь ими:
# mv /etc/apache2/httpd.conf /etc/apache2/httpd.conf.dist                                                                                                                                                                                 
# cp /usr/share/doc/packages/apache2/httpd-std.conf-prefork /etc/apache2/httpd.conf                                                                                                                                                       
# rcapache2 restart

Добавление виртуальных хостов:

  • отредактируйте /etc/apache2/listen.conf. Это то самое место, где можно добавить директивы NameVirtualHost.
  • скопируйте закомментированный пример /etc/apache2/vhosts.d/vhost.template в /etc/apache2/vhosts.d/ваш_хост.conf
  • отредактируйте /etc/apache2/vhosts.d/ваш_хост.conf так, как считаете нужным
  • альтернативное решение: просто добавьте директиву NameVirtualHost и контейнер <VirtualHost> в Ваш единый конфигурационный файл, если таковой имеется (например httpd.conf.local, как описано выше)
  • if in doubt about how apache interprets your vhost setup, always use httpd2 -S. If SSL is involved you will need to run httpd2 -S -DSSL instead -- likewise for other needed defines.
  • the "default" server, which responds to requests not handled by other vhosts, is always the one which is defined first. If you want a dedicated "default" server for such requests, you need to put it first in the configuration. Consequently, if the configuration is in multiple files, like /etc/apache2/vhosts.d/*.conf, then simply name it _default.conf, or e.g. _192.168.0.1.conf if you do it per IP address. Then it is read first.

TROUBLESHOOTING -- if all does not work:

  • fire up "tail -F /var/log/apache2/*_log &" in a root shell
  • reproduce what is not working (by starting apache, doing client requests, or whatever), and see how it is reflected in the logs
  • if you suspect a bug, please make use of https://bugzilla.novell.com

To learn more about configuration

building 3rd party modules:

  • install apache2-devel (and of course gcc as well as other needed development tools)
  • use one of the following:
apxs2          -- to build a module for all MPM types, or
apxs2-prefork  -- to build a module for the Prefork MPM, or
apxs2-worker   -- to build a module for the Worker MPM

(see man 8 apxs2). In most cases you can just use "apxs2", the most notably exception being mod_php4. Using apxs2-prefork then will prevent you from accidentally trying to use the module with the Worker MPM. Also, very few modules need to know interna from the MPMs, trying to include mpm.h and they will need to be built with apxs2-<mpmname>.

Typical example:

# apxs2 -c -i -a mod_foo.c                                                                                                                                                                                                                
-c does compile the module
-i installs it in the right place
-a activates it by running 'a2enmod mod_foo'
  • if the module's build system does not allow to use apxs, use at least CFLAGS=$(apxs2 -q CFLAGS) to determine the right compiler flags for your apache installation.

Смотри также

  • Apache more HOWTOs about Apache web server

Внешние ссылки