サイトアイコン IT NEWS

Ubuntuで自宅サーバー構築!【Webアプリケーションサーバー編】

ubuntu-webapp-server

前回までで、下地とも言える各サーバー達が完成しました!
今回からは、これらと連携して利用するサーバー達を構築していきたいと思います。
まず1台目は、Webアプリケーションサーバーです!
しかし今回ご紹介するサーバーは、一般的なWebアプリケーションサーバーではなく、ただWebサーバーアプリケーションサーバーを合わせたものとお考えください。

Webアプリケーションサーバーの構築

それでは必要なパッケージをじゃんじゃんインストールしていきましょう!
データベースサーバーはすでに構築しているので、必要なのは「Apache2」と「PHP」の2つのみになります。
もちろん、Webアプリサーバーで何を利用するかは人それぞれなので、Apache2の代わりにnginxでも良いですし、PHPの代わりにJavaでも構いません。
ただ、今後このサーバーで便利で役立つ機能を追加して記事を書いていきますので、もし真似したいと思った方は是非ともApache2PHPを入れてください!

Apache2のインストール

出典・引用:Ubuntu 20.04 LTS : Apache2 : インストール : Server World

まずは、Apache2をインストールしてWebサーバーを構築します。
何度も言ってますが、ここからの操作もroot権限でお願いしますよ~!
CentOS時代はhttpdだったような気がしますが、Ubuntuでは普通にApache2となります。

# apt -y install apache2

ど~ん!はい、完了!
さらに、Ubuntuでは設定ファルが不思議な場所にありますので、間違わないように編集します。

# vi /etc/apache2/conf-enabled/security.conf
・・・
ServerTokens Prod
・・・

ディレクトリ名のみでアクセスできるファイルを設定する場合はこちら。

# vi /etc/apache2/mods-enabled/dir.conf
<IfModule mod_dir.c>
        DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm
</IfModule>

上記の設定は参考サイトの設定とは異なりますが、後程インストールするPHPやその他のファイルも使う想定なので、このように設定しています。
あなたの環境に合わせてくださいね!それから、下記の設定ファイルの任意の場所にサーバー名を追記します。

# vi /etc/apache2/apache2.conf
・・・
ServerName localhost.localdomain

最後に、以下の管理者情報を変更します。

# vi /etc/apache2/sites-enabled/000-default.conf
・・・
ServerAdmin webmaster@localhost.localdomain
・・・

こちらのディレクトリ配下にあるファイルは、今後変更する機会が多いので覚えておいてください。
後はApache2を再起動して、設定を反映させたら完了です。

# systemctl restart apache2

ファイアウォールについて

もし、ファイアウォールを有効にしてる場合は、ポート開放してあげましょう。
アプリケーション名でも設定できるので、ぜひお試しください。

# ufw app list
利用可能なアプリケーション:
  Apache
  Apache Full
  Apache Secure

PHPのインストール

出典・引用:Ubuntu 20.04 LTS : Apache2 : PHP スクリプトを利用する : Server World

次に、PHPをインストールしてアプリケーションサーバーを構築します。
とりあえず、よく利用する最低限のモジュールも一緒にインストールしますが、自身の環境に合わせて追加してください。

# apt -y install php php-cgi libapache2-mod-php php-common php-pear php-mbstring

PHPモジュールを有効にします。

# a2enconf php7.4-cgi
Enabling conf php7.4-cgi.
To activate the new configuration, you need to run:
  systemctl reload apache2

PHPの初期設定をします。
ここでも最低限タイムゾーンを変更します。

# vi /etc/php/7.4/apache2/php.ini
・・・
date.timezone = "Asia/Tokyo"

たぶん設定がこれだけだと、Webアプリを構築する際に後々不都合が生じるはずですが、一旦は完了です。

# systemctl restart apache2

Apache2を再起動したら完了です!

PHP-FPMをインストール

最後は、PHPを高速化するPHP-FPMをインストールします。
無くても問題ないですが、今となっては必須ですね。
では、始めます。

# apt -y install php-fpm

Apache2の設定ファイルの中から、PHP-FPMを利用するVirtualHostの設定内に以下を追加します。
著者の場合は、SSLhttps)を使用する予定なので、default-ssl.confに追加します。

# vi /etc/apache2/sites-available/default-ssl.conf
<VirtualHost>
    ・・・
    <FilesMatch \.php$>
        SetHandler "proxy:unix:/var/run/php/php7.4-fpm.sock|fcgi://localhost/"
    </FilesMatch>
    ・・・ 
</VirtualHost>

設定ファイルの編集が完了したら、Apache2モジュールを有効化していきます。

# a2enmod proxy_fcgi setenvif
Considering dependency proxy for proxy_fcgi:
Enabling module proxy.
Enabling module proxy_fcgi.
Module setenvif already enabled
To activate the new configuration, you need to run:
  systemctl restart apache2

こちらも同様にコマンド実行。

# a2enconf php7.4-fpm
Enabling conf php7.2-fpm.
To activate the new configuration, you need to run:
  systemctl reload apache2

最後に再起動して設定を反映させたら完了です。

# systemctl restart php7.4-fpm apache2

念の為、info.phpで確認してみてください。

# echo '<?php phpinfo(); ?>' > /var/www/html/info.php

アクセスしてみて、このように「FPM/FastCGI」と表示されればOKです!

出典・引用:Ubuntu 20.04 LTS : Apache2 : PHP + PHP-FPM の設定 : Server World

次回から、今回構築したWebアプリケーションサーバーに他の機能も搭載していきますので、お楽しみに!

モバイルバージョンを終了