Bash on Ubuntu on WindowsにLAMP環境をセットアップ

はじめに

Window 10 Anniversary Update より実装されている Windows Subsystem for Linux (WSL) は、現在Beta版ということになっていますが、今秋提供のWindows 10の大型アップデートである Windows 10 Fall Creators Update からは正式版となり、Bash on Ubuntu on Windows の他に、OpenSUSE や Fedora などのディストリビューションも追加され、これらがWindowsストアを通じて提供されるようです。

Bash on Windows/Windows Subsystem for Linuxがベータ版を卒業、正式版に。今秋のWindows 10 Fall Creators Updateで - Publickey

アップデートしたら、また一からインストールかなとちょっと憂鬱になりますが、今回は、このBash on Ubuntu on Windows(以下、BoW)上で、WordPressをテストする必要がありまして、いわゆるLAMP環境(Apache HTTP Server + MySQL + PHP)を構築しなければならなくなりました。私が扱っている業務システムも一部PHPを使用しているので、仕方ないですね。

MySQLのセットアップについては、前回投稿した記事「(続)Bash on Ubuntu on Windows 環境構築」に記載していますので、そちらを参照していただき、こちらでは、Apache HTTP ServerとPHPをセットアップし、phpMyAdminとWordPressが動かせるようになるまでの流れを掲載したいと思います。

Apache HTTP Server と PHP のセットアップ

普通にaptでインストールします。いつもCentOSになれているので、Apache HTTP Serverを入れるときは「yum install httpd」ですが、Ubuntuは「apt install apache2」なんですね。

とりあえず、PHPやphp-mysqlも一緒に指定すれば、他に必要なものも入れてもらえるはず。ということで、

$ sudo apt install apache2 php php-mysql

としたところ、モジュール版のPHP(mod_php)、いわゆるApacheのモジュールとしてのPHPは入らず、FastCGI版のPHPがPHP-FPM (FastCGI Process Manager)が入り、これが有効になってしまいます。これからやはり、lighthttpdとFastCGI PHPの組合せのパターンが主流になっていくんですかね。

ここでは、ApacheのモジュールとしてPHPを動かしたいので、「libapache2-mod-php7.0」と一緒にインストールします。

$ sudo apt install apache2 php php-mysql libapache2-mod-php7.0

インストールプロセスの途中で、PHPモジュールを有効にしても良い?みたいなことを聞いてきたような記憶がありますが、もし有効になっていない場合は、次のコマンドで有効にします。

$ sudo a2enmod php7.0

それでは、httpdサービスを起動してみます。

$ sudo service apache2 start

httpd起動時に、「Failed to enable APR_TCP_DEFER_ACCEPT」の警告が出てくるのですが、その対応策が次のサイトに記載されていました。

【BoUoW】Apache起動時の「Failed to enable APR_TCP_DEFER_ACCEPT」 – Qiita

このサイトにならって、/etc/apache2/apache2.confに、次の2行を追記します。

AcceptFilter http none
AcceptFilter https none

httpdを起動して、Windows 上のChromeかなんかで、「http://localhost/」でアクセスすると、次のようなページが表示されます。

ubuntu-apache2

問題なくWWWサービスが立ち上がっていることが確認できましたので、今度は「phpMyAdmin」のインストールです。aptでインストールできるようです。

$ sudo apt install phpmyadmin

これにより、「php7.0-mbstring」、「php7.0-gettext」、「php7.0-mcrypt」などの主要なPHPモジュールも一緒にインストールされるようです。

再度、httpdを再起動して、PHPが動作するか確認します。

/var/www/html上に、「hogehoge.php」という名前で、次のファイルを作成します。

<?php phpinfo(); ?>

Webブラウザにて「http://localhost/hogehoge.php」でアクセスします。すると次のようなページが表示されます。

ubuntu-phpinfo

PHP利用可能なモジュールのステータスが表示されますが、その中に「mysqli」とか「mysqlnd」などがあることを確認しておきます。

WordPressのインストール

Apache2とPHPの連携、必要なPHPモジュールが利用できることが確認できたので、WordPressをセットアップしてみます。

まずは、WordPress用のデータベースと、データベースユーザを設定します。それぞれ設定値を仮に次のように指定します。

  • データベース名: wordpress
  • データベースユーザ名: foo
  • パスワード: hogehoge

それでは、MySQLのクライアントツールmysqlにて作成します。

とその前に、MySQLのサービスを起動しておきます。

$ sudo service mysql start

MySQLのサービスが無事に起動していることを確認したら、mysqlコマンドにて管理者(root)で、MySQLサーバに接続します。

$ mysql -u root -p

データベース「wordpress」に対しフルアクセス可能なユーザ「foo」とそのパスワードを登録して、終了します。

mysql> grant all privileges on wordpress.* to 'foo'@'localhost' identified by 'hogehoge';
mysql> flush privileges;
mysql> quit

今度はデータベースユーザ「foo」で、MySQLサーバに接続します。パスワードは上で設定したものを入力します。

$ mysql -u foo -p

ここでは、データベース「wordpress」を作成して、終了します。

mysql> create database wordpress;
mysql> quit

WordPressのサイトから、日本語WordPressの最新版をダウンロードしてきます。

$ cd
$ wget http://ja.wordpress.org/latest-ja.tar.gz

tarコマンドで解凍と展開を行います。

$ tar xvzf latest-ja.ta.gz

ディレクトリ「wordpress」が生成されますが、これを、Apacheのドキュメントルート(/var/www/html)配下の「wp」というディレクトリ名で移動させます。(別に「wp」でなく別の名前でも構いません)

$ sudo mv wordpress /var/www/html/wp

/var/www/html/wp配下のファイルをApacheが利用できるよう、所有者をApacheのユーザ「www-data」に変更します。

$ sudo chown -R www-data.www-data /var/www/html/wp

ブラウザから「http://localhost/wp」でアクセスすると、WordPressの設定画面が表示され、そこに「データベース名」、「データベースユーザ名」など必要な項目を入れて進んでいくと、セットアップは完了します。

ubuntu-wp

とりあえず、WordPressが動作できるところまで完了しました!

広告

One thought on “Bash on Ubuntu on WindowsにLAMP環境をセットアップ

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中