Apache
|
Ubuntu server 18.04Apache自宅で運用している Ubuntu server の Apache2 (ver 2.4.29) に関するメモです.インストールと設定に関する雑多なことを記載します. 目次インストールと起動確認インストールubuntu server をインストールするときに,「インストールするソフトウェアーの選択」の画面で,LAMP server をチェックすれば,インストールされます.後からインストールする場合は,コマンド「$ sudo apt install apache2」を使います. インストールされている apache のバージョンの確認は,以下のようにします.また,コマンド「apache2ctl status」でも分かります. $ apache2 -v
Server version: Apache/2.4.29 (Ubuntu)
Server built: 2019-07-16T18:14:45
設定・起動設定ファイル「/etc/apache2/conf-available/fqdn.conf」にホスト名を記載します.ファイルが無い場合は,ファイルを作成します.パーミッションは,「644」です.ホスト名は,コマンド「hostname」で調べることができます.
ServerName ホスト名
次に,この fqdn.conf を有効にするために,コマンド「$ sudo a2enconf fqdn」を実行します.以下に,コマンドと実行結果を示します. $ sudo a2enconf fqdn
Enabling conf fqdn.
To activate the new configuration, you need to run:
systemctl reload apache2
a2enconf は,apache2 を構成するファイルを有効にするためのスクリプトです. このホスト名の設定を行わないと,以下のエラーが発生します. AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message 起動Apache を起動するために,コマンド「$ sudo /usr/sbin/apachectl restart」を実行します.以下に,コマンドと実行結果を示します. $ sudo apachectl restart 確認apache の動作は,直接ブラウザにサーバーのIPアドレスを入れることで確認ができます.以下のWebページが表示されるでしょう.このページのソースは,/var/www/html/index.html に書かれています. Apache を制御するコマンドsystemctl以下のコマンドで,Apache2 をコントロールすることができます.これらのコマンドを実行する場合,ルートでの操作 (sudo) が必要です.
apache2ctlapache2ctl を使っても,Apache2 をコントロールすることができます.以下にこのコマンドの引数とその実行内容を示します (参考: オプション).これらのコマンドはルート (sudo) で実行しますが,説明が色付きのものは一般ユーザーでも実行可能です.
「apache2ctl fullstatus」と「apache2ctl status」を実行するためには,テキストベースのブラウザと環境変数の設定が必要です.「環境変数 (envvars)」にその方法を示します. Apache のファイルと基本設定設定ファイルApache の設定を行う前に,設定ファイルについて説明します.そのほうが,設定の内容を理解できるからです.Apache の設定ファイルは,/etc/apache2/にあります.そこに含まれるファイルと役割は,以下の通りです.
ディレクトリは,*-enabled と *-available の二通りがあります.名前の通り,前者 (enabled) は Apache2 で実際に設定が有効になってるファイル (リンク),後者 (available) は利用可能なファイルが保存されます.*-enabled のファイルは,*-available のファイルのシンボリックリンクになっています.*-enabled にシンボリックリンクが作成されると,Apache2 が再起動した時に,そのリンクが読み込まれ有効になります.シンボリックリンクを作成/削除するコマンドは,以下の表のとおりです.
これらのコマンドの使い方は,簡単です.対象ディレクトリーの *-available で,これらのコマンドをタイプします.引数は,対象ファイルです. $ sudo a2enconf charset リンクの作成 Enabling conf charset. To activate the new configuration, you need to run: systemctl reload appache2 $ sudo a2disconf charset リンクの削除 Conf charset disabled. To activate the new configuration, you need to run: systemctl reload appache2 コマンドはリンクを作成/削除をするだけです,設定の反映には,再起動あるいは設定ファイルの再読み込みが必要です.再読み込みのコマンド「sudo systemctl reload appache2」です. 設定ファイルの読み込みに関して,メインの設定ファイル「apache2.conf」 に以下の記述があります. IncludeOptional mods-enabled/*.load IncludeOptional mods-enabled/*.conf Include ports.conf IncludeOptional conf-enabled/*.conf IncludeOptional sites-enabled/*.conf ディレクティブ「Include」は,構成ファイルをインクルードします.ワイルドカードを使うことができます.また,ディレクトリを指定することも可能です. この場合,ディレクトリとそのサブディレクトリ内の全てのファイルをアルファベット順に読み込んで.設定ファイルとして処理します.ディレクティブ「IncludeOptional」も,構成ファイルをインクルードします. ワイルドカードが使用され,ファイルやディレクトリと一致しない,ファイルパスがファイルシステムに存在しない場合,無視 (エラーを出さない) します. これにより,ディレクトリー「*-enabled」にあるリンクが読み込まれることが分かります. 環境変数 (envvars) の設定環境変数の設定を行います. その前に,テキストベースのブラウザ「lynx」をインストールします.インストールコマンドは,「sudo apt install lynx」です.これは,Apache のステータスを見るために必要です.そして,環境変数設定ファイル「/etc/apache2/envvars」の export APACHE_LYNX の行を以下の通りに変更します. export APACHE_LYNX='lynx -dump' この設定を行わないと,以下のエラーメッセージが表示されます. $ sudo apachectl status /usr/sbin/apachectl: 113: /usr/sbin/apachectl: www-browser: not found 'www-browser -dump http://localhost:80/server-status' failed. Maybe you need to install a package providing www-browser or you need to adjust the APACHE_LYNX variable in /etc/apache2/envvars その他の設定バージョンを隠すセキュリティのためには,apache や PHP 他のバージョンは隠すべきです.そのために,メインの設定ファイル「/etc/apache2/apache2.conf」の最後の行に以下を記載します. ServerSignature Off 設定ファイルを反映させるためには,リロードが必要です. $ sudo systemctl reload apache2
HTML5 の動画のためにHTML 5 のビデオタグ <video> を使うために,メインの設定ファイル「/etc/apache2/apache2.conf」の最後の行に以下を記載します. AddType video/ogg .ogv AddType video/mp4 .mp4 AddType video/webm .webm 設定ファイルを反映させるためには,リロードが必要です. $ sudo systemctl reload apache2
ファビコンの設定apache2でファビコン(favcon:Favorite icon)を指定することができます.ドキュメントルートに,favicon.ico を保存するだけです.ドキュメントルートは,apache2の設定ファイル,バーチャルホストを使っている場合はその設定ファイルに書かれているはずです.私の場合(参照:バーチャルホスト) は「/etc/apache2/sites-available/www3.conf」に書かれていました.このファイルの「DocumentRoot」と書かれているところで,ドキュメントルートのディレクトリーが指定されています. WEBサーバー設定バーチャルホスト設定方法先に示したデフォルトで表示される図1は,/var/www/html/index.html にあります.ドキュメントルートは,/etc/apache2/sites-available/000-default.conf に書かれています.このドキュメントルートが書かれたファイル「default.conf」は,/etc/apache2/sites-enabled/000-default からシンボリック・リンクが貼られています.したがって,apache2.conf > /etc/apache2/sites-enabled/000-default > /etc/apache2/sites-available/000-default.conf > とファイルが読まれ,default のドキュメントルートの設定が読み込まれます. 最初から設定されているデフォルトに代わり,新たにホストを設定する場合,次の操作が必要です.(1)設定ファイル「www3」を作成し,sites-available に保存する.(2)デフォルトのバーチャルホスト「000-default」のリンクを削除し,新たなバーチャルホスト「www3」のリンクを作成する.(3)Apache の設定ファイルの再読込. 次節以降で,具体的な設定方法をしめします.ただし,バーチャルホストの名前「www3」は変更可能です. 設定ファイルバーチャルホストの設定ファイル「www3.conf」をディレクトリー「/etc/apache2/sites-available/www3.conf」以下に作成します.私のファイルを以下に示します. ServerName www.yamamo10.jp NameVirtualHost *:80 <Directory /> Options FollowSymLinks AllowOverride All Require all granted </Directory> <Directory "/home/*/www"> Options FollowSymLinks MultiViews AllowOverride All Require all granted DirectoryIndex index.html index.php </Directory> <VirtualHost *:80> ServerAdmin ymm10m34@khaki.plala.or.jp ServerName www.yamamo10.jp ServerAlias yamamo10.jp DirectoryIndex index.php Options FollowSymLinks DocumentRoot /home/yamamoto/www </VirtualHost> 設定の反映デフォルトのバーチャルホスト「000-default」を解除 (リンク削除) し,新たなホスト「www3」を登録 (リンク作成) します.解除にはコマンド「a2dissite」,登録には「a2ensite」を使います.バーチャルホストの解除/登録は,sites-enabled 以下のシンボリックリンクの有無で確認できます. $ sudo a2dissite 000-default.conf リンクの削除 Site 000-default disabled. To activate the new configuration, you need to run: systemctl reload apache2 $ sudo a2ensite www3.conf リンクの作成 Enabling site www3. To activate the new configuration, you need to run: systemctl reload apache2 シンボリックリンクができたので,設定の再読込を行います. $ sudo systemctl reload apache2
ユーザー毎のファイル「http://www.yamamo10.jp/yamamoto」のようにユーザー毎のデフォルトのファイルが読み込めるようにします.「/etc/apache2/mods-available/userdir.conf」を適当に書き換えます. <IfModule mod_userdir.c> UserDir www UserDir disabled root Alias /yamamoto/ "/home/yamamoto/www/" <Directory /home/*/www> AllowOverride FileInfo AuthConfig Limit Indexes Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec <Limit GET POST OPTIONS> Order allow,deny Allow from all </Limit> <LimitExcept GET POST OPTIONS> Order deny,allow Deny from all </LimitExcept> </Directory> </IfModule> この設定では,ユーザーは yamamoto のみです.ユーザーを追加する場合は,このファイルの Alias のところに「 Alias /higa_manami/ "/home/higa_manami/www/"」と並べて記述します. ファイル作成後,userdir.conf のリンクを作成します.
$ sudo a2enmod userdir
Enabling module userdir.
To activate the new configuration, you need to run:
systemctl restart apache2
リンクの作成は,「ls -al /etc/apache2/mods-enabled」で確認できます.リンクができていれば,設定の再読み込みを行います. $ sudo systemctl restart apache2
ページ作成情報参考資料
更新履歴
|