為了快速開發一款小程序管理后臺,在眾多的php開源后臺中,最終選擇了基于thinkphp5的,輕量級的thinkadmin系統,進行二次開發。該系統支持php7。
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;ThinkPHP 是一個免費開源的,快速、簡單的面向對象的輕量級 PHP 開發框架,是為了敏捷 WEB 應用開發和簡化企業應用開發而誕生的。ThinkPHP 從誕生以來一直秉承簡潔實用的設計原則,在保持出色的性能和至簡代碼的同時,更注重易用性。遵循 Apache2 開源許可協議發布,意味著你可以免費使用 ThinkPHP,甚至允許把你基于 ThinkPHP 開發的應用開源或商業產品發布/銷售。
本文涉及到的兩個應用示例部署后的鏈接,點擊預覽效果:
首先按照 Fun 的安裝文檔里介紹的方法將 Fun 安裝到本機。
PS: 本文介紹的方法,不需要安裝 Docker,僅僅安裝 Fun 即可,最簡單的方式就是直接下載可執行的二進制文件。
安裝完成后,可以執行 fun --version 檢查 Fun 是否安裝成功。
初始化一個 thinkphp 示例:
composer create-project topthink/think tp
將該示例在本地運行測試:
php think run
可以在本地看到效果:
傳統的開發方式是,本地開發完成后,就要進行部署工作了,通常我們部署一個 PHP 應用可能需要如下幾步:
其中最復雜的就要數第 2、3 步了,因為可能不同的環境的配置方法還不一樣,會有比較多的坑。我們演示下如何將應用部署到函數計算上。
fun deploy
僅需要一個命令,Fun 會自動進入部署流程,在該流程中,用戶僅僅需要按下一系列的回車即可。流程細節如下:
部署完成后,我們可以根據部署成功的日志看到,函數計算為我們生成了臨時域名 13492727-1986114430573743.test.functioncompute.com,我們可以通過這個臨時域名直接訪問我們剛剛部署的應用。
備注:臨時域名僅僅用作演示以及開發,是有時效的,如果用作生產,請綁定已經備案的域名。
這里我們拿一個開源的 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/
*請認真填寫需求信息,我們會在24小時內與您取得聯系。