開発用apache+PHP7仮想サーバをUbuntu 20.04 Serverで構築

投稿者: | 2021年3月6日

CentOS5のPHP7更新を断念したので、Web開発に必要な PHP7 系 apache サーバを VMware ESXi 6.7ホスト上に仮想マシンとして、 Ubuntu 20.04 Serverで新たに構築しました。

Ubuntu 20.04 Server インストール

VMware ESXi 6.7ホストに次のような小さな構成で仮想マシンを新規作成します。

図1.仮想マシンのハードウェア構成

図1.仮想マシンのハードウェア構成

公式サイトよりサーバインストールイメージをダウンロードします。

イメージを仮想光学ドライブにセットし、仮想マシンを起動、CLIベースのサーバ版インストールは初めてでした。ネットワーク設定のサブネット記述にちょっと戸惑い。

図2.Ubuntu Serverインストールネットワーク設定

図2.Ubuntu Serverインストールネットワーク設定

ストレージ設定では、デフォルトでチェックの入っていたLVM使用のオプションを外します。LVMであればオンラインのままディスクを連結して容量を増やすことが出来ますが、仮想ディスクが増えてクローニング管理が複雑になってしまいます。今回は開発用なのでシンプルに済ませます。

図3.Ubuntu Serverインストールパーティショニング

図3.Ubuntu Serverインストールパーティショニング

図4.Ubuntu Serverインストールファイルシステム

図4.Ubuntu Serverインストールファイルシステム

次に特化された機能を提示されますが、該当無しでスルーするとインストールは始まり、いつの間にか終わって再起動待ちになっていました。

図5.Ubuntu Serverインストールサーバ機能選択

図5.Ubuntu Serverインストールサーバ機能選択

図6.Ubuntu Serverインストール完了

図6.Ubuntu Serverインストール完了

 

VMware Tools

OSインストール時に特にオプション等有りませんが、勝手にopen-vm-toolsがインストールされるので、後からホスト側からインストールを促す必要はありませんでした。VMXNET3イーサアダプタを即使えるのは助かります。

 

IPv6無効化

今回はこちらの記事(Great Tnx!!)に紹介されている方法のうち、修正範囲が最小で済むGRUBファイルに記述する手法を採りました。

 

SNMPデーモンの有効化

素では入っていないのでインストールする必要があります。

デフォルト設定のままでは取得出来る項目が控えめなので、View指定解放モードにします。

 

仮想マシンのマルチパスエラー対策

システムログを確認してみると、次のようなエントリが頻発していました。

調べてみるとUbuntu 20.04をVMware ESXiホスト上に作成すると生じる現象で、いくつか対策が提示されていますが、仮想マシン内で完結するvmxファイルの編集で済ませます。仮想マシンをシャットダウンしたら、vmxファイルをローカルにダウンロード、テキストエディタで以下の設定を追記して、アップロードします。

仮想マシンを起動後、当該エントリが消えていることを確認しました。

 

apache2とPHP7.4のインストール

システムのセットアップを終え、いよいよapache2をインストールします。

続いてPHP7.4をインストール。

 

Debian系apacheの設定

今まで使っていたCentOS(RedHat系)では、バーチャルホストのポートやパス設定が全て1つの設定ファイルhttpd.confに網羅されていましたが、Debian系では全く違うのでカルチャーショック。その構造と役割を理解するに辺り、こちらのまとめが大変わかりやすくて助かりました。


とその前にサービスステータスをチェックしていると、繰り返し発生しているAH00558エラーを見付けたので対策します。

これはfqdn.confにhostnameを正しく記述し、その設定を有効にすることで解消します。

それではバーチャルホストを作成しましょう。先ずは現在の設定の構成を確認。

sites-available下にバーチャルホストの数だけ設定ファイルを記述します。

次にバーチャルホストの待ち受けカスタムポートを ports.conf にListenするよう記述します。

最後にバーチャルホストの設定をデプロイし、サービスをリロードさせれば反映されます。

 

ufw簡易設定

今回はあくまで内向き開発用なので、単純にこれまでセットアップしてきたサービスに関するポートを開けておきます。

 

起動時にufwが224.0.0.1宛をブロック

起動ログに必ず次のエントリが記録され、IGMP マルチキャストIP 224.0.0.1宛をブロックしているようです。

調べてみて見つかるのは、LAN内のルータが発している場合ばかりなのですが、今回MACに記載されているのは自身のイーサアダプタのMACアドレスでした。気持ち悪いので明示的にブロックします。

再起動後、起動ログに当該エントリが出ることは無くなりました(ルールを消したい時はこの番号指定が便利)。

 
これでようやく現代的な開発環境は整いました。ここでPHP7にしても問題ないか検証し、本番サーバのアップグレードに進みます。

コメントを残す

メールアドレスが公開されることはありません。

CAPTCHA