[非VM] 安裝 LAMP @ Ubuntu @ WSL 子系統 @ Windows 10
Windows 10 最新令人躍躍欲試的功能就是給 Linux 用的子系統環境了( Windows Subsystem for Linux ),微軟在 Windows 底下植入一個子系統環境,可以執行起一個功能完備的 Ubuntu 14.04 核心程式,這個子系統有點像 VM 但又不是 VM,像是在一套硬體內執行起一個系統上的系統, Windows 能夠在工作管理員、記憶體管理員內看到這個子系統概況,這個子系統也可以處理到 Windows 底下的文件。
如果把這個子系統上的 Ubuntu 當作小 server 來用,惡搞的可能性就很多,例如安裝一套 Wordpress 在 LAMP 環境內(Linux + Apache + PHP + MySQL) 在這個子系統上,未嘗不可。
更新 Windows 到最新版
先確定 Windows 10 已經更新到最新的 Anniversary Update 才有開啟子系統功能。
安裝 Windows Subsystem for Linux
1. 開啟設定、進入更新與安全、在開發人員專用頁面開啟測試人員模式
2. 開啟設定、進入應用程式、點擊程式和功能、點擊開啟或關閉 Windows 功能、裡面找到適用於 Linux 的 Windows 啟動後安裝、並重新開機
安裝 Ubuntu
1. 點擊開始選單執行 Bash.exe (這並不是真的 bash、這並不是真的 bash、這並不是真的 bash,很重要、說三次),就會開始從網路安裝 Ubuntu
2. 安裝後會請你設定一組預設的使用者帳號與密碼登入這個 Ubuntu 環境
設定好之後就可以從開始選單內啟動 Ubuntu 內的 Bash
好了,現在已經有一套 Ubuntu 環境,Windows 環境的磁碟機資料也已經掛載在 /mnt 底下,可以開始惡搞了。
更新與安裝其他 Ubuntu 元件
更新 Ubuntu
sudo apt update
sudo apt upgrade
安裝 Apache + MySQL + PHP5 + 工具程式
sudo apt-get install apache2 php5 libapache2-mod-php5 php5-mcrypt mysql-server php5-mysql unzip
Bash 內啟動服務
/etc/init.d/apache2 start
/etc/init.d/mysql start
網頁路徑就在子系統內
/var/www/html
標標準準,可以丟網頁進去測試看看了。
安裝 Wordpress 試試看
設定 MySQL 建立 Wordpress 資料庫
mysql -uroot -p
輸入安裝 SQL 過程中建立的密碼
create database wordpress
然後去下載 Wordpress 後放到網站資料夾內
cd /var/www/html/
sudo cp /mnt/c/Users\[YOUR-USERNAME-]\Downloads\wordpress* #用 Windows 下載後預設應該都放在這個路徑內,* 是抓到版本號,tab 可以幫忙補命令列文字
unzip wordpress-4-5-3.zip
sudo chown -R www-data:www-data /var/www
瀏覽器開啟 Wordpress 開始設定吧!
http://localhost/wordpress/
其他的 Wordpress 應用就自行參照其他 Wordpress 的說明了。
其他惡搞
當然是跑跑看 X widnow 啊:
也可以安裝 Ruby on Rails 試試看,雖然說還有些問題,但也有人覺得很夠用了啊:
安裝個 Python 玩玩看
管理/安裝/移除 Linux 子系統
對於 Linux 子系統, Windows 提供一個新的指令 lxrun
/install 安裝子系統
/uninstall 解除安裝子系統
/setdefaultuser 重設子系統使用者
/update 更新子系統套件索引
所以惡搞完 Ubuntu 已經有點覺得亂七八糟,要還原子系統嗎?輸入底下指令就可以還原:
lxrun /uninstall /install
其實就是整個環境砍掉重裝...
茶餘飯後
為什麼會稱這是子系統內的 Ubuntu 而不像有些人稱做是 Ubuntu 子系統呢?因為光是看這個安裝流程大概就知道,這套系統環境不單是為 Ubuntu 準備的,之前微軟曾考慮過要將 Android 系統搬到 Windows 上,所以之後的子系統內可能還會有 Android 或 BSD 也說不定,Ubuntu 只是這條路上的試金石。
從安裝結果可以知道,這個子系統其實是跟 Windows 系統整個結合在一起的程式層,當啟用網站伺服器後占用的 80 port 正是 Windows 系統所用的 80 port ,記憶體管理也是由 Windows 管理,執行的 Linux 程式也會放在 Windows 工作管理員內一併管理(工作管理員看是連同記憶體需求歸在 Bash.exe 底下),使用上也不像 VM 一樣需要切分記憶體(切太多怕 VM 閒置沒用到、切太少怕 VM 不夠用),使用錯了就移除重來就好,做個簡單家庭用伺服器也綽綽有餘,省卻了安裝 Windows 版 AMP 環境把 Windows 搞得很混亂的風險,真的是很方便。