最近看到有網友分享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 laravellocation / {
#這邊要改成這樣
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 官網