Window10でLAMP (Fall Creators Update版)


この記事は

プログラムを学んでいるひと向けに、自宅で手軽にサーバーサイドのプログラムを試してみるための環境として、Windows10でLAMPしてみる、という記事です。
昨年(2016年)に"Anniversary Update"の時に自分用に書いておいたメモの内容を"Fall Creators Update"に合わせて書き換えました。

Windows Subsystem for Linux を有効にする

まず"Windowsの機能"というウィンドウを開きます。
1. スタートメニュー歯車アイコンをクリックして設定を開く

2. アプリをクリック

3. 左側のアプリと機能をクリック(既に選ばれている筈ですが念のため)

4. 設定ウィンドウの幅により、広ければ右サイド、狭ければスクロールした下の方に「関連設定」プログラムと機能という項目があるのでクリック。プログラムと機能というウィンドウが開きます

5. 左側にWindowsの機能の有効化または無効化という項目があるのでクリック。Windowsの機能というウィンドウが開きます。

または
1. スタートメニューからWindows システム ツールの項目の中のコントロール パネルを選ぶ。コントロール パネルが開きます。

2. プログラムという項目にあるプログラムのアンインストールをクリック。プログラムと機能というウィンドウが開きます。

3. 上記5番に同じ

  • コントロール パネルコルタナさんにconと入力して探してもらうという手もあります。

Windowsの機能に無事たどり着いたら、スクロールしていってWindows Subsystem for Linuxという項目を探してください。ここにチェックを入れてOKします。この機能は再起動後に有効になります。再起動を促すダイアログが出てくるので再起動してください。

  • もしここがWindows Subsystem for Linux (BETA)となっていたら、まだFall Creators Updateが適用されていませんのでWindowsをアップデートしてください。
  • BETA版ではなくなったので、以前のように「開発者モード」にする必要はなくなりました。

Ubuntuをインストールする

Windows Subsystem for Linux(以下WSL)ではストアから複数のディストリビューションがインストールできますが、ここではUbuntuを選びます。(2017年10月現在では他に"openSUSE"、"SUSE Linux Enterprise Server"が選べます)

ストアを起動してubuntuで検索してください。
見つけたらインストールします。

スタートメニューからUbuntuを選んで起動します。初回起動時にインストールが始まり、しばらく時間がかかります。インストールが完了すると最後に、ユーザーネームパスワードの入力がありますが、これはWindowsのアカウントとは全然関係はありませんので自由に決めてください。パスワードは確認のため2回入力することになります。パスワードは今後何度も入力することになるので絶対忘れないでください。

インストールが終了すると画面にプロンプトが出て入力待ち状態になります。
プロンプトはデフォルト状態では
ユーザー名@ホスト名:カレントディレクトリ$
となっています。ホスト名はWindowsの設定システムバージョン情報で確認できる"デバイス名"が設定されています。
起動時のカレントディレクトリは"~"と表示されていますが、これはユーザーのホームディレクトリで、実際には/home/ユーザー名です。
以下、ここにキーボードからコマンドを打ち込んでプログラム/パッケージのインストールや設定をしていきます。
まずはインストールに使うapt-getを最新にしておきます。apt-getコマンドを使用するには管理者権限が必要になりますのでコマンドの前にsudoをつけて実行します。

sudo apt-get update

と打ち込んでEnterを押すとパスワードの入力が求められるので上で設定したパスワードを入れてください。(一度パスワードを入れてから数分間はsudoコマンドのあとパスワード入力を省略してくれます)
ちなみにこのupdateでaptライブラリが最新版に更新されます。
続いて、インストール済みパッケージを最新バージョンにアップデートします。

sudo apt-get upgrade

アップグレードするパッケージがあった場合、「これこれの容量のディスクスペースを消費するがインストールしてよいか?」というようなことを訊かれますのでyを入力してください。いちいちyを入力するのが面倒な場合は

sudo apt-get upgrade -y

と、-yを付け加えておくとこちらの返事を訊かずに先に進みます。
アップグレードした結果不要になったパッケージがある場合はそのように表示がされますので、不要パッケージを削除しておきます。

sudo apt-get autoremove

これらの作業(apt-get update/upgrade)は定期的に行ってください。


Fall Creators Update以前に既にUbuntuを導入済みのひとへ
コマンド プロンプトPowerShellからbashと打ち込んでインストールした"Bash on Ubuntu on Windows"は、今回インストールした"Ubuntu"とは別インスタンスになります。前者は将来的には廃止方向ということなので適宜新環境に移行しましょう。

参考:
What's new in WSL in Windows 10 Fall Creators Update - MSDN Blogs


Apacheをインストールする

LAMPL(Linux)の導入が終わりましたので次にA(Apache)をインストールします。

sudo apt-get install apache2

以下、インストール時には「これこれの容量のディスクスペースを消費するがインストールしてよいか?」というようなことを毎度訊かれますのでyを入力してください。いちいちyを入力するのが面倒な場合はupgradeの時と同じようにコマンドに-yをつけておくと質問を省略できます。
インストールが終了したら、動作確認をしてみましょう。
ApacheはWebサーバーなので、まずサービスを立ち上げます。

sudo service apache2 start

無事起動すると

Starting Apache httpd web server apache2

と表示されます。その下に

AH00076: Failed to enable APR_TCP_DEFER_ACCEPT

と警告が出ますが今は無視しておきます。Apacheが起動したら、普段使っているWebブラウザを立ち上げてください。(Edge/IE/Chrome/FireFoxなど)
アドレスバーにlocalhostと入力してエンターを押してみてください。

無事にApache2 Ubuntu Default Pageが表示されれば成功です。
(表示されるファイルは/var/www/html/index.htmlです。)

なお、サービスの停止は

sudo service apache2 stop

再起動は

sudo service apache2 restart

です。

※まっさらな状態のWindowsの場合はたいてい大丈夫だと思いますが、一部のサービスがhttpのポートである80番を既に使用している場合、Apacheが起動に失敗します。
先ずは上で"WSL"を有効にした時と同じように"Windowsの機能"を開いて"インターネット インフォメーション サービス"にチェックが入っていないことを確認してください。もしチェックが入っていた場合はチェックを外してOKを押し、もう一度Apacheを起動してみてください。

MySQLをインストールする

次はLAMPMMySQLをインストールします。

sudo apt-get install mysql-server

インストールの途中で、rootユーザーのパスワードを決めるように言われます。

ここも自由にパスワードを決めてかまいません。ただし忘れないでください。

インストールが終了したら、こちらも動作確認をしてみましょう。
MySQLはデータベースサーバーなので、Apacheと同じようにまずサービスを立ち上げます。

sudo service mysql start

Starting MySQL database server mysqldと表示されMySQLが起動します。
以下のコマンドを打ち込んでMySQLサーバーに接続してみましょう。

mysql -u root -p

パスワードの入力を求められますので、MySQLのインストール時に決めたパスワードを入れてください。無事接続できると、プロンプトが

mysql>

に変わります。ここにコマンドを打ち込むことでデータベースを操作できます。
とりあえず試しに現在のMySQLサーバーのバージョンを見てみましょう。

show variables like 'version';

以下のような表示になると思います。

versionシングルクォーテーションで囲むことと、最後にセミコロンをつけることを忘れないでください。セミコロンを忘れた場合はMySQL側でコマンドが途中だと判断し、
->というプロンプトで続きの入力を促すのでセミコロンのみ入力すれば大丈夫です。

動作が確認できたら一旦接続を切ります。quitと入力すれば元のUbuntuに戻ります。

quit

MySQLApacheと同じように
sudo service mysql stopで停止、
sudo service mysql restartで再起動できます。

PHPをインストールする

最後にLAMPPですが、
ここではPHPをインストールします。
PerlPythonについてはまたいずれ)
PHP本体の他にMySQLにアクセスするためのモジュールもインストールします。

sudo apt-get install php php-mysql

インストールが終わったらバージョンを確認してみましょう。

php -v

以下のように表示されます。

PHP 7.0.22-0ubuntu0.16.04.1 (cli) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
    with Zend OPcache v7.0.22-0ubuntu0.16.04.1, Copyright (c) 1999-2017, by Zend Technologies

さて、Anniversary Updateの頃はこれだけでApache上でもPHPが実行できるようになっていたのですが、現在はApache用のモジュールを別途インストールする必要があります。

sudo apt-get install libapache2-mod-php

インストールが終わったらApacheを再起動します。

sudo service apache2 restart

動作確認のためにテスト用のファイルを作ってブラウザで表示させてみましょう。
テキストエディタも好きなものをインストールして使ってもらえば良いのですが、
とりあえず初めから入っているnanoというテキストエディタを使ってみます。

sudo nano /var/www/html/test.php

以下のように入力します。

test.php
<?php
    phpinfo();
?>

入力できたら、Ctrlを押しながらxを押してください(Exit)。
変更を保存するか訊かれるのでyと入力し、次に書き出すファイル名の入力画面になるのでそのままEnterを押してください。

nanoの主なコマンドは画面下に表示されています。
"^"は、"コントロールキーを押しながら"ということで、
"^G"なら、Ctrlを押しながらgを押します。
"M-"は、"エスケープキーを押してから"ということで
"M-/"なら、Escを押してから/を押します。

保存したファイルがちゃんとブラウザから見えるかどうか、アドレスバーに
localhost/test.php
と入力してみます。

こんな感じの画面が見えれば成功です。

以上でWindows10上でのLAMP環境の構築はひとまず終了です。

なお、ApacheMySQLともに、Ubuntuのウィンドウを閉じるとサービスも終了してしまうので、基本的に一度開いたら閉じないようにしましょう。Ubuntuのウィンドウを複数開いていた場合は、どれか一つ残しておけばサービスは停止しません。

おまけ:phpmyadminのインストール

データベースをブラウザ上で管理するphpmyadminをインストールします。

sudo apt-get install phpmyadmin

インストール中にどのwebサーバーを使うかの選択画面が出ます。

apache2にカーソルを合わせてスペースキーを押すと「」マークがつきます。
そのままEnterで確定します。
次にphpmyadminの設定について訊かれます。

そのままYesを選んでEnterを押します。
最後にパスワードの設定があります。

phpmyadmin用のパスワードを決めてください。

インストールが完了したらブラウザのアドレスバーに以下のように入力します。
localhost/phpmyadmin
phpMyAdminのログイン画面が出ます。

ここでのユーザ名パスワードMySQLのものです。
ユーザ名rootとし、パスワードにはMySQLのインストール時に決めたパスワードを入れてください。
無事ログインできたら、画面左側上部のドアに矢印のアイコンをクリックしてログアウトします。

以上でだいたい準備完了です。お疲れ様でした。