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

關於Laradocke運行TP項目

Oct 13, 2020 am 10:18 AM
php

##下列中由

關於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 <<-'EOF'

vim /etc/docker/daemon.json

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

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

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

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

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

適用於 Ubuntu 和 Debian 的 PHP 8.4 安裝和升級指南 適用於 Ubuntu 和 Debian 的 PHP 8.4 安裝和升級指南 Dec 24, 2024 pm 04:42 PM

PHP 8.4 帶來了多項新功能、安全性改進和效能改進,同時棄用和刪除了大量功能。 本指南介紹如何在 Ubuntu、Debian 或其衍生版本上安裝 PHP 8.4 或升級到 PHP 8.4

如何設定 Visual Studio Code (VS Code) 進行 PHP 開發 如何設定 Visual Studio Code (VS Code) 進行 PHP 開發 Dec 20, 2024 am 11:31 AM

Visual Studio Code,也稱為 VS Code,是一個免費的原始碼編輯器 - 或整合開發環境 (IDE) - 可用於所有主要作業系統。 VS Code 擁有大量針對多種程式語言的擴展,可以輕鬆編寫

在PHP API中說明JSON Web令牌(JWT)及其用例。 在PHP API中說明JSON Web令牌(JWT)及其用例。 Apr 05, 2025 am 12:04 AM

JWT是一種基於JSON的開放標準,用於在各方之間安全地傳輸信息,主要用於身份驗證和信息交換。 1.JWT由Header、Payload和Signature三部分組成。 2.JWT的工作原理包括生成JWT、驗證JWT和解析Payload三個步驟。 3.在PHP中使用JWT進行身份驗證時,可以生成和驗證JWT,並在高級用法中包含用戶角色和權限信息。 4.常見錯誤包括簽名驗證失敗、令牌過期和Payload過大,調試技巧包括使用調試工具和日誌記錄。 5.性能優化和最佳實踐包括使用合適的簽名算法、合理設置有效期、

php程序在字符串中計數元音 php程序在字符串中計數元音 Feb 07, 2025 pm 12:12 PM

字符串是由字符組成的序列,包括字母、數字和符號。本教程將學習如何使用不同的方法在PHP中計算給定字符串中元音的數量。英語中的元音是a、e、i、o、u,它們可以是大寫或小寫。 什麼是元音? 元音是代表特定語音的字母字符。英語中共有五個元音,包括大寫和小寫: a, e, i, o, u 示例 1 輸入:字符串 = "Tutorialspoint" 輸出:6 解釋 字符串 "Tutorialspoint" 中的元音是 u、o、i、a、o、i。總共有 6 個元

您如何在PHP中解析和處理HTML/XML? 您如何在PHP中解析和處理HTML/XML? Feb 07, 2025 am 11:57 AM

本教程演示瞭如何使用PHP有效地處理XML文檔。 XML(可擴展的標記語言)是一種用於人類可讀性和機器解析的多功能文本標記語言。它通常用於數據存儲

解釋PHP中的晚期靜態綁定(靜態::)。 解釋PHP中的晚期靜態綁定(靜態::)。 Apr 03, 2025 am 12:04 AM

靜態綁定(static::)在PHP中實現晚期靜態綁定(LSB),允許在靜態上下文中引用調用類而非定義類。 1)解析過程在運行時進行,2)在繼承關係中向上查找調用類,3)可能帶來性能開銷。

什麼是PHP魔術方法(__ -construct,__destruct,__call,__get,__ set等)並提供用例? 什麼是PHP魔術方法(__ -construct,__destruct,__call,__get,__ set等)並提供用例? Apr 03, 2025 am 12:03 AM

PHP的魔法方法有哪些? PHP的魔法方法包括:1.\_\_construct,用於初始化對象;2.\_\_destruct,用於清理資源;3.\_\_call,處理不存在的方法調用;4.\_\_get,實現動態屬性訪問;5.\_\_set,實現動態屬性設置。這些方法在特定情況下自動調用,提升代碼的靈活性和效率。

PHP和Python:比較兩種流行的編程語言 PHP和Python:比較兩種流行的編程語言 Apr 14, 2025 am 12:13 AM

PHP和Python各有優勢,選擇依據項目需求。 1.PHP適合web開發,尤其快速開發和維護網站。 2.Python適用於數據科學、機器學習和人工智能,語法簡潔,適合初學者。

See all articles