搜尋
首頁php框架ThinkPHP關於Laradocke運行TP項目

##下列中由

關於Laradocke運行TP項目

一、laradock首次up的時候,build過程非常慢由於拉取容器的映像預設在國外,所以在docker-compose up 容器之前,在.env檔案中尋找以下文字

CHANGE_SOURCE=``false

#然後將false改為true,並找出以下文字

#UBUNTU_SOURCE=aliyun

把前面的# 去掉,即去掉註釋,把預設在國外的鏡像來源改為國內速度快的aliyun的鏡像來源

然後把workspace的時區,改為中國時區,找出以下文字

WORKSPACE_TIMEZONE=UTC

#把UTC改為PRC

然後執行指令

docker-compose up -d nginx mariadb

自己選擇需要啟動的容器

親自對比過build的時間,在20M頻寬下,不更改鏡像來源的話快則一小時,慢則一天,更改過後,僅需10min

二、laradock在啟動容器build workspace 的過程中報錯若出現相關文字“raw.githubusercontent.com”,則在本機hosts綁定網域名稱到ip##以linux為例

vim ``/etc/hosts

在檔案中輸入「199.232.28.133 raw.githubusercontent.com」即可

##三、composer install 速度慢安裝完laradock在worksapce容器中從第三方託管倉庫用git拉取tp5框架下來,然後安裝框架依賴,這個時候composer install很慢,需要更換國內來源,執行下方指令

composer config -g repo.packagist composer https:``//packagist``.phpcomposer.com

#四、composer忽略版本號安裝composer install 過程中遇到Your requirements could not be resolved to an installable set of packages. 錯誤提示,則可以忽略版本號安裝,執行下面命令

composer ``install

--ignore-platform-reqs

五、 composer安裝tp5的資料庫遷移工具tp5.0的遷移工具是1.

,tp5.1是2.

,若不指定版本號,則預設安裝最新的遷移工具,執行下面命令

composer require topthink``/think-migration``=1.*

六、 laradock中tp5設定資料庫連線時,host填入容器名字我用的mariadb這個容器,所以如下設定

'host'=>'mariadb'

七、tp5給runtime全部權限

hmod -r runtime 777

#八、tp5捕獲mysql的拋出的異常在catch的參數Exception前面加個反斜線,表示從最底層的Exception開始捕獲

catch``(\Exception)

#九、當圖片上傳介面時,mkdir報錯no permission#為了引用圖片方便,我把圖片儲存目錄指定為public/uploads ,但報錯了,可以透過給public全部權限解決

chmod -r public 777

#十、後端介面的時候權限驗證oauth2時一個非常好的授權機制,php有一個很好的函式庫https://github.com/thephpleague/ oauth2-server, 但很無奈,不像laravel有passport,也支援Drupal,cakephp等框架

使用Json-web-token也蠻好的https://github.com/lcobucci/jwt

十一、跨域處理在application目錄下的tags.php中的添加應用初始化時執行的文件,例如我把跨網域放在applicationapi/behavior/CORS.php 檔案中,在應用初始化過程中就發出header

// 應用初始化``'app_init'

    => [` `'app\\api\\behavior\\CORS'``], 跨網域檔案

<?php namespace app\api\behavior; use think\Response; class CORS{ public function appInit(&$params)
    { header(&#39;Access-Control-Allow-Origin: *&#39;);
    header("Access-Control-Allow-Headers: token,Origin, X-Requested-With, Content-Type, Accept");
    header("Access-Control-Allow-Methods:GET, POST"); 
        if (request()->isOptions()) {
            exit();
        }
    }}

十二、git push/pull 需要驗證身份, 多次輸入使用者名稱和密碼

##linux環境中,在倉庫目錄下執行

git config --global credential.helper store

#十三、git push 卡住

##設定發包無邊界,http的請求換緩衝區設定得大一些

git config --global sendpack.sideband false git config --global http.postBuffer 524288000

十四、nginx不支援tp5的pathinfo#更改專案對應的.conf 檔案配置

<?php
namespace app\api\behavior; use think\Response; class CORS
{ public function appInit(&$params)
    { header(&#39;Access-Control-Allow-Origin: *&#39;);
    header("Access-Control-Allow-Headers: token,Origin, X-Requested-With, Content-Type, Accept");
    header("Access-Control-Allow-Methods:GET, POST"); 
        if (request()->isOptions()) {
            exit();
        }
    }
}

##更改前location ~ .php$ {

 location ~ \.php { 
    try_files $uri /index.php =404;
    fastcgi_pass php-upstream;
    fastcgi_index index.php;
    fastcgi_buffers 16 16k;
    fastcgi_buffer_size 32k;
    # 添加部分↓↓↓↓
    # Set var PATH_INFO
    fastcgi_split_path_info ^(.+\.php)(.*)$;
    fastcgi_param PATH_INFO $fastcgi_path_info;
    #  添加部分↑↑↑↑
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;   
    #fixes timeouts
    fastcgi_read_timeout 600;
    include fastcgi_params;}

具體選項待我找時間學習
十四、Docker配置國內來源

sudo tee /etc/docker/daemon.json

vim /etc/docker/daemon.json

#########輸入以下內容,位址可以自行額外選擇######
{
  "registry-mirrors": ["https://uxk0ognt.mirror.aliyuncs.com"]
  }
####然後執行下面的指令######### systemctl daemon-reload#########systemctl restart docker##################備註########眾所周知,從github克隆一直比較慢,可以選擇用碼雲,事先將常用的倉庫導入到自己的碼雲工作空間,需要使用的時候透過碼雲複製###                       ### 

以上是關於Laradocke運行TP項目的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文轉載於:learnku。如有侵權,請聯絡admin@php.cn刪除
php怎么把负数转为正整数php怎么把负数转为正整数Apr 19, 2022 pm 08:59 PM

php把负数转为正整数的方法:1、使用abs()函数将负数转为正数,使用intval()函数对正数取整,转为正整数,语法“intval(abs($number))”;2、利用“~”位运算符将负数取反加一,语法“~$number + 1”。

php怎么实现几秒后执行一个函数php怎么实现几秒后执行一个函数Apr 24, 2022 pm 01:12 PM

实现方法:1、使用“sleep(延迟秒数)”语句,可延迟执行函数若干秒;2、使用“time_nanosleep(延迟秒数,延迟纳秒数)”语句,可延迟执行函数若干秒和纳秒;3、使用“time_sleep_until(time()+7)”语句。

php怎么除以100保留两位小数php怎么除以100保留两位小数Apr 22, 2022 pm 06:23 PM

php除以100保留两位小数的方法:1、利用“/”运算符进行除法运算,语法“数值 / 100”;2、使用“number_format(除法结果, 2)”或“sprintf("%.2f",除法结果)”语句进行四舍五入的处理值,并保留两位小数。

php怎么根据年月日判断是一年的第几天php怎么根据年月日判断是一年的第几天Apr 22, 2022 pm 05:02 PM

判断方法:1、使用“strtotime("年-月-日")”语句将给定的年月日转换为时间戳格式;2、用“date("z",时间戳)+1”语句计算指定时间戳是一年的第几天。date()返回的天数是从0开始计算的,因此真实天数需要在此基础上加1。

php字符串有没有下标php字符串有没有下标Apr 24, 2022 am 11:49 AM

php字符串有下标。在PHP中,下标不仅可以应用于数组和对象,还可应用于字符串,利用字符串的下标和中括号“[]”可以访问指定索引位置的字符,并对该字符进行读写,语法“字符串名[下标值]”;字符串的下标值(索引值)只能是整数类型,起始值为0。

php怎么判断有没有小数点php怎么判断有没有小数点Apr 20, 2022 pm 08:12 PM

php判断有没有小数点的方法:1、使用“strpos(数字字符串,'.')”语法,如果返回小数点在字符串中第一次出现的位置,则有小数点;2、使用“strrpos(数字字符串,'.')”语句,如果返回小数点在字符串中最后一次出现的位置,则有。

php怎么替换nbsp空格符php怎么替换nbsp空格符Apr 24, 2022 pm 02:55 PM

方法:1、用“str_replace("&nbsp;","其他字符",$str)”语句,可将nbsp符替换为其他字符;2、用“preg_replace("/(\s|\&nbsp\;||\xc2\xa0)/","其他字符",$str)”语句。

php怎么读取字符串后几个字符php怎么读取字符串后几个字符Apr 22, 2022 pm 08:31 PM

在php中,可以使用substr()函数来读取字符串后几个字符,只需要将该函数的第二个参数设置为负值,第三个参数省略即可;语法为“substr(字符串,-n)”,表示读取从字符串结尾处向前数第n个字符开始,直到字符串结尾的全部字符。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前By尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
1 個月前By尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器

Dreamweaver Mac版

Dreamweaver Mac版

視覺化網頁開發工具

SublimeText3 英文版

SublimeText3 英文版

推薦:為Win版本,支援程式碼提示!

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器