WSL2 + Ubuntu 並建立 LNMP環境,額外附加 Node.Js、PhpMyAdmin安裝流程

平民百姓
9 min readJun 13, 2020

--

最近看到有網友分享Windows WSL2 環境運行速度比 Windows Docker 來得快,剛好我也想學學簡單一點的架構,不要又跑VM又包 Docker這樣。

在我之前已經有許多厲害的網友們有寫過一樣的主題了。我呢,就是當筆記記錄下自己操作的過程和在過程中遇到的問題吧~

安裝適用於 Linux 的 Windows 子系統

首先必須要是Windows 10 然後更新到 2004 版,組建 19041 或更高版本
然後以管理員權限執行PowerShell

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart// 將 WSL 2 設定為預設版本
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
// 啟用 WSL
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
// 將 WSL 2 設定為預設版本
wsl --set-default-version 2

接下來就可以從 App Store 下載 Ubuntu 來使用了,我的話是下載20.04 TLS版本

資料來源: Microsoft 官網

開啟支援 ssh 連線

以管理者權限進入 powershell 並修改 /etc/ssh/sshd_config 檔案

Port = 22    # 移除註解
ListenAddress 0.0.0.0 # 移除註解
PasswordAuthentication no # 改成 yes
// 存檔後執行
sudo dpkg-reconfigure openssh-server
sudo service ssh restart

然後就可以用 ssh [username]@127.0.0.1 連進 wsl2 上的 ubuntu 了

PHP 7.4

安裝好Ubuntu後可以先進行更新,然後依照下面的代碼輸入後就會安裝好PHP了

// 系統更新
sudo apt update
// 安裝 PHP 和相關套件
sudo apt install php php-cli php-fpm php-json php-pdo php-mysql php-zip php-gd php-mbstring php-curl php-xml php-pear php-bcmath
// 再裝個composer
sudo apt install composer

其他版本可以參考這篇 https://computingforgeeks.com/how-to-install-php-on-ubuntu/

Nginx

Nginx 就直接下安裝指令就行了,比較特別的是要記得裝完要自行啟動

sudo apt install nginx
sudo service nginx start

啟動OK後在 windows 瀏覽器打下 127.0.0.1 或是 localhost 成功的話就會出現下面的畫面。

不要懷疑 /var/www/html/index.html 預設內容就是長這樣~

要將 PHP 專案與 Nginx 連結,要先將 /etc/nginx/sites-available/default 複製一分到 /etc/nginx/conf.d/[project_name].conf

調整內容

# 目錄指向 /var/www 下的專案路徑
root /var/www/[project_name]/public;
# 這邊加上 index.php
index index.php index.html index.htm index.nginx-debian.html;
# 網域名城可以自己取一個喜歡的名字
server_name laravel
location / {
#這邊要改成這樣
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf; # 拿掉註解
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock; # 拿掉註解
}
location ~ /\.ht { # 拿掉註解
deny all;
}

然後將 您的專案軟連結到 /var/www 路徑下

cd /var/www
sudo ln -s [path of your prokect]

之後重啟 nginx 服務,也確保 php-fpm 有啟起來,所以一起 restart 吧

sudo service nginx restart
sudo service php7.4-fpm restart

在瀏覽起開啟 http://laravel 應該就可以看到自己的專案首頁了,如果沒辦法的話可以把 /etc/nginx/sites-available/default 內的 default_service 拿掉、server_name 改個名字就行了

調整內容有參考這篇 https://blog.gtwang.org/linux/ubuntu-linux-laravel-nginx-mariadb-installation-tutorial/

MariaDB

// 安裝
sudo apt-get install mariadb-server mariadb-client
// 啟動 mariadb
sudo service mysql start
(沒啟動會報錯 ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2))
// 初始化
sudo mysql_secure_installation
// 成功系統會問一些問題
1.Enter current password for root (enter for none): #可以直接按enter
2.Set root password? [Y/n] y
...
3.Remove anonymous users? [Y/n] y
4.Disallow root login remotely? [Y/n] y
5.Reload privilege tables now? [Y/n] y

完成初始化設定後就可以進入 mariadb 建立 database 和使用者了

// 記得加 sudo,不然連不進去
sudo mysql -u root -p
// 建立一個使用者
> CREATE USER 'user'@'%' IDENTIFIED BY 'password';
// 創立權限
> GRANT ALL PRIVILEGES ON 'dbname'.* TO 'user'@'%' WITH GRANT OPTION;
// 刷新
> FLUSH TABLES;

資料參考自: https://hackmd.io/@monkenWu/SyxEisueB#%E5%9B%9B%E3%80%81%E5%AE%89%E8%A3%9Dmariadb

PhpMyAdmin

在根目錄wget下載 (放在你喜歡的地方也可以)

sudo wget https://files.phpmyadmin.net/phpMyAdmin/5.0.2/phpMyAdmin-5.0.2-all-languages.zip

接著解壓縮

sudo unzip phpMyAdmin-5.0.2-all-languages.zip// 檔名太長不開心
cp phpMyAdmin-5.0.2-all-languages phpMyAdmin-5.0.2 -r

這時候你的該路徑下會有一份已解壓縮的檔案,接著做

cd phpMyAdmin-5.0.2
sudo cp config.sample.inc.php config.inc.php
// 然後你需要改一下內容,找到下面這航將引號裡面填上隨意你喜歡的字後存檔
$cfg['blowfish_secret'] = ''

接著到 /etc/nginx/conf.d 偷懶直接複製上面做的 php 設定檔來用

cd /etc/nginx/conf.d
sudo cp ../sites-available/default phpmyadmin
// 接著需要改設定檔內容
sudo vim phpmyadmin
// 找到這三行並修改
listen 8090; # 改成你喜歡的 port
server_name localhost 127.0.0.1;
// 這裡的名稱要跟 /var/www/[phpmyadmin name] 一樣不然找不到
root /var/www/phpMyAdmin-5.0.2;

完成後還需要到 /var/www 做個軟連結

sudo ln -s ~/phpMyAdmin-5.0.2

都完成後重啟 nginx 服務,打開連覽器並前往 127.0.0.1:8090 就會看到phpmyadmin的畫面了~

資料參考: https://hackmd.io/@monkenWu/SyxEisueB#%E5%9B%9B%E3%80%81%E5%AE%89%E8%A3%9Dmariadb

NPM + Node.js

額外附加: 要安裝這兩個必須先安裝 curl、nvm
***建議不要裝ZSH和oh-my-zsh 因為會改寫 npm pm 的路徑***

sudo apt-get install curl// 安裝 nvm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.2/install.sh | bash
// 完成後執行此行應該會回傳 nvm,如果沒有的話請重開終端機
command -v nvm
// 安裝 tls 版 node
nvm install --lts

資料來源: Microsoft 官網

--

--

平民百姓
平民百姓

Written by 平民百姓

由後端轉全端的弱弱工程師 - 生活筆記

No responses yet