Apache

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

Apache HTTP サーバは、効率的で拡張可能な web サーバで、インターネット上で最も人気のある web サーバのひとつです。

インストール

メモ
Apache のバージョンアップをする時は、アップグレードガイドを参照してください。

USE フラグ

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

+suexec-caps Install suexec with capabilities instead of SUID
debug Enable extra debug codepaths, like asserts and extra output. If you want to get meaningful backtraces see https://wiki.gentoo.org/wiki/Project:Quality_Assurance/Backtraces
doc Add extra documentation (API, Javadoc, etc). It is recommended to enable per package instead of globally
gdbm Add support for sys-libs/gdbm (GNU database libraries)
ldap Add LDAP support (Lightweight Directory Access Protocol)
selinux !!internal use only!! Security Enhanced Linux support, this must be set by the selinux profile or breakage will occur
ssl Add support for SSL/TLS connections (Secure Socket Layer / Transport Layer Security)
static Link in apache2 modules statically rather then plugins
suexec Install suexec with apache
suexec-syslog Log suexec to syslog instead of to a separate file
systemd Enable use of systemd-specific libraries and features like socket activation or session tracking
threads Add threads support for various packages. Usually pthreads

Emerge

マルチプロセッシングモジュール

Apache の event または worker MPM を使用するには Apache の threads USE フラグを有効にしてください:

ファイル /etc/portage/package.useApache の threads サポート
www-servers/apache threads

Apache event MPM を使用するには、以下を make.conf に追加してください:

ファイル /etc/portage/make.confApache event MPM
APACHE2_MPMS="event"

Apache worker MPM を使用するには、以下を make.conf に追加してください:

ファイル /etc/portage/make.confApache worker MPM
APACHE2_MPMS="worker"

マルチプロセッシングモジュール(MPM)が何も選択されていない場合はデフォルトのMPMが使用されます。デフォルトのMPMはプラットフォームの機能(threadsサポートなど)によります。詳細についてはApache の公式ドキュメントを参照してください。

そして www-servers/apacheemerge してください:

root #emerge --ask www-servers/apache

グローバルなサポート

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

ファイル /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 変数の行です:

ファイル /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 マニュアルも参照してください。
ファイル /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 ファイルがひとつ生成されていますので、正常にインストールができたかどうかを確認するためには https://localhost/ にブラウザでアクセスしましょう。

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

警告
Firefox には、ブラウザの URL バーでミスタイプした場合に役に立つ機能があります。もし入力した URL が解決できなかった場合、Firefox は 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を有効にする

ModSecurity は、既知の脆弱性を悪用した攻撃を防ぐために web サービストラフィックを監視する、ルールベースの web サービスアプリケーションファイアウォールです。

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

root #emerge --ask www-apache/mod_security

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

ファイル /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-*-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-*/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 をインストールし、モジュールを有効にします:

ファイル /etc/conf.d/apache2PHPモジュールを有効にする
APACHE2_OPTS="... -D PHP"

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

ファイル /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モジュールが動作しているか確認するために、テストページを作成:

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

そして、/var/www/localhost/htdocs/index.htmlを削除するかリネームして、テストページを開きましょう: https://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のディレクティブがそれぞれ異なります。

コード バーチャルホストの定義の例
<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>
>

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

fcgid を利用して PHP を有効化する

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

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

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

FCGID モジュールの有効化:

ファイル /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 モジュールの設定ファイルに記述しています:

ファイル /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 (これらを含む) の場合はこれが唯一の選択肢です。

ファイル /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 ファイルを以下のように変更します:

ファイル 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 = apache
listen.group = apache
;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/apache2PHP およびプロキシーのモジュールを有効にする
APACHE2_OPTS="... -D PHP -D PROXY"

Web フレームワークと Apache

Apache で動作するいくつかの web フレームワークがこの wiki でカバーされています:

Let’s Encrypt から TLS 証明書を取得して HTTPS 化

パブリックなウェブサーバはすべて、"セキュア" な HTTPS アクセスを提供することが重要です。HTTPS を提供するサイトは、HTTP リクエストを HTTPS での同等な URL にリダイレクトするように設定されていることが多いです。

Let’s Encrypt は無償で TLS 証明書を発行する、非営利の認証局です。certbot は TLS 証明書の要求とインストールを簡単に行うことができるユーティリティで、Gentoo リポジトリから取得することができます。これにより、Apache の HTTPS アクセスを自動的に構成することができます。

certbot の使い方については、Let's Encrypt の記事を確認してください。EFF もまた、Gentoo 上で certbot を使って Apache を構成することに特化した説明を提供しています。

使い方

サービス

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 #ss -tlpn | grep apache
LISTEN 0      0       0.0.0.0:80       0.0.0.0:*    users:(("apache2",pid=1401,fd=3),("apache2",pid=1399,fd=3),("apache2",pid=1396,fd=3))
LISTEN 0      0       0.0.0.0:443      0.0.0.0:*    users:(("apache2",pid=1401,fd=3),("apache2",pid=1399,fd=3),("apache2",pid=1396,fd=3))

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 ファイルにホスト名を追加してください:

ファイル /etc/hostsApache 用にホスト名を追加する
127.0.0.1 localhost System_Hostname

関連項目

外部資料