Hyper-Vの仮想環境に必要最小限のLinux互換サーバを立ててECCUBE4を実行できるまでの環境を構築するテスト。
ここでは、小型のLinuxディストリビューションとして、Xubuntuを選択。

使用PC
 OS Windows10Pro 1909
 CPU i5-4690S
 メモリ 16GB
 ドライブ1 システム用SSD(以下、Cドライブ)
 ドライブ2 データ用SSD(以下、Dドライブ)

■Hyper-V 有効化

・「プログラムと機能」で「Windowsの機能の有効化または無効化」を選択、「Windowsの機能」一覧から「Hyper-V」にチェックを入れてOKボタン、再起動。

・再起動すると、スタートメニューに「Hyper-Vマネージャー」のリンクができています。

・タスクマネージャーのパフォーマンスタブを開くと、通常使用している「イーサネット」のほかにもう一つ、vEthernetの名前の付いたイーサネットが増えています。
これが、Hyper-V用の仮想イーサネット。

・Hyper-V用データフォルダ D:\hyper-v とiso仮保存用フォルダ D:\iso を作成。
(Hyper-V用データフォルダはデフォルトのままでも問題ありませんが、私はシステムドライブにデータを保存するのがあまり好きではないので場所を移しています)

■xubuntuインストール

・xubuntuのサイト https://xubuntu.org/ からインストーラのisoイメージをダウンロード。
私はミラーサイト http://ubuntutym2.u-toyama.ac.jp/xubuntu/18.04/release/ から
isoファイル xubuntu-18.04-desktop-amd64.iso をダウンロードしました。
これを D:\iso\に保存。

・スタートメニューから「Hyper-Vマネージャー」を起動。
左ペインの自分のPC名をクリック。
右ペイン「操作」パネルの「新規」から「仮想マシン」を選択。

名前と場所の指定: 名前を「新しい仮想マシン」から「xubuntu」に変更
「仮想マシンを別の場所に格納する」にチェックを入れて、場所を「C:\ProgramData\Microsoft\Windows\Hyper-V\」から「D:\Hyper-V\」に変更後、「次へ」

世代の指定: 「第1世代」を選択して「次へ」

メモリの割り当て: 起動メモリ 適当に2048MBくらいに設定、「次へ」

ネットワークの構成: 「接続」で「Default Switch」を選択、「次へ」

仮想ハードディスクの接続: 「仮想ハードディスクを使用する」を選択、名前を「xubuntu.vhdx」に、場所を「D:\Hyper-V\xubuntu\Virtual Hard Disks\」、サイズを適当に64GBくらいに変更、「次へ」

インストールオプション: 「ブートCD/DVD-ROMからオペレーティングシステムをインストールする」を選択、イメージファイルに先ほどダウンロードした「D:\iso\xubuntu-18.04-desktop-amd64.iso」を指定、「次へ」

要約を確認。

> 名前: xubuntu
> 世代: 第 1 世代
> メモリ: 2048 MB
> ネットワーク: Default Switch
> ハード ディスク: D:\Hyper-V\xubuntu\Virtual Hard Disks\xubuntu.vhdx (VHDX、容量可変)
> オペレーティング システム: D:\iso\xubuntu-18.04-desktop-amd64.iso からインストールされます

とくに問題なさそうなら「完了」

「仮想マシン」パネルに「xubuntu」が追加されるので、xubuntuをダブルクリックするか、右クリック->接続 で仮想マシンウインドウを表示。
起動ボタンを押して仮想マシンを起動。

起動するとxubuntuインストーラが立ち上がるので、言語選択後、指示に従って「Xubuntuをインストール」を進めます。
途中設定するユーザー名とパスワードは、ユーザー名 username、パスワード password として以下話を進めますが、適宜変更して読み替えてください。
インストール完了後、xubuntu再起動。

・xubuntu起動後、デスクトップ画面左上のメニューアイコンから「ターミナルエミュレーター」を実行

・SSHをインストール
$ 
$ 
$ 

・ipアドレスを確認
$ 
とすると、
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
  link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
  inet 127.0.0.1/8 scope host lo
   valid_lft forever preferred_lft forever
  inet6 ::1/128 scope host
   valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
  link/ether 00:15:5d:00:0c:25 brd ff:ff:ff:ff:ff:ff
  inet 192.168.89.14/28 brd 192.168.89.15 scope global dynamic noprefixroute eth0
   valid_lft 86299sec preferred_lft 86299sec
  inet6 fe80::54ac:19ca:fdf:1eda/64 scope link noprefixroute
   valid_lft forever preferred_lft forever

のような内容(一例)が表示されます。
上記の場合、2: eth0:のほうの「192.168.89.14」(赤字部分)がこの仮想サーバのipアドレスになります。
このipアドレスに対して、Windows側のSSHコマンドやWinSCP等のツールからアクセスできるようになりますが、Windowsを再起動などするとこのipアドレスは変動してしまうことも多いので、ホスト名でアクセスします。

$ 
で現在のホスト名が表示されますが、あまり長すぎても扱いにくいので適当に変更します。
(ここで変更するのが面倒な場合は、xubuntuインストール時に「コンピューターの名前」で指定してしまっても構いません)

$ 
でホスト名が保存されているファイルを開き、ここでは「vm-xubuntu」に変更しておきます。
変更したら Ctrl+O、Enterで保存、Ctrl+Xでnanoエディタを終了。

再起動します。
$ 

再起動が完了したら変更したホスト名になっているか確認
$ 

・Windows側から仮想マシン上のxubuntuにログインできるか確認
Windowsからは、ホスト名に「.mshome.net」を付けた「vm-xubuntu.mshome.net」でHyper-V上のxubuntuにアクセスできます。
コマンドプロンプトから
> 

初回は接続を続行するか聞いてくるので、yesを入力
パスワードを入力してコマンド入力状態になればOK。

ssh username@vm-xubuntu.mshome.net
と1行だけ書いたバッチファイル(例えば 仮想サーバssh.batという名前で保存)をデスクトップ上に置いておけば、ダブルクリックだけでSSHシェルが立ち上がるので楽。

以降、Windows側からSSHで接続して各設定を行います。
(仮想マシン上のxubuntuのターミナルエミュレーター側でもできますが、コマンドのコピペ等を考慮するとWindows側からリモートで操作したほうが楽ですし処理も軽く済みます。コマンドプロンプトへのコピペができない場合、コマンドプロンプトのプロパティから簡易編集モードにチェックを入れるとできるようになります。)

Hyper-Vは最小化、あるいは閉じてしまってもバックグラウンドで動いているので大丈夫です。
作業を終えて仮想マシンを止めたい場合は、Hyper-Vマネージャーから該当の仮想マシンを「停止」「シャットダウン」「保存」などして、「実行中」以外の状態にすれば止まります。

■LAMP環境のインストール

参考ページ Ubuntu 18.04にLAMP環境を構築する手順

・Apache2のインストール

1.リポジトリ一覧を更新
$ 

2.apache2のインストール
$ 

3.apache2のバージョン確認
$ 

Windows側のWEBブラウザからは、URLを http://vm-xubuntu.mshome.net/ とすることで表示確認ができます。

・MySQLインストール

1.mysqlのインストール
$ 

2.MySQLのバージョン確認
$ 

3.MySQLにログイン
$ 

MySQLにルートログインした状態で、root以外の常用のためのアカウント(eccube4用)を作成しておきます。
ここではユーザー名 eccube4user、パスワード password とするものとして進めます。

ユーザー作成
mysql> 

ユーザーの権限変更
mysql> 
mysql> 

ログアウト
mysql> 

今作ったユーザーでmysqlにログインできるか確認
$ 
パスワードを聞かれたら password を入力
ログインが確認出来たらログアウト
mysql> 

・PHP7.3のインストール

1.software-properties-common をインストール
$ 

2.ppa:ondrej/php リポジトリを apt に登録
$ 

3.リポジトリ情報の最新化
$ 

4.PHP 7.3 のパッケージ情報を確認
$ 

5.PHPをインストール
$ 

6.インストールされた PHP バージョンを確認
$ 

7.PHP の動作を確認
$ 

8.var/www/htmlのショートカット作成
$ 

9.varフォルダに移動
$ 

10.wwwのグループを自分のグループに変更
$ 

11.フォルダ、ファイルのグループを変更
$ 
(「username」の部分は、xubuntuインストール時に作成したユーザー名に合わせます)

12.グループ [ユーザー名] の許可を変更して書き込む
$ 

phpのwebからの実行確認は、Windows上でファイル名 phpinfo.php として

を書き込んだものを、WinSCPを使って仮想マシン上の /var/www/html/ へ保存、Windows側ブラウザからは http://vm-xubuntu.mshome.net/phpinfo.php として表示されればOK。

WinSCPは
転送プロトコル SFTP または SCP
ホスト名 vm-xubuntu.mshome.net
ユーザ名 username
パスワード password
でログイン

Windows側で作ったファイルを転送するのではなく、リモートサーバ上でviやnano等のエディタを使って /var/www/html/ へ直接 phpinfo.php を作成しても可。

13.Apache2の実行ユーザーを自分のユーザー名に変更
$ 

変更前
# Since there is no sane way to get the parsed apache2 config in scripts, some
# settings are defined via environment variables and then used in apache2ctl,
# /etc/init.d/apache2, /etc/logrotate.d/apache2, etc.
export APACHE_RUN_USER=www-data
export APACHE_RUN_GROUP=www-data

変更後
# Since there is no sane way to get the parsed apache2 config in scripts, some
# settings are defined via environment variables and then used in apache2ctl,
# /etc/init.d/apache2, /etc/logrotate.d/apache2, etc.
export APACHE_RUN_USER=username
export APACHE_RUN_GROUP=username

赤字部分を xubuntuインストール時に設定したユーザー名に変更
変更したら Ctrl+O 、Enter で書き込み、Ctrl+Xでnanoエディタを終了。

■ECCUBE4に必要な拡張ライブラリのインストール

参考ページ [EC-CUBE4]ワンライナー/必要なPHP拡張ライブラリのインストール

(参考ページに記述されている7.2を、インストール済みphpに合わせて7.3に変更しているので注意)
$ 

■mod_rewriteの有効化

参考ページ Ubuntu版Apache2でmod_rewriteを有効にする

mod_rewriteが利用可能か確認
$ 

a2enmod実行
$ 

■.htaccessオーバーライドの有効化

デフォルトでは/var/www以下での.htaccessのオーバーライドが無効になっているので有効化します。
まず、nanoエディタでapache2.confを開きます。

$ 

変更前
<Directory /var/www/>
  Options Indexes FollowSymLinks
  AllowOverride None
  Require all granted
</Directory>

となっている部分があるので、この中の
AllowOverride None の None を All に変更します。
青字部分が「/var/www/」ではない、同じ構造のDirectoryブロックが並んでいる場合があるので注意。

変更後
<Directory /var/www/>
  Options Indexes FollowSymLinks
  AllowOverride All
  Require all granted
</Directory>

変更したら Ctrl+O 、Enter で書き込み、Ctrl+Xでnanoエディタを終了。

apache2 リスタート
$ 

■phpMyAdminインストール

参考ページ phpMyAdmin インストールメモ

インストール
$ 
$ 
(途中、自動再生webサーバ を聞いてきたらapache2を選択(上下キーで選ぶだけではなくスペースキーを押して「*」を付けないと選択したことにならないので注意)、dbconfig-commonで設定しますか?に対しては「はい」を選択、phpmyadmin用MySQLアプリケーションパスワードはpasswordを入力)

$ 
$ 
$ 

http://vm-xubuntu.mshome.net/phpmyadmin で表示されたらOK
パスワード eccube4user、パスワード passwordでログイン、eccube4で使用するデータベースを作成しておきます。
「データベース」タブをクリック
データベース名 eccube4
照合順序 utf8mb4_general_ci
で作成

このバージョンのphpmyadminはphp7.3に対応していないのか、いくつかの画面(テーブル閲覧、インポート、エクスポートなど)でwarningが出てしまうので対応します。
該当箇所を修正するかphp7.3に対応したバージョンを探せばよいのだけれど、とりあえず動いてくれればいいので、以下の方法で簡易対応。
(エラーが出ないようなら対応不要です)

エディタでcommon.inc.phpを開く。
$ 

冒頭の「<?php」の次の行に
error_reporting(0);
を追加。

変更前
<?php
/* vim: set expandtab sw=4 ts=4 sts=4: */
/**
    :
    :

変更後
<?php
error_reporting(0);
/* vim: set expandtab sw=4 ts=4 sts=4: */
/**
    :
    :

Ctrl+O、Enterで保存、Ctrl+Xでエディタを終了。

■ECCUBE4インストール

WinSCPで仮想マシンにアクセス。
/var/www/html/ に eccube-4.0.3.zip をアップロード

SSHで /var/www/html/ に移動
$ 

zipファイルを解凍
$ 

WinSCPで eccube-4.0.3.zip を削除、ディレクトリ eccube-4.0.3 を eccube4 に変更
(SSHシェル操作で解凍したファイルがウィンドウに表示されていなかったら更新ボタン またはCtrl+r を押す)

ブラウザから http://vm-xubuntu.mshome.net/eccube4/ にアクセス、ECCUBEをインストールします。

データベースのホスト名 localhost
データベース名 eccube4
ユーザ名 eccube4user
パスワード password

 

以上の手順に沿って、Hyper-VへのXubuntuインストール、EC-CUBE4のインストールを行なった様子

仮想環境上のファイルへのアクセスが面倒な場合

通常、Hyper-V仮想環境のXubuntu上のファイルへのアクセスはWinSCP等のクライアントソフトを使うことになりますが、Sambaを利用することでネットワークドライブとしてエクスプローラで直接読み書きできるようにすることもできます。

・Sambaインストール
$ 

・smb.confを編集
$ 

nanoエディタでsmb.confが開きますので、一番下までスクロールさせて以下を追加します。
[vm-xubuntu]
    comment = hyper-v_xubuntu
    path = /var/www/html
    writeable = yes
    guest only = yes
    force user = username

追記したら Ctrl+O 、Enter で書き込み、Ctrl+Xでnanoエディタを終了。

Sambaを再起動します
$ 

Windows側設定

デスクトップ上またはエクスプローラ上のPC(マイコンピュータ)アイコンを右クリック、「ネットワークドライブの割り当て」を選択

ドライブ: 空いている好きなドライブ名を選択
フォルダー: \\VM-XUBUNTU\vm-xubuntu (参照ボタンから辿っても可)
「サインイン時に再接続する」にチェックして[完了]ボタン

以上で、設定したドライブ名から /var/www/html へのファイルアクセスが行なえるかと思います。