# laradock https://www.bilibili.com/video/BV1m4411P7er?p=4&spm_id_from=pageDriver ## php 可看這專案 https://github.com/crater-invoice/crater ## 關於workspace容器 workspace是laradock連結各個容器的重要容器 https://ithelp.ithome.com.tw/articles/10219270 ## 基本安裝 專案跟laradock同一層資料夾 跟文黨一樣步驟 laradock .env可以改你要的配置 但一樣你build過後 會直接吃鏡項 ![](https://i.imgur.com/TlbvbbK.png) ## 注意事項 php 跟 mysql 要改低版本 nginx的cofig ![](https://i.imgur.com/2xIEfeh.png) 資料夾名稱要對應外面資料夾名稱 ![](https://i.imgur.com/b0UAH5K.png) 另外還要改 windos / system32裡面/dir那個 裡面的host 改自己的dns mysql 的原本欲設密碼 是root 如果要連接 用exec連過去 記得exec是兩個參數 第一是容器名稱 第二個是abg 是可以外部帶入的 這邊放入bash的位置 ### 更改 DB_HOST 在本地不會遇到 因為一樣是本地 當然比較建議用composer workspace 因為這是laraDocker專們的 這樣之後去生產環境也比較好 ``` 終於解決了這個問題。我將 .env DB_HOST=127.0.0.1 更改為 DB_HOST=db 然後它的工作! “ DB_HOST= docker-compose.yml 上 mysql 容器的服務名稱” 這次我的mysql容器名稱是db,所以需要DB_HOST為db。 ``` 切回專案資料夾,開啟 .env 檔案,將環境參數的 DB_HOST 從 127.0.0.1 改成 mysql 。 DB_HOST=mysql 特別注意DB_HOST要改成mysql。 Project的設定檔要因應環境來修改,在Docker的環境下,每個Container都可以視作一個伺服器,所以對他們而言127.0.0.1是自己,但我們不會希望phpMyAdmin是連給自己吧:) 所以我們要讓phpMyAdmin再往外連到外部伺服器(你的主機本體),然後從外面連回來MySQL的port 3306。 對於 Mac OSX 和 Docker for Windows)是將主機地址替換localhost 為host.docker.internal DB_HOST=host.docker.internal DB_DATABASE=databasename DB_USERNAME=root DB_PASSWORD=testpassword 基本上,DNS 名稱host.docker.internal將解析為主機使用的內部 IP 地址。 ## 彩雷 php改動 Workspace也要重啟 https://blog.csdn.net/lune_windy/article/details/103164837 給 777權限 The stream or file "/var/www/twnml_backend/storage/logs/laravel-2022-06-29.log" could not be opened: chmod(): No such file or directory create file► search 帳號沒權限 file_put_contents(/var/www/twnml_backend/storage/framework/cache/data/85/5f/855f92484c8c414d36c1b25cb24876e30229cbbf): failed to open stream: Permission denied 一樣給777 git hub ssh copy那邊改 ssh ![](https://i.imgur.com/JmLvmjF.png) 然後重build restart 然後會沒權限 bad premission chmod 600 ~/.ssh/id_rsa 指令介面 先安裝zsh 然後安裝oh-my-shell 權限問題 use 也在開一個group chown 擁有者 chomd 權限 ![](https://i.imgur.com/US4ce6H.png) :後面是group 最好給root 前面擁有者 最好是給自己use ``` [Entrypoint]: MYSQL_USER="root", MYSQL_USER and MYSQL_PASSWORD are for configuring a regular user and cannot be used for the root user Remove MYSQL_USER="root" and use one of the following to control the root user password: - MYSQL_ROOT_PASSWORD - MYSQL_ALLOW_EMPTY_PASSWORD - MYSQL_RANDOM_ROOT_PASSWORD ``` 用戶root已保留,並且在啟動時已使用 mysql 創建。 MYSQL_USER必須是不同的名稱,而不是root. ## wsl 安裝php https://www.youtube.com/watch?v=EJVvf2VqKRI 先安裝版本包 才能安裝php多版本 不然預設就7.4 然後安裝 add-apt-repository 私人包 才能裝8 最後就安裝8 php cli可以透過 update-alternatives 來進行版本切換 切換至PHP 5.6 sudo update-alternatives --set php /usr/bin/php5.6 切換至PHP7.1 sudo update-alternatives --set php /usr/bin/php7.1 ###### tags: `Laravel`