ThinkPHP專案在SAE下的部署

2021-07-08 20:26:39 字數 1604 閱讀 8076

thinkphp 3.2版本以上支援直接將專案資料夾移植到sae環境中即可

請在sae中開啟mysql服務、memcache服務、storage服務(注意必須開啟memcache服務才可正常運作)

1、隱藏入口檔案index.php

因為sae不支援.htaccess檔案,可以在專案的根目錄建立config.yaml檔案,寫入下面的**,即可隱藏入口檔案

2、資料庫連線

在sae中建立mysql資料庫,在thinkphp的配置檔案config.php中新增如下**,連線資料庫

3、上傳檔案()

在sae中開啟storage服務,建立乙個domain用於存放上傳的檔案

例子:

<?php 

//sae環境下,上傳

$img->resize(200,200); //縮放為200*200

$img->improve(); //提高質量的函式

$new_data = $img->exec(); //執行處理並返回二進位制資料

$s2->write('fruitimg',$name,$new_data); //儲存至名為fruitimg的saestorage中

$url = $s2->geturl('fruitimg',$name); //從saestorage中獲取鏈結

//注意,如果提示not find saestorage()或者saeimage(),請確認是否加了\

?>

4、io操作

出於安全考慮,sae限制了本地的io操作,可以使用tmpfs功能,但其生命週期同於php請求,也就是當php請求完成時,所有寫入tmpfs的臨時檔案都會被銷毀,tmpfs只是本地臨時檔案,不是共享儲存

例子:儲存每個訪問使用者的時間戳

<?php 

//這裡的information.txt相當於乙個鍵值

$file = "saekv:";

if(!file_exists($file))else

echo file_get_contents($file);

//刪除該檔案(使用sae提供的kvdb資料庫刪除方式)

$kv = new \saekv();

$kv->init();

if($kv->delete('information.txt'))else

?>

在Nginx上配置ThinkPHP專案

其實,要解決nginx不支援pathinfo的問題,有兩個解決思路,一是不使用pathinfo模式,二是修改nginx的配置檔案,使它支援pathinfo。為了使問題簡單化,我選擇了第一種方式,因為就第二種方式,我查了很多資料,發現大家的方法不盡相同,有的還差別很大,容易造成誤導,所以我選擇從簡出發...

解決ThinkPhp在nginx下404問題

以寶塔面板為例 找到寶塔面板網域名稱的nginx配置檔案進行編輯增加以下內容 fastcgi split path info php fastcgi param path info fastcgi path info fastcgi param path translated document ro...

在Nginx上部署ThinkPHP專案教程

前段時間用apache配合tp開發了乙個小型 也算是我使用tp的第一次實戰。我習慣使用pathinfo模式,本地執行一切正常,然而部署到伺服器上時,由於對方使用的是nginx,預設是不支援thinkphp的pathinfo模式,所以導致路徑錯誤,出現了頁面迴圈跳轉的問題,於是就把nginx 下來在本...