windows使用Laravel Sail記錄

Mr_Tom發表於2021-07-01

1.安裝WSL

  1. 開啟子系統功能
    dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
  2. 開啟虛擬機器平臺功能
    dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
  3. 在執行完後重啟電腦
  4. 或者直接用程式開啟 控制皮膚->程式->啟用或關閉window功能

windows使用Laravel Sail記錄

2.使用核心更新包更新

下載地址

https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi

3.以管理員許可權執行cmd,將WSL2 設定為預設版本

wsl --set-default-version 2

4.安裝linux

  1. 開啟Micrisoft Store選擇你偏好的linux系統
    windows使用Laravel Sail記錄
  2. 這裡安裝Ubuntu18.04,設定完使用者後,修改root密碼使用sudo passwd,使用su root切換使用者
  3. 檢視版本,version顯示為2則正確
    wsl -l -v
    推薦安裝Windows Terminal
  4. 使用ssh登入
    vi /etc/ssh/sshd_config
    Port = 22 去掉這行的#,代表啟用埠號22
    ListenAddress 0.0.0.0 去掉這行的#,代表監聽所有地址
    PasswordAuthentication yes,將這行的no改成yes,代表支援賬號密碼形式的登入
    #PermitRootLogin prohibit-password 保留這行的#,這意味著:允許root登入,但是禁止root用密碼登入,所以這行要註釋掉
    PermitRootLogin yes
    sudo service ssh restart #重啟服務

5.安裝Docker

  1. 下載安裝Docker Desktop
  2. 設定WSL2
    windows使用Laravel Sail記錄
  3. 整合Ubuntu
    windows使用Laravel Sail記錄
  4. 映象加速設定

windows使用Laravel Sail記錄
加速地址

"https://xx4bwyg2.mirror.aliyuncs.com",
    "http://f1361db2.m.daocloud.io",
    "https://registry.docker-cn.com",
    "http://hub-mirror.c.163.com",
    "https://docker.mirrors.ustc.edu.cn"

6.安裝PHP

  1. 進入Ubuntu
  2. 更換國內源加速,先備份原來的源
    cd /etc/apt/
    sudo cp /etc/apt/sources.list sources.list.bak
  3. 使用 vim 編輯 sources.list 檔案,替換為以下內容
    deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
    deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
    deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
    deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
    deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
    deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
    deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
    deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
    deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
    deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
  4. 新增 PPA 源
    sudo sh -c "echo 'deb https://launchpad.proxy.ustclug.org/ondrej/php/ubuntu focal main'  > /etc/apt/sources.list.d/ppa_ondrej_php.list"
  5. 更新資源列表
    sudo apt update
  6. 然後會產生以下錯誤:
    windows使用Laravel Sail記錄
    執行以下命令匯入你的公鑰即可 ( 4F4E...7A6C 這一串公鑰要換成你自己螢幕上輸出的那個):
    sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4F4EA0AAE5267A6C
  7. 再次更新資源列表
  8. 安裝php8.0
    sudo apt install -y php8.0-cli php8.0-dev php8.0-pgsql php8.0-sqlite3 php8.0-gd php8.0-curl php8.0-memcached php8.0-imap php8.0-mysql php8.0-mbstring php8.0-xml php8.0-zip php8.0-bcmath php8.0-soap php8.0-intl php8.0-readline php8.0-msgpack php8.0-igbinary php8.0-ldap php8.0-redis
  9. 安裝php7.4
    sudo apt install -y php7.4-cli php7.4-dev php7.4-pgsql php7.4-sqlite3 php7.4-gd php7.4-curl php7.4-memcached php7.4-imap php7.4-mysql php7.4-mbstring php7.4-xml php7.4-zip php7.4-bcmath php7.4-soap php7.4-intl php7.4-readline php7.4-pcov php7.4-msgpack php7.4-igbinary php7.4-ldap php7.4-redis
  10. 切換 PHP 版本(可不做,根據自己需要來)
    切換 cli 執行模式下預設的 PHP 版本
    sudo update-alternatives --config php
    切換 phpize 版本:
    sudo update-alternatives --config phpize
    切換 php-config 版本
    sudo update-alternatives --config php-config
    確認現在的 PHP 版本:
    php -v
  11. 安裝 Composer
    複製以下命令貼上到 Ubuntu 系統中執行,以安裝 composer ,並將 composer 映象配置為阿里雲映象
    sudo sh -c "curl -so /usr/bin/composer https://mirrors.aliyun.com/composer/composer.phar && chmod a+x /usr/bin/composer" \
    && composer --version \
    && composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ \
    && composer config -g -l | grep repositories.packagist.org.url

7.安裝 Laravel Sail

  1. 進入你的 Ubuntu 子系統的家目錄,建立專案目錄

    cd ~
    mkdir projects
  2. 用 VS Code 開啟目錄,window需要先安裝 VS Code 軟體

    code .
  3. 在 VS Code 介面,右鍵 projects 目錄,選擇 Reveal in Explorer,也就是在 Windows檔案管理器 中開啟目錄,在 windows資源管理器中,右鍵 projects 目錄,選擇固定到快速訪問和傳送到 -> 桌面快捷方式,便於以後開啟專案目錄。
    windows使用Laravel Sail記錄

  4. 拉取程式碼

    cp /mnt/c/Users/ASUS/.ssh/id_rsa* /home/tm/.ssh/ 將window的檔案拷貝到Ubuntu裡
    git clone git@xxx.git
  5. 使用網路位置在ide開啟專案

windows使用Laravel Sail記錄

  1. 安裝sail
    composer require laravel/sail --dev
  2. 進入專案目錄,你的當前使用者在 Ubuntu 中的 UID
    cd /home/tom/projects/test
    id tom
  3. 配置.env檔案
    # 映象服務名稱
    APP_SERVICE=doctest.test
    # 上面生成的UID
    WWWUSER=1000
    # 上面生成的使用者組名稱
    WWWGROUP=1000

8. Dockerfile定製

  1. 釋出
    php artisan sail:publish
  2. 在 kkyn_dcat_admin/docker/8.0 目錄下,建立一個 sources.list 檔案,將以下內容貼上進去:
    deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
    deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
    deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
    deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
    deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
    deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
    deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
    deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
    deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
    deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
  3. 配置 Ubuntu 國內映象
    回到 Dockerfile 檔案,在 RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone 這句程式碼後面,加入以下程式碼ADD sources.list /etc/apt/
    ADD sources.list /etc/apt/
  4. Ubuntu PPA 加速
    在 Dockerfile 檔案中,搜尋:ppa.launchpad.net 替換成launchpad.proxy.ustclug.org
  5. 安裝 Composer
    Dockerfile 檔案中,搜尋下面這行程式碼:
    && php -r "readfile('http://getcomposer.org/installer');" | php -- --install-dir=/usr/bin/ --filename=composer \
    替換為
    && curl -so /usr/bin/composer https://mirrors.aliyun.com/composer/composer.phar \
    && chmod a+x /usr/bin/composer \
    && composer --version \
    && composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ \
  6. 釋出 docker-compose.yml 檔案
    php artisan sail:install --with=mysql,redis
  7. 啟動
    ./vendor/bin/sail up
  8. 編輯 hosts 檔案,配置開發用的域名
    ```
  9. 0.0.1 example.test
    ```
  10. 配置別名
    echo "alias sail='bash vendor/bin/sail'" >> ~/.bashrc

參考文章 將 Laravel 開發環境由 Homestead 遷移到 Laravel Sail ( Docker ) 完整詳細教程

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章