Ubuntu on Windows で開発・勉強用LAMP環境を作る
問題
Ubuntu on Widnows で開発用LAMP環境、作れます?
答え
いけそうです。
ファイルはWindowsとUbuntuとで共有できて、Windows側のテキストエディタでphpファイルを編集 → Ubuntu側のphpですぐ実行なども可能。
Ubuntu on Windows を有効にする
Windowsの機能の有効かにて、Windows Subsystem for Linux (Beta) 機能を有効化する。
Windowsの設定 → 更新とセキュリティ → 開発者向け → 開発者モードを選択 → 確認メッセージを読んで「はい」をクリック。
Bash on Ubuntu on Windows をインストールする
コマンドプロンプトを開く → bash と入力、Enter → インストールが始まる。
インストール後は、スタートメニューの Bash on Ubuntu on Windows をクリックするか、コマンドプロンプトを開いて bash コマンド実行で、bashが利用できる。
これでWindowsの中にUbuntuの仮想マシンができたような感じになる。でもCドライブが/mnt/cで見えたりするので、まったく別の環境でもない。
なお、この後いろいろやってからUbuntu環境を作り直したくなったら、コマンドプロンプトで以下のコマンドでできる。
・アンインストール
C:\> lxrun /uninstall /full
・インストールしなおし
C:\> lxrun /install
多少でもファイルが残っているのも気になるときは以下の中も削除
%USERPROFILE%\AppData\Local\lxss
LAMP環境を作っていく
Apache2.4
apt-get install apache2
最初からある設定ファイル /etc/apache2/sites-available/000-default.conf
のVIrtualHostの設定内容を書き換えるなら、以下のような感じで変更。
# vi /etc/apache2/sites-available/000-default.conf <VirtualHost *:80> # プログラムが C:\var\www においてあるとしたら DocumentRoot /mnt/c/var/www # 閲覧可能にするのと、.htaccess を使えるようにするのと <Directory /mnt/c/var/www> Options FollowSymLinks AllowOverride All Require all granted </Directory> </VirtualHost>
MySQL5.5
apt-get install mysql-server
面倒だったら、設定はそのままでもかまわない。
InnoDB関連の設定、デフォルトの文字コードなど変えたいので、以下のような設定を少しだけ追記。
# vi /etc/mysql/my.cnf
...
[mysqld] セクションに追記
...
...
innodb_buffer_pool_size=1G
innodb_log_file_size=512M
character-set-server=utf8
...
...
php5.5
apt-get install php5 php5-mysql php5-gd php5-curl ... (必要なものを追加)
サービス起動
service apache2 start
service mysql start
これで C:\var\www\index.php
を置いて、ブラウザから http://127.0.0.1/
にアクセスすると、動作が確認できる。
普段使うとき
Bash on Ubuntu on Windows では、Apache、MySQLは勝手に起動しないので、Bashwo起動したら、最初に手作業で各サービスを起動する操作が必要になる。
Apacheの気になるエラー
以下のエラーが気になるときは
Invalid argument: AH00076: Failed to enable APR_TCP_DEFER_ACCEPT
以下の設定を追加するとよい
AcceptFilter http none AcceptFilter https none
sshもしたい!
/etc/ssh/sshd_config の以下の個所を編集
UsePrivilegeSeparation no PasswordAuthentication yes
sshd起動
service start ssh
これでTeraTermなどのsshクライアントで 127.0.0.1 に接続すればよい。
コメント