Apache

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

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

Apache 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:

FILE /etc/portage/package.useApache threads support
www-servers/apache threads

Apache event MPM を使いたい場合、以下を make.conf に追加します:

FILE /etc/portage/make.confApache event MPM
APACHE2_MPMS="event"

Apache worker MPM を使いたい場合、以下を make.conf に追加します:

FILE /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

グローバルなサポート

apache2 グローバル USE フラグを有効化することで、他のパッケージの Apache サポートの提供を受けられます。これにより、Apache に依存するパッケージが emerge された場合に www-servers/apache が自動的にインストールされます。

FILE /etc/portage/make.confシステム USE フラグに Apache を追加する
USE="apache2"

USEフラグを設定した後には、システム全体をアップデートして変更を適用させたいかもしれません:

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

設定

ファイル

システム上のApache2の動作を設定する、2つの主要なファイルがあります:

  • Gentoo の Apache2 用 init スクリプトの設定ファイル /etc/conf.d/apache2
  • Apache2 サーバーで一般的に用いられている設定ファイル /etc/apache2/httpd.conf

/etc/conf.d/apache2

/etc/conf.d に配置されている apache2 ファイルは Gentoo の init スクリプトの設定ファイルです。このファイルで唯一有効な行は APACHE2_OPTS 変数の行です:

FILE /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 ディレクティブを使って統合されます。たとえば、httpd.conf 内の Include /etc/apache2/modules.d/*.conf という文は、/etc/apache2/modules.d/ にあるファイルのうち名前が .conf で終わるものをすべて取り込みます。

上記で見たように、またモジュールの設定ファイル(/etc/apache2/modules.d内のファイル)のほとんどが<IfDefine module-name>から開始することから、対応する-D module-nameというフラグが/etc/conf.d/apache2APACHE2_OPTS変数に設定されていなければ、/ect/apache2/modules.d内のファイルの内容は有効にはなりません。00_default_settings.confという設定ファイルは例外でIfDefineから開始しておらず、そのため常に有効になります。

デフォルト

Apache サーバの新規インストール後には、以下のような、異なる設定ファイル類を集約した設定ができあがっています。その入口である /etc/apache2/httpd.conf から始めましょう。

警告
これはクイックリファレンスであり、概観を記載したものでしかありません。設定における追加や削除を理解するには、様々なファイル群を含めコメント類を熟読することが強く期待されます。また、Apacheの設定のより深い理解のために Apache マニュアルも参照してください。
FILE /etc/apache2/httpd.conf
ServerRoot "/usr/lib64/apache2"
  
#Module loaded unconditionally, assuming the USE flag is no unset in
# /etc/portage/make.conf or in /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
  
  
#Modules loaded conditionally, assuming matching USE flag is not unset in
# /etc/portage/make.conf or in /etc/portage/package.use (flag to be set in )
<IfDefine AUTHNZ_LDAP>
LoadModule authnz_ldap_module modules/mod_authnz_ldap.so
</IfDefine>
#other modules loaded that way : 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
  
# Supplemental configuration
#**************************************************************************************vvv
#this part is included via Include /etc/apache2/modules.d/*.conf 
  
#included from /etc/apache2/modules.d/00_default_settings.conf-------------v
#this is always included as there is not option to deactivate it.
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
#included from 00_languages.conf
# Settings for hosting different languages.
<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
#this part is included via Include /etc/apache2/vhosts.d/*.conf 
#from 00_default_ssl_vhost.conf-----------------------------------------------------vv
<IfDefine SSL>
	<IfDefine SSL_DEFAULT_VHOST>
		<IfModule ssl_module>
			Listen 443
  
			<VirtualHost _default_:443>
				ServerName localhost
                                #------------------------------------------v
				# this part is included via 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>
        			#end of 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>
#---------------------------------------------------------------------------------^^
#from 00_default_vhost.conf-------------------------------------------------------vv
<IfDefine DEFAULT_VHOST>
	Listen 80
	NameVirtualHost *:80
  
	<VirtualHost *:80>
		ServerName localhost
  
		#---------------------------------------------------------------v
		# this part is included via 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>
        	#end of Include -----------------------------------------------^
  
		<IfModule mpm_peruser_module>
			ServerEnvironment apache apache
		</IfModule>
	</VirtualHost>
</IfDefine>
#-----------------------------------------------------------------------------------^^
# end of include ****************************************************************************************^^^

稼働の第一歩

上記初期設定にあるように、インストール済みのバーチャルホストの DocumentRoot ディレクトリが /var/www/localhost/htdocs にあり、サーバ名は「localhost」です。 DocumentRoot にはさらに、index.html ファイルがひとつ生成されていますので、正常にインストールができたかどうかを確認するためには http://localhost/ にブラウザでアクセスしましょう。

そのウェブページには「It works!」のメッセージが表示されているはずです。

警告
Firefoxには、ブラウザのURLバーでミスタイプした場合に役に立つ機能があります。もし入力したURLが解決できなかった場合、FirfoxはURLのホスト名の部分に.comを追加したり、www.を先頭に追加したりして、自動的にユーザが意図していたであろうURLを解決しようとします。

この機能はFirefoxの初期からありますが、開発者にとっては面倒なものでした。つまり、localhostで動いているサーバが応答しなかった場合、Firefoxはlocalhost.comwww.localhost.comに接続を試みたあげく、結局"not found"のページを見るということになってしまうのです。

この「機能」を無効にするために:

  1. about:configとブラウザのURLバーに入力
  2. 「細心の注意を払って使用する」のボタンをクリックして特別な設定ページに入ります
  3. 検索ボックスにbrowser.fixup.alternate.enabledと入力
  4. 下にフィルタされたリストが出てくるので、browser.fixup.alternate.enabledを右クリックし、toggleを選んで値をfalseにする

mod_securityを有効にする

www-apache/mod_securityのインストール:

root #emerge --ask www-apache/mod_security

apache2ファイルのAPACHE2_OPTS変数でSECURITYモジュールを有効にする:

FILE /etc/conf.d/apache2セキュリティーモジュールの有効化
APACHE2_OPTS="... -D SECURITY"

このモジュールを制御するには、/etc/apache2/modules.d/79_modsecurity.conf/etc/apache2/modules.d/80_modsecurity-crs.conf ファイルを編集します。/usr/share/doc/mod_security-2.9.1-r1/modsecurity.conf-recommended.bz2 ファイルにおすすめの設定が含まれています( https://github.com/SpiderLabs/ModSecurity/wiki/Reference-Manual#A_Recommended_Base_Configuration )。ベースとなる設定を /etc/apache2/modules.d/79_modsecurity.conf にコピーし、必要に応じて設定を微調整します。/usr/share/doc/modsecurity-crs-3.0.2/crs-setup.conf.example.bz2 ファイルを適当な場所、たとえば /etc/conf.d/crs-setup.conf に解凍して微調整し、解凍したファイルを /etc/apache2/modules.d/80_modsecurity-crs.conf で読み込みます。最後に Apache を再起動します。サイトの Apache ログファイルでエラーをチェックし、状況に応じて対処してください。

PHP サポートを有効にする

apache2 の USE フラグを付けて PHP をインストールし、モジュールを有効にします:

Important
>=app-eselect/eselect-php-0.8.1 では、APACHE2_OPTS 変数が -D PHP5 から -D PHP に変更されました。これにより将来のメジャーバージョンへの移行がスムーズになります。2年間の移行期間をおいた後、eselect-php-0.9.4-r5 で互換 shim (訳註: 互換性確保のための仕組み) は削除されました。
FILE /etc/conf.d/apache2PHPモジュールを有効にする
APACHE2_OPTS="... -D PHP"

PHP モジュールが動作しているかテストする前に、/etc/apache2/modules.d/70_mod_php.conf ファイルが存在し、以下の定義が記載されているか、確認しましょう。

FILE /etc/apache2/modules.d/70_mod_php.confPHPモジュールがロードされたことを確認する
<IfDefine PHP>
	# The mod_php.so symlink is controlled by
	# eselect-php. However, the module name changed from
	# php5_module to php7_module so we can't blindly load whatever
	# is there. Instead we let eselect-php manage a small
	# configuration file that loads the appropriate module.
	#
	# This is relative to ServerRoot (see httpd.conf).
	Include ../../../var/lib/eselect-php/mod_php.conf
 
	# Tell apache that mod_php should handle PHP files.
	#
	# NOTE: Avoiding AddHandler/AddType for security (bug
	# #538822). Please read the related news item!
	<FilesMatch "\.(php|php[57]|phtml)$">
		SetHandler application/x-httpd-php
	</FilesMatch>
 
	# PHP source files which are meant to be displayed as
	# syntax-highlighted source code.
	<FilesMatch "\.phps$">
		SetHandler application/x-httpd-php-source
	</FilesMatch>
 
	DirectoryIndex index.php index.phtml
</IfDefine>

もしこのファイルがないようなら、作りましょう。

PHPモジュールが動作しているか確認するために、テストページを作成:

FILE /var/www/localhost/htdocs/index.phpPHPテストページ
<html>
 <body>
  <?php phpinfo(); ?>
 </body>
</html>

そして、/var/www/localhost/htdocs/index.htmlを削除するかリネームして、テストページを開きましょう: http://localhost/

PHPの設定が記述された表が見られるでしょう。

PHPのバージョンを変更する

Apache によって処理される PHP のバージョンを変えるには、まず apache2 Server Application Programming Interface (SAPI) で利用可能なバージョンをリストアップします:

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デーモンが見つけられアクセス可能なようにしましょう。/etc/apache2/vhosts.d ディレクトリ内にバーチャルホスト設定ファイル(VirtualHost.conf)を追加し、その中には この DocumentRoot とホストサーバ名を指定します。また、このホストサーバ名の項目を /etc/hosts に追記することも忘れないでください。

apache ユーザ/グループ の所有者権限を、バーチャルホストのファイル群に割り当てます。以下の例のように chown コマンドで:

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

以下に、2つのバーチャルホスト定義例があります。1つは domainname1.com で、もう1つは domainname2.com です。本来のホスト自体(*:80)は同じでも、DocumentRootServerNameのディレクティブがそれぞれ異なります。

CODE バーチャルホストの定義の例
<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アドレスを通じてサイトへアクセスさせメッセージを掲げられます。

CODE IPアドレスベースのバーチャルホスト
<VirtualHost *:80>
    ServerAdmin email@site.com
    DocumentRoot /var/www/html
    ServerName xxx.xxx.xxx.xxx
</VirtualHost>
>

バーチャルホストを挿入したあとには、新たなウェブサイトを有効にするために、ウェブサーバを(完全に)再起動する必要があります。

fcgid 経由の PHP を有効にする

www-apache/mod_fcgiddev-lang/php をインストール。PHP パッケージには、cgi USE フラグの設定が必要:

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

mod_fcgid.conf ファイルを編集:

FILE /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 ラッパーへのシンボリックリンクを張る:

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

FCGID モジュールの有効化:

FILE /etc/conf.d/apache2fcgidモジュールを有効にする
APACHE2_OPTS="... -D FCGID"

最後に、Apache を再起動して、すでに作成されたphpinfo()サイトを確認します。Server API の値は CGI/FastCGI になるはずです。

Apache 2.4でmod_proxy_fcgiを使ってPHP-FPMを使う

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 ディレクティブによって決まり、サイトや機能ごとに別々に定めることが可能です。

以下の例では、FilesMatch を Apache の PHP モジュールの設定ファイルに記述しています:

FILE /etc/apache2/modules.d/70_mod_php.confPHP-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>

また、ProxPassMatch を使用することもできます -- Apache のバージョンが 2.4.0 から 2.4.8 (これらを含む) の場合はこれが唯一の選択肢です。

FILE /etc/apache2/modules.d/70_mod_php.confPHP-FPM を使う(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 ファイルを以下のように変更します:

FILE php-fpm.conflisten ディレクティブを使う
; 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 のモジュールを有効にします:

FILE /etc/conf.d/apache2PHP およびプロキシーのモジュールを有効にする
APACHE2_OPTS="... -D PHP -D PROXY"

使い方

サービス

OpenRC

Apache サーバを起動:

root #/etc/init.d/apache2 start

Apache を default ランレベルに追加:

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 を default ランレベルに追加:

root #systemctl enable apache2

Apache サービスを再起動:

root #systemctl restart apache2

トラブルシューティング

資料

Apache サーバーを適切に設定するのは難しいこともあります。以下の資料は問題が起こったときに役に立つかもしれません:

テスト

Apache2 が動作し listen している IP インターフェースとポートの確認:

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 '^]'.

接続テストを中断するには Ctrl+cEnter を入力します。

apr_sockaddr_info_get() failed for <System_Hostname>

エラー:

apache2: apr_sockaddr_info_get() failed for System_Hostname

対処法:

これが発生したら、/etc/hosts ファイルにホスト名を追加してください:

FILE /etc/hostsApache 用にホスト名を追加する
127.0.0.1 localhost System_Hostname

参考

外部の情報