Apache

From Gentoo Wiki
Jump to: navigation, search
This page is a translated version of the page Apache and the translation is 98% complete.

Outdated translations are marked like this.
Other languages:
Deutsch • ‎English • ‎Nederlands • ‎español • ‎français • ‎italiano • ‎polski • ‎português do Brasil • ‎русский • ‎中文(中国大陆)‎ • ‎日本語 • ‎한국어

HTTP-сервер Apache — это эффективный и расширяемый веб-сервер. Он является одним из самых популярных веб-серверов в Интернете.

Установка

Заметка
Если требуется обновление, обратитесь к руководству по обновлению.

USE-флаги

USE flags for www-servers/apache The Apache Web Server

apache2_modules_access_compat Group authorizations based on host (name or IP address). Available as a compatibility module with previous versions.
apache2_modules_authn_core Provides core authentication capabilities common to all authentication providers (functionality provided by authn_alias in previous versions).
apache2_modules_authz_core Provides core authorization capabilities to various authorization/authorization modules, such as authn_file and authz_user.
apache2_modules_authz_dbd Provides authorization capabilities via SQL database so that authenticated users can be allowed or denied access to portions of the web site by group membership.
apache2_modules_brotli Enable brotli compression support
apache2_modules_cache_disk Disk based storage module for the HTTP caching filter (similar to mem_cache in previous versions).
apache2_modules_cache_socache Shared object cache (socache) based storage module for the HTTP caching filter.
apache2_modules_http2 Enable http2/alpn module
apache2_modules_lbmethod_bybusyness Pending request counting load balancer scheduler algorithm for proxy_balancer.
apache2_modules_lbmethod_byrequests Request counting load balancer scheduler algorithm for proxy_balancer.
apache2_modules_lbmethod_bytraffic Weighted traffic counting load balancer scheduler algorithm for proxy_balancer.
apache2_modules_lbmethod_heartbeat Heartbeat traffic counting load balancer scheduler algorithm for proxy_balancer.
apache2_modules_macro Macros for the Apache config file.
apache2_modules_md Managing domains across virtual hosts, certificate provisioning via the ACME protocol.
apache2_modules_proxy_fcgi FCGI support module for mod_proxy.
apache2_modules_proxy_html Module to rewrite links in html pages behind a reverse proxy
apache2_modules_proxy_http2 HTTP2 support module for mod_proxy.
apache2_modules_proxy_wstunnel Provides support for the tunnelling of web socket connections to a backend websockets server.
apache2_modules_ratelimit Ratelimit module for transfer rate management
apache2_modules_remoteip Remotip module for logging
apache2_modules_slotmem_shm Slot-based shared memory provider.
apache2_modules_socache_shmcb A shared object cache provider using a high-performance cyclic buffer inside a shared memory segment.
apache2_modules_unixd Basic (required) security for Unix-family platforms.
apache2_modules_watchdog Provides infrastructure for other modules to periodically run tasks
apache2_modules_xml2enc Enable xml2 encoding module
ldap Add LDAP support (Lightweight Directory Access Protocol)
static Link in apache2 modules statically rather then plugins
suexec Install suexec with apache
suexec-caps Install suexec with capabilities instead of SUID
suexec-syslog Log suexec to syslog instead of to a separate file

Emerge

Multi-Processing Module

If you want to use the Apache event or worker MPM, enable the Apache threads USE flag:

Файл /etc/portage/package.useApache threads support
www-servers/apache threads

Если вы хотите использовать event MPM (Multi-Processing Module) для Apache, то добавьте следующую строку в make.conf:

Файл /etc/portage/make.confApache event MPM
APACHE2_MPMS="event"

Если вы хотите использовать worker MPM для Apache, то добавьте следующее в make.conf:

Файл /etc/portage/make.confApache worker MPM
APACHE2_MPMS="worker"

If no Multi-Processing Module (MPM) is selected, the default MPM is used. The default MPM depends on platform capabilities (like threads support), read more in the official Apache docs.


Далее, установите Apache с помощью emerge:

root #emerge --ask www-servers/apache

Поддержка в других пакетах

Включение глобального USE-флага apache2 добавит поддержку Apache в других пакетах. Это приведёт к тому, что при установке зависимого от него пакета www-servers/apache будет установлен автоматически.

Файл /etc/portage/make.confДобавление Apache к системным USE-флагам
USE="apache2"

После настройки переменной USE потребуется обновить систему, чтобы изменения вступили в силу:

root #emerge --ask --changed-use --deep @world

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

Файлы

Существуют два основных файла, которые настраивают поведение Apache2 в системе:

  • Конфигурационный файл init-скрипта Apache2 в Gentoo: /etc/conf.d/apache2
  • Стандартный файл конфигурации сервера Apache2: /etc/apache2/httpd.conf

/etc/conf.d/apache2

Файл apache2, находящийся в /etc/conf.d, является конфигурационным файлом для Gentoo init-скрипта. Единственная незакомментированная строка содержит переменную APACHE2_OPTS:

Файл /etc/conf.d/apache2
APACHE2_OPTS="-D DEFAULT_VHOST -D INFO -D SSL -D SSL_DEFAULT_VHOST -D LANGUAGE"

Эта строка определяет параметры, которые будут переданы различным конфигурационным файлам, использующим выражение <IfDefine option-name> для включения или отключения некоторой части настроек. Вернемся к этому чуть позже в этой статье.

/etc/apache2/httpd.conf

Файл httpd.conf является стандартным конфигурационным файлом сервера Apache. На самом деле это файл является лишь точкой входа, так как вся конфигурация разбита на множество файлов в каталоге /etc/apache2/, которые собираются вместе посредством директивы Include. Например, директива Include /etc/apache2/modules.d/*.conf в httpd.conf предназначена для включения всех файлов из /etc/apache2/modules.d/, имя которых оканчивается на .conf.

Принимая во внимание то, о чём говорилось в предыдущем разделе, и то, что конфигурационные файлы модулей (файлы в /etc/apache2/modules.d) почти всегда начинаются с <IfDefine module-name>, получаем, что содержимое одного файла в /etc/apache2/modules.d будет объединено с остальной конфигурацией ТОЛЬКО в том случае, если соответствующий параметр установлен с помощью флага -D module-name для переменной APACHE2_OPTS в файле /etc/conf.d/apache2. Конфигурационный файл 00_default_settings.conf является исключением из этого правила, так как не начинается с выражения IfDefine и, следовательно, всегда включается в конечную конфигурацию.

Настройки по умолчанию

Ниже приведена конфигурация свежей установки сервера Apache, получающаяся объединением различных конфигурационных файлов. Начнём с точки входа /etc/apache2/httpd.conf.

Предупреждение
Листинг приведён только для быстрого ознакомления и общего представления. Крайне рекомендуем обратить внимание на комментарии, включённые в различные файлы, это поможет пониманию деталей настройки. Для более глубокого понимания следует обратиться руководству Apache.
Файл /etc/apache2/httpd.conf
ServerRoot "/usr/lib64/apache2"
  
# Модуль загружается в любом случае в предположении, что USE-флаг
# не отключён в /etc/portage/make.conf или /etc/portage/package.use
LoadModule actions_modulemodules/mod_actions.so
...
#other modules loaded that way : alias_module, auth_basic_module, authn_alias_module,
# authn_anon_module, authn_dbm_module, authn_default_module, authn_file_module, 
# authz_dbm_module, authz_default_module, authz_groupfile_module, authz_host_module, 
# authz_owner_module, authz_user_module, autoindex_module,  cgi_module,  cgid_module, 
# deflate_module, dir_module, env_module, expires_module, ext_filter_module, filter_module,
#  headers_module, include_module,  log_config_module, logio_module, mime_module,  
# mime_magic_module, negotiation_module, rewrite_module, setenvif_module, 
# speling_module,ssl_module, status_module, unique_id_module, usertrack_module, host_alias_module
  
  
# Модуль загружается по условию в предположении, что соответствующий USE-флаг
# не отключён в /etc/portage/make.conf или /etc/portage/package.use
# (т. е. USE-флаг установлен)
<IfDefine AUTHNZ_LDAP>
LoadModule authnz_ldap_module modules/mod_authnz_ldap.so
</IfDefine>
# другие модули, загружающиеся таким образом: cache_module, dav_module, dav_fs_module,
# dav_lock_module,disk_cache_module,  file_cache_module, info_module, ldap_module,
# mem_cache_module, userdir_module
  
  
User apache
Group apache
  
# Дополнительные настройки
#**************************************************************************************vvv
# эта часть включается через Include /etc/apache2/modules.d/*.conf
  
# из файла /etc/apache2/modules.d/00_default_settings.conf-------------v
# включается всегда, так как нет соответствующего отключающего параметра.
Timeout 300
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 15
UseCanonicalName Off
AccessFileName .htaccess
ServerTokens Prod
TraceEnable off
ServerSignature On 
HostnameLookups Off
EnableMMAP On
EnableSendfile On
FileEtag INode MTime Size
ContentDigest Off
ErrorLog /var/log/apache2/error_log
LogLevel warn
  
<Directory />
	Options FollowSymLinks
	AllowOverride None
	Require all denied
</Directory>
  
<IfModule dir_module>
	DirectoryIndex index.html index.html.var
</IfModule>
<FilesMatch "^\.ht">
	Require all denied
</FilesMatch>
#--------------------------------------------------------------------------^
  
#included from 00_mod_info.conf--------------------------------------------v
<IfDefine INFO>
<Location /server-info>
	SetHandler server-info
	Require host 127.0.0.1
</Location>
</IfDefine>
#--------------------------------------------------------------------------^
  
#--------------------------------------------------------------------------v
# включено из 00_languages.conf
# Настройки для поддержки страниц на разных языках.
<IfDefine LANGUAGE>
  
	AddLanguage ca .ca
	...
	AddLanguage zh-TW .zh-tw
  
	LanguagePriority en ca cs da de el eo es et fr he hr it ja ko ltz nl nn no pl pt pt-BR ru sv zh-CN zh-TW
  
	ForceLanguagePriority Prefer Fallback
  
	AddCharset us-ascii.ascii	.us-ascii
	AddCharset ISO-8859-1		.iso8859-1 .latin1
	...
	AddCharset shift_jis		.shift_jis .sjis
</IfDefine>
#---------------------------------------------------------------------------^
#**************************************************************************************^^^
  
  
#***************************************************************************************vvv
# эта часть включается через Include /etc/apache2/vhosts.d/*.conf
# из 00_default_ssl_vhost.conf-----------------------------------------------------vv
<IfDefine SSL>
	<IfDefine SSL_DEFAULT_VHOST>
		<IfModule ssl_module>
			Listen 443
  
			<VirtualHost _default_:443>
				ServerName localhost
                                #------------------------------------------v
				# эта часть включается через Include /etc/apache2/vhosts.d/default_vhost.include
				ServerAdmin root@localhost
				DocumentRoot "/var/www/localhost/htdocs"
  
  	
				<Directory "/var/www/localhost/htdocs">
	   				Options Indexes FollowSymLinks
	   				AllowOverride All
	   				Require all granted
				</Directory>
  
				<IfModule alias_module>
	   				ScriptAlias /cgi-bin/ "/var/www/localhost/cgi-bin/"
				</IfModule>
  
				<Directory "/var/www/localhost/cgi-bin">
	   				AllowOverride None
	   				Options None
	   				Require all granted
				</Directory>
        			# конец блока Include ---------------------------^
  	
				ErrorLog /var/log/apache2/ssl_error_log
  
				<IfModule log_config_module>
					TransferLog /var/log/apache2/ssl_access_log
				</IfModule>
				SSLEngine on
				SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
				SSLCertificateFile /etc/ssl/apache2/server.crt
				SSLCertificateKeyFile /etc/ssl/apache2/server.key
  
				<FilesMatch "\.(cgi|shtml|phtml|php)$">
					SSLOptions +StdEnvVars
				</FilesMatch>
  
				<Directory "/var/www/localhost/cgi-bin">
					SSLOptions +StdEnvVars
				</Directory>
  
				<IfModule setenvif_module>
					BrowserMatch ".*MSIE.*" \
					nokeepalive ssl-unclean-shutdown \
					downgrade-1.0 force-response-1.0
				</IfModule>
  
  
				<IfModule log_config_module>
					CustomLog /var/log/apache2/ssl_request_log \
					"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
					</IfModule>
			</VirtualHost>
		</IfModule>
	</IfDefine>
</IfDefine>
#---------------------------------------------------------------------------------^^
#из 00_default_vhost.conf-------------------------------------------------------vv
<IfDefine DEFAULT_VHOST>
	Listen 80
	NameVirtualHost *:80
  
	<VirtualHost *:80>
		ServerName localhost
  
		#---------------------------------------------------------------v
		# эта часть включается через Include /etc/apache2/vhosts.d/default_vhost.include
		ServerAdmin root@localhost
		DocumentRoot "/var/www/localhost/htdocs"
  
  	
		<Directory "/var/www/localhost/htdocs">
	   		Options Indexes FollowSymLinks
	   		AllowOverride All
	   		Require all granted
		</Directory>
  
		<IfModule alias_module>
	   		ScriptAlias /cgi-bin/ "/var/www/localhost/cgi-bin/"
		</IfModule>
  
		<Directory "/var/www/localhost/cgi-bin">
	   		AllowOverride None
	   		Options None
	   		Require all granted
		</Directory>
        	# конец блока Include -----------------------------------------------^
  
		<IfModule mpm_peruser_module>
			ServerEnvironment apache apache
		</IfModule>
	</VirtualHost>
</IfDefine>
#-----------------------------------------------------------------------------------^^
# конец блока include *************************************************************************************^^^

Первые признаки жизни

Как видно из приведенной выше первоначальной конфигурации, предварительно установленным каталогом для виртуального хоста DocumentRoot является /var/www/localhost/htdocs, именем соответствующего сервера — localhost. К тому же в каталог для DocumentRoot устанавливается файл index.html, так что, чтобы проверить все ли правильно установлено, можно зайти браузером на http://localhost/.

На странице должно появиться сообщение «It works!».

Предупреждение
По умолчанию у Firefox включена возможность, предназначенная для помощи пользователям, которые ошиблись при наборе URL в адресной строке. Если URL не удаётся разрешить, то Firefox перепробует несколько альтернатив, пытаясь угадать, что пользователь 'мог' иметь в виду: добавляет .com в конец или www. в начало имени хоста и проверяет, разрешаются ли полученные URL.

Эта возможность была введена в ранних версиях Firefox и стала раздражающим фактором для разработчиков. Если запущенный на локальной машине сервер не отвечает, Firefox будет пробовать localhost.com или www.localhost.com, часто заканчивается страницей «Не найдено».

Чтобы отключить эту возможность:

  1. Введите about:config в адресной строке.
  2. Нажмите «Я обещаю, что буду осторожен» и войдите на специальную страницу конфигурации.
  3. Введите browser.fixup.alternate.enabled в появившейся строке поиска.
  4. Щёлкните правой кнопкой мыши на появившийся ниже пункт browser.fixup.alternate.enabled и переключите его значение в положение false.

Включение mod_security

Установите www-apache/mod_security:

root #emerge --ask www-apache/mod_security

Включите модуль SECURITY в переменной APACHE2_OPTS файла apache2:

Файл /etc/conf.d/apache2Включение модуля безопасности
APACHE2_OPTS="... -D SECURITY"

Для настройки этого модуля отредактируйте /etc/apache2/modules.d/79_modsecurity.conf и /etc/apache2/modules.d/80_modsecurity-crs.conf файлы, а затем перезапустите Apache.

Включение поддержки PHP

Установите PHP с USE-флагом apache2 и включите соответствующий модуль:

Важно
Начиная с версии app-eselect/eselect-php-0.8.1 и выше, переменная APACHE2_OPTS изменена с -D PHP5 на -D PHP. Это позволит в будущем плавно переходить от версии к версии.
Файл /etc/conf.d/apache2Включение модуля PHP
APACHE2_OPTS="... -D PHP"

Перед тем как проверить, работает ли модуль PHP, убедитесь, что файл /etc/apache2/modules.d/70_mod_php.conf существует и содержит следующее определение:

Файл /etc/apache2/modules.d/70_mod_php.confПроверка загрузки модуля PHP
<IfDefine PHP>
	# Симлинк mod_php.so контролируется eselect-php.
        # Тем не менее, имя модуля изменяется с php5_module на php7_module,
	# поэтому мы не можем слепо загрузить все, как есть.
	# Вместо этого мы позволяем eselect-php управлять небольшим
	# конфигурационным файлом, который загрузит необходимые модули.
	#
	# Это относительно ServerRoot (смотрите httpd.conf).
	Include ../../../var/lib/eselect-php/mod_php.conf
 
	# Сообщите apache, что mod_php должен обрабатывать файлы PHP.
	#
	# ЗАМЕТКА: Избегайте AddHandler/AddType в целях безопасности (bug
	# #538822). Пожалуйста, прочитайте соответствующую новость!
	<FilesMatch "\.(php|php[57]|phtml)$">
		SetHandler application/x-httpd-php
	</FilesMatch>
 
	# PHP исходный код, который подразумевает отображение его как
	# исходный код с подсветкой синтаксиса.
	<FilesMatch "\.phps$">
		SetHandler application/x-httpd-php-source
	</FilesMatch>
 
	DirectoryIndex index.php index.phtml
</IfDefine>

Если он не существует, то создайте его.

Чтобы проверить, работает ли модуль PHP, создайте тестовую страницу:

Файл /var/www/localhost/htdocs/index.phpТестовая страница PHP
<html>
 <body>
  <?php phpinfo(); ?>
 </body>
</html>

Теперь удалите или переименуйте /var/www/localhost/htdocs/index.html и откройте тестовую страницу: http://localhost/.

Должна отобразиться таблица с настройками PHP.

Выбор версии PHP

Чтобы изменить версию PHP обработчика для Apache, нужно сперва вывести список доступных Server Application Programming Interface (SAPI) для apache2:

root #eselect php list apache2
 [1]   php5.3
 [2]   php5.4 *
 [3]   php5.5

Измените на необходимую версию:

root #eselect php set apache2 N

В приведенном выше примере замените N на необходимый номер из вывода eselect php list apache2, который был показан ранее.

Виртуальные хосты

Для каждого виртуального хоста необходимо иметь каталог DocumentRoot, который демон Apache сможет открыть и прочитать. Добавьте файл конфигурации виртуального хоста (VirtualHost.conf) в каталоге /etc/apache2/vhosts.d, который будет использовать данный DocumentRoot и данное имя сервера виртуального хоста. Не забудьте добавить запись для данного доменного имени в /etc/hosts.

Чтобы назначить файлам виртуального хоста пользователя/группу apache, используйте chown, как показано в следующем примере:

root #chown apache:apache /var/www/sitename

Ниже приведены два примера определения виртуальных хостов, один для domainname1.com, а второй для domainname2.com. Обратите внимание, что директивы DocumentRoot и ServerName различаются, хотя сам хост (*:80) один и тот же:

Код Пример определения виртуальных хостов
<VirtualHost *:80>
    ServerAdmin email@site.com
    DocumentRoot /var/www/website1
    ServerName domainname1.com
</VirtualHost>
  
<VirtualHost *:80>
    ServerAdmin email@site.com
    DocumentRoot /var/www/website2
    ServerName domainname2.com
</VirtualHost>

Также рекомендуется дать определение виртуального хоста на основании IP-адреса. Это позволит администратору оставить сообщение пользователям, которые пытаются зайти на сайт по IP-адресу:

Код Виртуальный хост на основании IP
<VirtualHost *:80>
    ServerAdmin email@site.com
    DocumentRoot /var/www/html
    ServerName xxx.xxx.xxx.xxx
</VirtualHost>

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

Включение PHP через fcgid

Установите www-apache/mod_fcgid и dev-lang/php. Пакет PHP требует включения USE-флага cgi:

root #emerge --ask www-apache/mod_fcgid dev-lang/php

Отредактируйте файл mod_fcgid.conf:

Файл /etc/apache2/modules.d/20_mod_fcgid.conf
<IfDefine FCGID>
LoadModule fcgid_module modules/mod_fcgid.so
SocketPath /var/run/fcgidsock
SharememPath /var/run/fcgid_shm
  
AddHandler php-fcgid .php
AddType application/x-httpd-php .php
Action php-fcgid /fcgid-bin/php-fcgid-wrapper
# max request 128mb
FcgidMaxRequestLen 134217728
<Location /fcgid-bin/>
        SetHandler fcgid-script
        Options +ExecCGI
</Location>
</IfDefine>

Создайте необходимый каталог:

root #mkdir /var/www/localhost/htdocs/fcgid-bin

Сделайте символическую ссылку для PHP-wrapper:

root #ln -s /usr/bin/php-cgi /var/www/localhost/htdocs/fcgid-bin/php-fcgid-wrapper

Включите модуль FCGID:

Файл /etc/conf.d/apache2Включение модуля fcgid
APACHE2_OPTS="... -D FCGID"

В конце перезапустите Apache и проверьте сайт phpinfo(), который мы создали раньше. Значение Server API должно быть CGI/FastCGI

Включение PHP-FPM через mod_proxy_fcgi в Apache 2.4

Следующие условия должны быть выполнены, чтобы включить PHP-FPM через mod_proxy_fcgi:

  • >= PHP 5.3
  • >= Apache 2.4

Кроме того, есть несколько ограничений доступной функциональности в Apache 2.4:

Следующая конфигурация будет работать только с Apache 2.4.10 и выше. Это основано на директиве FilesMatch и располагается непосредственно в главном конфигурационного файле или в конкретных VirtualHost. Расположение UNIX-сокета определяется в файле php-fpm.conf директивой listen с возможностью указать различные UNIX-сокеты для различных сайтов или функций.

В следующем примере FilesMatch размещена в конфигурационном файле модуля PHP:

Файл /etc/conf.d/modules.d/70_mod_php.confИспользование PHP-FPM (рекомендуется для Apache 2.4.10 и выше)
<IfDefine PHP>
        <FilesMatch "\.php$">
                SetHandler "proxy:unix:/var/run/php-fpm/www.sock|fcgi://localhost/"
        </FilesMatch>
  
	# Set it to handle the files
	<IfModule mod_mime.c>
		AddHandler application/x-httpd-php .php .php5 .phtml
		AddHandler application/x-httpd-php-source .phps
	</IfModule>

	DirectoryIndex index.php index.phtml
 </IfDefine>

Или вы можете использовать ProxyPassMatch — единственный вариант, если версия Apache между 2.4.0 и 2.4.8 включительно.

Файл /etc/apache2/modules.d/70_mod_php.confИспользование PHP-FPM (рекомендуется для Apache 2.4.8 и старее)
<IfDefine PHP>
        # Send all requested PHP files to PHP-FPM via fcgi://PHP_FPM_LISTEN_ADDRESS:PHP_FPM_LISTEN_PORT/DOCUMENT_ROOT/$1
        ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/var/www/localhost/htdocs/$1
  
	# Set it to handle the files
	<IfModule mod_mime.c>
		AddHandler application/x-httpd-php .php .php5 .phtml
		AddHandler application/x-httpd-php-source .phps
	</IfModule>
  
	DirectoryIndex index.php index.phtml
 </IfDefine>

По умолчанию директива listen не настроена для использования сокета. Сперва создайте каталог для файла сокета:

root #mkdir /var/run/php-fpm

Затем обновите php-fpm.conf файл следующим образом:

Файл php-fpm.confИзменение директивы listen
; Set permissions for unix socket, if one is used. In Linux, read/write
; permissions must be set in order to allow connections from a web server. Many
; BSD-derived systems allow connections regardless of permissions.
; Default Values: user and group are set as the running user
;                 mode is set to 0666
listen.owner = nobody
listen.group = nobody
;listen.mode = 0666
 
 ; The address on which to accept FastCGI requests.
 ; Valid syntaxes are:
 ;   'ip.add.re.ss:port'    - to listen on a TCP socket to a specific address on
 ;                            a specific port;
 ;   'port'                 - to listen on a TCP socket to all addresses on a
 ;                            specific port;
 ;   '/path/to/unix/socket' - to listen on a unix socket.
 ; Note: This value is mandatory.
 ;listen = 127.0.0.1:9000
listen = /var/run/php-fpm/www.sock

Затем подключите модули PHP и PROXY:

Файл /etc/conf.d/apache2Включение модулей PHP и proxy
APACHE2_OPTS="... -D PHP -D PROXY"

Использование

Сервисы

OpenRC

Запуск сервера Apache:

root #/etc/init.d/apache2 start

Добавление Apache в уровень запуска по умолчанию:

root #rc-update add apache2 default

Перезапуск службы Apache:

root #/etc/init.d/apache2 restart

Перезагрузка конфигурационных файлов Apache:

root #/etc/init.d/apache2 reload

systemd

Запуск сервера Apache:

root #systemctl start apache2

Добавление Apache в уровень запуска по умолчанию:

root #systemctl enable apache2

Перезапуск службы Apache:

root #systemctl restart apache2

Устранение проблем

Ссылки

Сервер Apache бывает трудно настроить правильно. Ниже приведены некоторые ссылки, которые могут быть полезны при возникновении проблем:

Тестирование

Проверка IP-интерфейсов и портов, на которых Apache2 работает и слушает их:

root #netstat -tulpen | grep apache
tcp     0     0 0.0.0.0:80      0.0.0.0:*     LISTEN     0     10932720     4544/apache2        
tcp     0     0 0.0.0.0:443     0.0.0.0:*     LISTEN     0     10932716     4544/apache2        

Проверка соединения с запущенным на localhost сервером Apache:

user $telnet localhost 80
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.

Тестовое соединение можно разорвать нажатием Ctlr+c и Enter.

apr_sockaddr_info_get() failed for <System_Hostname>

Ошибка:

apache2: apr_sockaddr_info_get() failed for System_Hostname

Решение:

Когда такое происходит, добавьте имя хоста в файл /etc/hosts:

Файл /etc/hostsДобавление имени хоста для Apache
127.0.0.1 localhost System_Hostname

Смотрите также

Внешние ресурсы