В начало → Сетевые сервисы |
Apache2 сейчас работает на большинстве системах без проблем, если у вас возникли проблемы прочтите раздел Common Problems это может помочь.
Начнем установку apache2: добавьте "apache2" к вашим USE флагу в файле /etc/make.conf и выполните:
emerge 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' то будет отображена она; в этом случае вы не сможете посмотреть список файлов в директории.
Apache очень гибок. Он может сёрфить файлы используя HTTP либо серфить файлы и помощью FTP. Он может передать файл с жесткого диска, либо вывод PHP скрипта. Для реализации этого Apache использует модули. Другие приложения используют для этого плагины. При добавлении модули добавляют функциональность. Их также можно инсталлировать, удалять, пересобирать (перекомпилировать).
Модули Apache обычно называются mod_something. Некоторые уже включены в Апачь а некоторые нужно добавлять отдельно. В портежах содержатся множество модулей. Процесс установки выглядит примерно так:
emerge module ;
отредактируйте /etc/conf.d/apache2 для активации добавьте -D MOD ;
опционально /etc/apache2/modules.d/xy_module ;
добавьте директивы конфигурации в 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.
В файле 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.
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.
В начало → Сетевые сервисы |