В начало → Сетевые сервисы
Gentoo-doc HOME В началоСлед.: Настройка iptables для начинающих

Сетевые сервисы


1. Установка Apache2
2. Настройка iptables для начинающих
3. Подробная настройка iptables
4. Установка почтовой системы
5. Настройка vsftpd
6. Jabber Server
7. Выделенный сервер Counter-Strike
8. Файл сервер Samba в домене Win2k
9. Руководство по настройке Samba в режиме PDC с использованием LDAP
10. Мониторинг работы системы

1. Установка Apache2

1.1. Установка

Apache2 сейчас работает на большинстве системах без проблем, если у вас возникли проблемы прочтите раздел Common Problems это может помочь.

Начнем установку apache2: добавьте "apache2" к вашим USE флагу в файле /etc/make.conf и выполните:

emerge apache

1.2. Запуск Apache

Запустите Apache2:

/etc/init.d/apache2 start

Если вы хотите запускать apache2 при запуске системы выполните комманду:

rc-update add apache2 default

Посмотрите init scripts section для дополнительной информации.

Теперь у вас есть работующий веб сервер Apache2. Перейдите в вашем браузере на страницу http://localhost/ и вы должны увидеть страницу приветствия.

Вы найдете в /var/www/localhost/htdocs/index.html HTML код страницы приветствия которую вы видите на http://localhost/. Замечаем что Apache отображает htdocs/index.html когда вы пытаетесь открыть htdocs/ . Это особенность протокола HTTP. Apache не может передать директорию но может показать содержимое. Список (index) файлов в директории может быть передан. Apache ищет страницу со специальным именем index либо генерирует список файлов в директории. Если у вас есть страница с именем 'index' то будет отображена она; в этом случае вы не сможете посмотреть список файлов в директории.

1.3. Модули

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

Модули Apache обычно называются mod_something. Некоторые уже включены в Апачь а некоторые нужно добавлять отдельно. В портежах содержатся множество модулей. Процесс установки выглядит примерно так:

  1. emerge module ;

  2. отредактируйте /etc/conf.d/apache2 для активации добавьте -D MOD ;

  3. опционально /etc/apache2/modules.d/xy_module  ;

  4. добавьте директивы конфигурации в httpd.conf либо .htaccess  ;

        emerge mod_perl

        nano /etc/conf.d/apache2

        # change APACHE_OPTS="" to APACHE_OPTS="-D PERL"

Документацию по конкретным модулям вы найдете Apache Index in this wiki. Вы также можете почитать the documentation для дополнительной информации о модулях Apache.

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

В файле httpd.conf, (/etc/apache2/httpd.conf,) который поставляется с Gentoo хранятся большинство настроек Apache. However, it probably does both more and less than you need it to. Apache configuration files have a consistent syntax.

Любые строки начинающиеся с # игнорируются

# Apache не анализирует написанное здесь

# это комментарии

Некоторые строки начинаются с директивы и могут иметь один или несколько аргументов.

Директивы могут быть объединены в секции. Разделы обычно заключены в угловые скобки.

<Section>

  # Will only apply when the section matches

  AnotherDirective

</Section>

В разделе могут быть подразделы. Вот часть файла httpd.conf:

# If mod_alias is loaded

<IfModule mod_alias.c>

    # Alias is a directive and it only applies if mod_alias is loaded

    Alias /icons/ "/usr/share/httpd/icons/"

    # If the file is in the directory

    <Directory "/usr/share/httpd/icons">

        # Options will only apply if:

        #   mod_alias is loaded AND

        #   the file is in the directory

        Options Indexes MultiViews

    </Directory>

</IfModule>

Вы можете прочитать подробнее configuration files и sections в оффициальная документация Apache.

1.5. Common Problems

SSI Not Working

When configuring for SSI (Server Side Includes), an error may occur:

mod_include: Options +Includes (or IncludesNoExec) wasn't set, INCLUDES filter removed

The problem is that setting Options +Includes in either .htaccess or httpd.conf is overwritten by the additional configuration file as defined at the end of httpd.conf.

Include /etc/apache2/vhosts.d/*.conf

You need to edit this additional configuration file such that

AllowOverride None

Is replaced by

AllowOverride Options

Could Not Open Error Log

While starting Apache, it prints:

Error while starting apache: (2)No such file or directory: apache2: could not open error log file /usr/lib/apache2/logs/error_log.

/usr/lib/apache2/logs should be a symlink pointing to /var/log/apache2 . Check it using:

ls -la /usr/lib/apache2/logs

(note the lack of a slash on the end). If /var/log/apache2 is missing, create it and make sure you give apache ownership:

mkdir /var/log/apache2

chown apache:apache /var/log/apache2

If the symlink /usr/lib/apache2/logs is missing, you can create it:

ln -s /var/log/apache2 /usr/lib/apache2/logs

You don't need to set permissions on the symlink.

Check the Logs

See /var/log/apache2/error_log for errors, especially towards the end of the file. You may find tail useful because it displays only the last few lines of a file:

tail /var/log/apache2/error_log

If you wish to keep an eye one the log the -f option for tail may be useful:

 tail -f /var/log/apache2/error_log

Here's one error you might see:

Error: [alert] (EAI 2)Name or service not known: mod_unique_id: unable to find IPv4 address of ""

With the base installation "mod_unique_id" is turned on, this can cause problems, notably the server not starting. Simply comment out this module in /etc/apache2/httpd.conf and the problem will be solved.

(Your config file might be /etc/apache2/conf/apache2.conf)

Forbidden User Directories

If the server is returning "403 Forbidden" while accessing http://server/~username/ Make sure Apache (usually user apache and group apache) has read access to username's home directory and public_html (or equivalent). You can grant everyone read access using:

chmod 755 ~username/ ~username/public_html/

Not Enough Entropy

If Apache2

accepts connections

does not respond to clients

creates exactly one process

is not stopped by

/etc/init.d/apache2 stop

Check to see how much entropy is available using:

cat /proc/sys/kernel/random/entropy_avail

If little entropy (less than 100) is available, Apache2 is probably waiting for more so it can generate the secret for digest authentication (mod_auth_digest). To generate more entropy, just do something else for a little while. Grepping the kernel or emerging a package usually works well.

The video-entropyd and audio-entropyd supply /dev/random with entropy gathered from your video and audio devices, respectively. If you have a hardware random number generator (RNG), you can emerge rng-tools and run rngd.

If there's still a shortage of entropy, you can enable the urandom USE flag and re-emerge APR and Apache2. This makes APR use /dev/urandom, which falls back to a pseudorandom number generator when there isn't enough entropy. The program gets a number immediately, but it is cryptographically weaker. This is okay for some things (e.g. solitaire), but completely unacceptable for others (like PGP key generation).

Confusing config files

If you start the Apache2 server with the startup script /etc/init.d/apache2 check to see if the line

local myconf="/etc/apache2/httpd.conf"

from /etc/init.d/apache2 points to your configuration script. If it points to apache.conf and you use httpd.conf, make the necessary adjustments.

1.6. See Also

Configure LAMP (Linux, Apache, MySQL, and Python/PHP/Perl) — A popular web server combination

Apache Installation & Configuration

How to install mod_security for Apache

В началоСлед.: Настройка iptables для начинающих
В начало → Сетевые сервисы