Typecho修改附件存放位置應注意的問題

2021-09-29 05:07:43 字數 1850 閱讀 5734

通過檢視te的原始碼發現,te的附件資訊是以以下方式存放在contents表中的:

var/widget/upload.php    檔案目錄

/*

/var/widget/upload.php

line:120

*/$result = array(

'name' => $file['name'],

'path' => self::upload_path . '/' . $date->year .'/'. $date->month . '/' . $filename,

'size' => $file['size'],

'type' => $ext,

'mime' => typecho_common::mimecontenttype($path)

);

/* ..... ...... */

/*/var/widget/upload.php

line:258

*/$struct = array(

'title' => $result['name'],

'slug' => $result['name'],

'type' => 'attachment',

'status' => 'publish',

'text' => serialize($result),

'allowcomment' => 1,

'allowping' => 0,

'allowfeed' => 1

);

其中$struct['text']返回的是序列化的附件資訊字串,其結構如下:

將  s:38:"/usr/files/201201/4f01d62cb3bfc.zip"

改為 s:37:"/usr/files/201201/4f01d62cb3bfc.zip"

因為少了乙個"/"字串的長度少了1,到此,問題終於解決了。

總結:typecho確實寫得非常好,通過研究te的原始碼,自己也學了不少。順便感謝下 mr.jiang 同學的提醒。

因此,可以去掉這一段監測**.

修改前:

修改後為:

[2] - 修改上傳資料夾usr/uploads/的許可權:

sudo chmod -r 777 /path/to/blog/usr/uploads
至此,即可上傳本地.

修改php.ini檔案.

注意修改php下的php.ini檔案是無效的,要修改fpm下的php.ini檔案

[1] - 使用 locate 找到所有php.ini

locate php.ini

[2] - 找到 fpm 目錄下的php.ini

我的路徑是/etc/php/7.0/fpm/php.ini

sudo vim /etc/php/7.0/fpm/php.ini

[3] - 修改下面三項

upload_max_filesize = 1000m;

post_max_size = 1000m;

max_execution_time=600;

sudo service php7.0-fpm reload

MySQL binlog日誌存放位置的修改

最近專案上裝的mysql服務,分配的磁碟空間太小了,導致binlog日誌兩天時間就能打滿,這裡記錄下處理方式。mysql的binlog日誌是乙個很重要的日誌,以事件形式記錄了所有的ddl和dml 除了資料查詢語句 語句,還包含執行的消耗的時間,在資料丟失的緊急情況下,我們可以利用binlog日誌功能...

const static變數存放位置

我們將以下面的例子介紹const變數和static變數的存放位置 static int val a 1 初始化的靜態變數 int val b 2 全域性變數 const int val c 3 const 全域性變數 static int val d 未初始化的靜態變數 int val e 未初始化...

Docker 資料存放位置

預設 docker 的存放位置為 var lib docker 命令檢視具體位置 docker info grep docker root dir 具體docker容器存放位置 docker ps a docker inspect 容器id grep volumes 檢視資料目錄 data dock...