zirconsoft’s blog

Microsoft関係について取り上げます。

Bash on Ubuntu on WindowsでLAMP開発環境構築

LAMP=Linux+Apache+MySQL+PHPを、Bash on Ubuntu on Windowsで構築しました。

Bash on Ubuntu on Windowsとは

Windowsのサブシステム(拡張機能)として、Ubuntuを動かし、その上でBashを動かすというWindows10 Proの標準機能です。

Microsoft公式ではWindows Subsystem for Linux(WSL)と呼んでいます。

Hyper-Vなどによる仮想化よりも軽くWindowsLinuxの機能を使うことができます。

Windows Subsystem for Linux - Wikipedia

WSLのインストール

Cortanaに「Windowsの機能の有効化と無効化」でサーチをかけてもらうと、

コントロールパネルの設定画面を教えてくれます。

その画面からWindows Subsystem for Linux(Bata)を見つけチェックを入れ、OKをクリックします。

ここでいったん再起動を行います。

今度はCortanaに「Bash」でサーチをかけてもらうと、

Bash」のアプリを見つけてくれます。

これを起動しましょう。

ライセンスの確認が出てきます。「y」を入力します。

Ubuntuのインストールが開始されます。この、もし気になるようであれば

/etc/apache2/apache2.conf に次の2行を足しましょう

AcceptFilter http none

cceptFilter https none

参照:【BoUoW】Apache起動時の「Failed to enable APR_TCP_DEFER_ACCEPT」 - Qiita

Apacheが起動したらMicrosoft Edgeを使ってURL「localhost」にアクセスしましょう。

「Apache2 Ubuntu Default Page」が表示されれば成功です。

次にphpの動作を確認します。

「cd /var/www/html」コマンドで、カレントディレクトリーを/var/www/htmlというapacheのルートディレクトリーに移動します。

「sudo vi info.php」と入力し、info.phpを編集します。sudo をつけているのは、/var/www/htmlのファイル編集権限を得る必要があるからです。

iを入力し、インサートモードに切り替えたら、

次のコードを入力します。

<?php phpinfo() ?>

入力したらESCキーでインサートモードを抜けて、「:wq」で保存しましょう。

無事保存することができたら、Microsoft EdgeでURL「localhost/info.php」にアクセスします。

するとPHPinfoと呼ばれるphpのモジュール情報などが見られるページが表示されます。

表示されればphpの動作を確認できました。

最後にMySQLの動作を確認しましょう。

ここではphpMyAdminをインストールして、MySQLにアクセスしてみます。

まず「sudo service mysql start」コマンドでmysqlを起動してみましょう。これはphpmyadminを正常にインストールするために必要です。

「sudo apt-get install phpmyadmin」コマンドでphpMyAdminをインストールします。

確認の「y」を入力します。

途中でphpMyAdminをインストールするwebサーバを聞かれます。apache2を選択(スペースキーを入力しapache2にチェックを入れ、tabキーで了解を選びエンターキーを入力)しましょう。

またその後phpcofig-commonの自動設定を進められますので、tabキーではいを選択し、エンターを入力します。

さらに途中でphpmyadmin用のパスワードの設定をします。適当なモノを入力します。

 このとき、phpMyAdminの依存関係の「php7.0-mbstring」「php7.0-mycript」がインストールされるのは地味にうれしいです。もしphpMyAdminが必要なければ、「apt-get」コマンドで別途インストールが必要です。

インストールが完了したらMicrosoft EdgeでURL「localhost/phpmyadmin」にアクセスします。ユーザー名とパスワードを入力し、データベースの動作確認をしましょう。

以上でLAMP環境のインストールは完了です。

Apache2におけるModuleの設定

/etc/apache2/http.confではなく、/etc/apache2/apache2.confで設定するバージョンでは、confファイルにLoadModuleを書くのではなく、a2enmodを使って設定するようです。

たとえばmod_rewriteを適用させるには、「sudo a2enmod rewrite」コマンドを実行します。

ほかにも、適用できるModuleが/etc/apache2/mods-availableの中にあります。必要あれば、a2enmodコマンドで適用しましょう。

適用を外すには、a2dismodコマンドを使用します。