整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          ThinkAdmin-V5開發筆記

          ThinkAdmin-V5開發筆記

          為了快速開發一款小程序管理后臺,在眾多的php開源后臺中,最終選擇了基于thinkphp5的,輕量級的thinkadmin系統,進行二次開發。該系統支持php7。


          文檔地址

          1. ThinkAdmin-V5文檔,http://doc.thinkadmin.top/thinkadmin-v5/1201769
          2. Thinkphp5文當,https://www.kancloud.cn/manual/thinkphp5/118003
          3. github源碼地址,https://github.com/zoujingli/ThinkAdmin/tree/v5
          4. layui地址,https://www.layui.com/doc/
          5. ThinkAdmin-V5演示地址,https://v5.thinkadmin.top/admin/login.html

          布署步驟

          1. 在github下載zip源碼,解壓到項目目錄;
          2. 根據文檔運行,本地開發命令php think run,使用http://127.0.0.1:8000訪問項目;
          3. 本地vhost配置
          server {
                  listen       80;
                  server_name  local.thinkadmin.com;
                  root   "/usr/local/nginx/html/thinkadmin/public";
                  location / { 
                     index  index.html index.htm index.php;
                     if (!-e $request_filename) {
                     rewrite  ^(.*)$  /index.php?s=$1  last;
                     break;
                    }
                  }
                  location ~ \.php(.*)$ {
                      fastcgi_pass   127.0.0.1:9000;
                      fastcgi_index  index.php;
                      fastcgi_split_path_info  ^((?U).+\.php)(/?.+)$;
                      fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
                      fastcgi_param  PATH_INFO  $fastcgi_path_info;
                      fastcgi_param  PATH_TRANSLATED  $document_root$fastcgi_path_info;
                      include        fastcgi_params;
                  }
          }

          遇到的問題

          打印controller中的sql

          打印sql
          vendor/zoujingli/think-library/helper/PageHelper.php	88行
          echo $this->query->getlastsql();exit;

          AsyncCommand任務執行

          linux環境需要給nginx運行權限
          chown www.www -R thinkadmin

          表單token有時候會驗證失敗

          vendor/zoujingli/think-library/helper/PageHelper.php 72行
          list($token, $time)=[uniqid($node), time()];//把'csrf'改成$node

          集成Qcloud上傳

          結語

          項目中很多的方法都是參照,thinkphp5手冊,和layui文檔完成。

          感謝以上開源項目,歡迎交流學習。

          >rewrite ^/(.*)$ /index.php?s=$1 last; break;

          hinkPHP 是什么?

          ThinkPHP 是一個免費開源的,快速、簡單的面向對象的輕量級 PHP 開發框架,是為了敏捷 WEB 應用開發和簡化企業應用開發而誕生的。ThinkPHP 從誕生以來一直秉承簡潔實用的設計原則,在保持出色的性能和至簡代碼的同時,更注重易用性。遵循 Apache2 開源許可協議發布,意味著你可以免費使用 ThinkPHP,甚至允許把你基于 ThinkPHP 開發的應用開源或商業產品發布/銷售。

          效果預覽

          本文涉及到的兩個應用示例部署后的鏈接,點擊預覽效果:

          1. ThinkPHP 官方示例:http://13492727-1986114430573743.test.functioncompute.com
          2. ThinkPHP 博客示例:http://13500180-1986114430573743.test.functioncompute.com
          3. ThinkPHP 博客示例管理后臺:http://13500180-1986114430573743.test.functioncompute.com/admin

          環境準備

          首先按照 Fun 的安裝文檔里介紹的方法將 Fun 安裝到本機。

          PS: 本文介紹的方法,不需要安裝 Docker,僅僅安裝 Fun 即可,最簡單的方式就是直接下載可執行的二進制文件。

          安裝完成后,可以執行 fun --version 檢查 Fun 是否安裝成功。

          第一個示例:快速初始化并部署一個 ThinkPHP 示例應用

          初始化一個 thinkphp 示例:

          composer create-project topthink/think tp

          將該示例在本地運行測試:

          php think run

          可以在本地看到效果:

          傳統的開發方式是,本地開發完成后,就要進行部署工作了,通常我們部署一個 PHP 應用可能需要如下幾步:

          1. 購買一臺物理機器,比如 ECS
          2. 在物理機器上綁定公網 ip、安裝 php、nginx、php-fpm
          3. 配置 nginx、php-fpm 以及上傳應用到該機器上
          4. 運行測試

          其中最復雜的就要數第 2、3 步了,因為可能不同的環境的配置方法還不一樣,會有比較多的坑。我們演示下如何將應用部署到函數計算上。

          fun deploy

          僅需要一個命令,Fun 會自動進入部署流程,在該流程中,用戶僅僅需要按下一系列的回車即可。流程細節如下:

          1. Fun 檢測到這不是一個 Fun 項目,會提示協助創建(直接回車或者輸入 y 即可)
          2. Fun 項目自動創建成功,提示是否進行部署?可以直接回車,或者輸入 y 進行確認
          3. 然后 Fun 會直接將應用部署到線上了

          部署完成后,我們可以根據部署成功的日志看到,函數計算為我們生成了臨時域名 13492727-1986114430573743.test.functioncompute.com,我們可以通過這個臨時域名直接訪問我們剛剛部署的應用。

          備注:臨時域名僅僅用作演示以及開發,是有時效的,如果用作生產,請綁定已經備案的域名。

          第二個示例:快速遷移一個已有的 ThinkPHP 應用

          這里我們拿一個開源的 ThinkPHP 博客做示例:https://github.com/wolf-leo/Wolf-Blog

          首先我們需要將 blog 克隆下來:

          git clone https://github.com/wolf-leo/Wolf-Blog.git

          使用 composer 安裝依賴:

          composer install

          在要使用的 mysql 數據庫上新建一個名為 blog_test 的 database。然后編輯 config/database.php 文件,修改其中的數據庫地址、用戶名、密碼信息。

          // ... ...
          return [
              // ... ...
              // 服務器地址
              'hostname'=> '192.168.17.104',
              // 數據庫名 測試數據庫名稱 不用修改 否則默認安裝會出錯
              'database'=> 'blog_test',
              // 用戶名  需要修改的地方
              'username'=> 'root',
              // 密碼     需要修改的地方
              'password'=> 'root',
              // ... ...
          ];

          修改完成后,就可以本地啟動查看效果了:

          $ php think run
          
          ThinkPHP Development server is started On <http://127.0.0.1:8000/>
          You can exit with `CTRL-C`
          Document root is: /examples/php/Wolf-Blog/public

          然后打開 http://localhost:8000 可以直接看到效果。

          本地測試沒問題后,就要進行部署了。部署前,我們需要知道,由于函數計算運行時代碼目錄本身是不可以修改的,而 ThinkPHP 會在代碼目錄下的 Runtime 這個目錄寫一些緩存文件,我們需要將這個緩存文件放到 /tmp 下面。在我們的例子中就是將 thinkphp/library/think/App.php 這個文件的第 174 行做如下修改:

          - $this->runtimePath=$this->rootPath . 'runtime' . DIRECTORY_SEPARATOR;
          + $this->runtimePath=DIRECTORY_SEPARATOR . 'tmp' . DIRECTORY_SEPARATOR;

          修改完成后可以直接使用以下命令進行部署:

          fun deploy

          經歷與第一個示例一樣的步驟后,我們可以得到一個可以訪問的臨時域名進行測試:13500180-1986114430573743.test.functioncompute.com。打開該臨時域名,可以預覽到與本地運行一樣的效果。

          還可以訪問 13500180-1986114430573743.test.functioncompute.com/admin 打開該應用的管理后臺:

          總結

          本文主要介紹了如何將 ThinkPHP 應用部署到函數計算。相比較與傳統的部署方法,不僅沒有更復雜,還省略了購買機器、安裝配置 Nginx、安裝配置 php-fpm 等步驟。可以實現,將傳統的 ThinkPHP 應用在本地開發完成后,一鍵部署到遠端直接用于生產,并擁有了彈性伸縮、按量付費、免運維等特性。

          查看更多:https://yqh.aliyun.com/detail/6896?utm_content=g_1000107051

          上云就看云棲號:更多云資訊,上云案例,最佳實踐,產品入門,訪問:https://yqh.aliyun.com/


          主站蜘蛛池模板: 亚洲一区二区三区丝袜| 国产精品一区二区久久精品| 亚洲国产欧美国产综合一区| 内射少妇一区27P| 亚洲午夜电影一区二区三区| 区三区激情福利综合中文字幕在线一区| 亚洲AV无码一区二区三区DV| 国产中文字幕一区| 自拍日韩亚洲一区在线| 日韩亚洲AV无码一区二区不卡| 一区二区三区四区在线播放| 日韩在线视频一区二区三区| 亚洲av无码一区二区三区天堂| 性色AV一区二区三区| 精品久久久久中文字幕一区| 亚洲AV无码一区二区三区在线观看 | 日本一区二区三区精品中文字幕| 白丝爆浆18禁一区二区三区| 国产色欲AV一区二区三区| 精品国产一区二区三区| 久久久国产精品无码一区二区三区| 亚洲一区二区影视| 在线日产精品一区| 无码人妻久久一区二区三区免费丨| 少妇精品久久久一区二区三区 | 无码人妻啪啪一区二区| 中文字幕av日韩精品一区二区 | 国产成人精品久久一区二区三区av| 北岛玲在线一区二区| 精品成人av一区二区三区| 人妻无码一区二区三区| 成人国内精品久久久久一区| 亚洲色欲一区二区三区在线观看| 在线精品亚洲一区二区小说| 激情内射亚洲一区二区三区| 日本精品少妇一区二区三区| aⅴ一区二区三区无卡无码| 国产一区三区三区| 少妇激情av一区二区| 末成年女A∨片一区二区| 亚洲国产AV无码一区二区三区 |