基于PHP的輕量級博客typecho

在這里插入圖片描述

本文完成于 5 月中旬,發布時未在最新版本上驗證;

什么是 typecho ?

Typecho 是一款基于 PHP 的博客軟件,旨在成為世界上最強大的博客引擎。TypechoGNU 通用公共許可證 2.0 下發布。支持多種數據庫,原生支持 Markdown 排版語法,是一款輕量、高效、穩定、簡潔的開源博客程序。

命令行安裝

在群暉上以 Docker 方式安裝。

typecho 的鏡像版本比較多,例如基于 php7.4 的版本就包含了:nightly-php7.4nightly-php7.4-apachenightly-php7.4-clinightly-php7.4-fpm4 個版本

因為基于 apache 的容器在老蘇的低內核版本的機器上,會在初始化時出現下面的錯誤

Function not implemented: AH00141: Could not initialize random number generator

所以最后老蘇選擇了 nightly-php7.4-fpm 這個 tag 的版本,但 fpm 鏡像本身未內置 web 服務器,需要依賴于 nginx 或者其他 web 服務

第一步、將下面的內容保存為 docker-compose.yml 文件

version: '3.7'services:app:image: joyqi/typecho:nightly-php7.4-fpmcontainer_name: typecho-serverrestart: alwaysvolumes:- ./www:/appenvironment:- TIMEZONE=Asia/Shanghaidepends_on:- dbdb:image: mariadb:10.6container_name: typecho-mariadbrestart: alwaysvolumes:- ./data:/var/lib/mysqlenvironment:- TZ=Asia/Shanghai- MYSQL_ROOT_PASSWORD=LHFeR2vSfiTR- MYSQL_DATABASE=typecho- MYSQL_USER=typecho- MYSQL_PASSWORD=Ls59JAqRiymLweb:image: nginxcontainer_name: typecho-nginxrestart: alwaysports:- 8812:80links:- appvolumes:- ./nginx.conf:/etc/nginx/nginx.conf:rovolumes_from:- appdepends_on:- app
  • joyqi/typecho:nightly-php7.4-fpm 的說明

關于鏡像 nightly-php7.4-fpm 的環境變量很多,請參考官方文檔:
https://github.com/typecho/Dockerfile#environment-variables

但老蘇發現設了并沒有起作用,在設置向導中還是需要手工輸入,所以就沒用環境變量,只保留了 TIMEZONE

  • mariadb:10.6 的說明
可變
TZ時區設置為 Asia/Shanghai
MYSQL_ROOT_PASSWORD數據庫管理員賬號的密碼
MYSQL_DATABASE數據庫庫名設為了 typecho
MYSQL_USER數據庫用戶設為了 typecho
MYSQL_PASSWORD數據庫用戶typecho 對應的密碼
  • nginx 的說明
本地端口容器端口
881280

本地端口只要不沖突就行,不確定的話可以用命令查一下

# 查看端口占用
netstat -tunlp | grep 端口號

第二步、將下面的內容保存為 nginx.conf 文件

worker_processes auto;error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;events {worker_connections  1024;
}http {include       /etc/nginx/mime.types;default_type  application/octet-stream;log_format  main  '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for"';access_log  /var/log/nginx/access.log  main;sendfile        on;#tcp_nopush     on;# Prevent nginx HTTP Server Detectionserver_tokens   off;keepalive_timeout  65;#gzip  on;#upstream php-handler {#    server app:9000;#}server {listen 80 default_server;root /app;index index.php;access_log /var/log/nginx/typecho_access.log main;if (!-e $request_filename) {rewrite ^(.*)$ /index.php$1 last;}location / {index index.html index.htm index.php;if (!-e $request_filename) {rewrite . /index.php last;}}location ~\.php(.*)$ {fastcgi_pass   app:9000;fastcgi_index  index.php;fastcgi_param  PATH_TRANSLATED $document_root$fastcgi_path_info;fastcgi_split_path_info  ^((?U).+\.php)(/?.+)$;fastcgi_param  PATH_INFO  $fastcgi_path_info;fastcgi_param  SCRIPT_NAME $fastcgi_script_name;fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;include        fastcgi_params;}}
}

第三步、依次執行下面的命令

# 新建文件夾 typecho 和 子目錄
mkdir -p /volume2/docker/typecho/{data,www}# 進入 typecho 目錄
cd /volume2/docker/typecho# 將 docker-compose.yml 和 nginx.conf 放入當前目錄# 一鍵啟動
docker-compose up -d

在這里插入圖片描述

以上文件可以在這里找到: https://github.com/wbsu2003/synology/tree/main/typecho

運行

在瀏覽器中輸入 http://群暉IP:8812 就能看到主界面,第一次會需要設置

在這里插入圖片描述

開始下一步 開始設置數據庫

  • 數據庫適配器:默認的 Pdo_Mysql 就可以;
  • 數據庫前綴:默認的 typecho_ 就可以;
  • 數據庫地址:不能使用 localhost,要改為 docker-compose.yml 中設置的 db
  • 數據庫用戶名:要對應 mariadb:10.6 的環境變量 MYSQL_USER 的值;
  • 數據庫密碼:要對應 mariadb:10.6 的環境變量 MYSQL_PASSWORD 的值;
  • 數據庫名:要對應 mariadb:10.6 的環境變量 MYSQL_DATABASE 的值;
  • 高級選項:默認就可以,一般不需要修改;

在這里插入圖片描述

接下來設置管理員

  • 網站地址:如果局域網使用,用 IP就行,否則改為域名,例如:https://typecho.laosu.ml:444
  • 用戶名:根據需要自行設置;
  • 登錄密碼:根據需要自行設置;
  • 郵件地址:根據需要自行設置;

在這里插入圖片描述

安裝完成后,有兩個地址選項

在這里插入圖片描述

  • 查看您的 Blog 或者在瀏覽器中輸入 http://群暉IP:8812

在這里插入圖片描述

  • 訪問您的控制面板

在這里插入圖片描述

開始使用

在這里插入圖片描述

發一篇文章

在這里插入圖片描述

去首頁看看

在這里插入圖片描述

中文軟件,功能很容易上手

參考文檔

Typecho Official Site
地址:https://typecho.org/

typecho/typecho: A PHP Blogging Platform. Simple and Powerful.
地址:https://github.com/typecho/typecho

typecho/Dockerfile: Docker Image packaging for Typecho
地址:https://github.com/typecho/Dockerfile

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/36397.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/36397.shtml
英文地址,請注明出處:http://en.pswp.cn/news/36397.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

24屆近5年南京大學自動化考研院校分析

今天給大家帶來的是南京大學控制考研分析 滿滿干貨~還不快快點贊收藏 一、南京大學 學校簡介 南京大學是一所歷史悠久、聲譽卓著的高等學府。其前身是創建于1902年的三江師范學堂,此后歷經兩江師范學堂、南京高等師范學校、國立東南大學、國立第四中…

JS 刪除的是最后一頁的最后一條,頁碼設置邏輯

刪除的場景: 解決思路: 1、計算操作后的總頁數 2、刪除成功之后的總頁數與當前總頁數進行比較 3、如果刪除成功之后的總頁數比小于當前總頁數,需要把當前頁碼減去1;否則,直接進行列表數據的請求 代碼實現 /*總條數…

VBA 學習筆記1 對象以及屬性

目錄 1 取得VBA對象1.1 取得工作簿對象1.2 取得工作表對象1.3 取得單元格對象1.4 取得對象的屬性1.5 文檔的方法1 進入vba 界面 方式之一: 快捷鍵:ALTERF11 運行方式之一: 進入vba界面,點擊綠色三角符號 1 取得VBA對象 1.1 取得…

DAY21

題目一 給定三個字符串str1、str2和aim, 如果aim包含且僅包含來自str1和str2的所有字符,而且在aim中屬于str1的字符 之間保持原來在str1中的順序,屬于str2的字符之間保持原來在str2中的順序,那么稱aim是str1和str2的交錯組成。實…

Springboot-Retrofit HTTP工具框架快速使用

在SpringBoot項目直接使用okhttp、httpClient或者RestTemplate發起HTTP請求,既繁瑣又不方便統一管理。 因此,在這里推薦一個適用于SpringBoot項目的輕量級HTTP客戶端框架retrofit-spring-boot-starter,使用非常簡單方便,同時又提供…

約數個數(質因子分解)

思路: (1)由數論基本定理,任何一個正整數x都能寫作,其中p1,p2..pk為x的質因子。 (2)由此可以推斷,要求一個數約數的個數,注意到約數就是p1,p2...pk的一種組合&#xff…

日常BUG—— SpringBoot項目DEBUG模式啟動慢、卡死。

😜作 者:是江迪呀??本文關鍵詞:日常BUG、BUG、問題分析??每日 一言 :存在錯誤說明你在進步! 一、問題描述 我們調試程序時,需要使用DEBUG模式啟動SpringBoot項目, 有時候會發…

convert Auto-Login (cwallet.sso) Wallet into a PKCS12 compliant Wallet

一步不行嗎 &#xff1f; 1. If $JAVA_HOME is not set: a)For FMW 11g components associated with a WebLogic Domain or a FMW 12c Collocated OHS install run: $MIDDLEWARE_HOME/user_projects/domains/<domain>/bin/setDomainEnv.sh b) For FMW 11g Standalone…

側滑置頂,取消置頂

第一步:布局 <?xml version"1.0" encoding"utf-8"?> <com.ddmh.magic.camera.ui.widget.SwipeMenuLayout xmlns:android"http://schemas.android.com/apk/res/android"xmlns:app"http://schemas.android.com/apk/res-auto"…

SQL | 使用通配符進行過濾

6-使用通配符進行過濾 6.1-LIKE操作符 前面介紹的所有操作符都是通過已知的值進行過濾&#xff0c;或者檢查某個范圍的值。但是如果我們想要查找產品名字中含有bag的數據&#xff0c;就不能使用前面那種過濾情況。 利用通配符&#xff0c;可以創建比較特定數據的搜索模式。 …

selenium 爬蟲

selenium 可以動態爬取網頁數據&#xff0c;就像真實用戶操作瀏覽器一樣&#xff0c;從終端用戶的角度測試應用程序&#xff0c;WebDriver通過原生瀏覽器支持或者瀏覽器擴展直接控制瀏覽器 webdriver下載 因為selenuim對瀏覽器的版本存在兼容問題&#xff0c;顧需要針對指定瀏…

SAP系統是什么呢?它有哪些優勢?

SAP系統是全球知名的企業資源規劃&#xff08;ERP&#xff09;解決方案供應商。它集成了財務、供應鏈管理、人力資源管理、銷售和客戶關系管理等多個功能模塊&#xff0c;為企業提供全面、集成的管理體驗。SAP系統已成為各行各業企業管理的智慧選擇&#xff0c;極大地提升了管理…

c++ 有元

友元分為兩部分內容 友元函數友元類 友元函數 問題&#xff1a;當我們嘗試去重載operator<<&#xff0c;然后發現沒辦法將operator<<重載成成員函數。因為cout的輸出流對象和隱含的this指針在搶占第一個參數的位置。this指針默認是第一個參數也就是左操作 數了。…

如何在vue3中加入markdown語法

1、首先需要安裝 md-editor-v3 yarn add md-editor-v3 或者是在vue圖形化界面中直接搜索 md-editor-v3 進行安裝。 2、引入該編輯頁 引入可以參考這個&#xff0c;根據自己的需求進行修改和添加。 <template><md-editor v-model"text"/> </templat…

基于dbn+svr的交通流量預測,dbn詳細原理

目錄 背影 DBN神經網絡的原理 DBN神經網絡的定義 受限玻爾茲曼機(RBM) DBN+SVR的交通流量預測 基本結構 主要參數 數據 MATALB代碼 結果圖 展望 背影 DBN是一種深度學習神經網絡,擁有提取特征,非監督學習的能力,是一種非常好的分類算法,本文將DBN+SVR用于交通流量預測…

二叉樹題目:二叉樹的直徑

文章目錄 題目標題和出處難度題目描述要求示例數據范圍 解法思路和算法代碼復雜度分析 題目 標題和出處 標題&#xff1a;二叉樹的直徑 出處&#xff1a;543. 二叉樹的直徑 難度 3 級 題目描述 要求 給定二叉樹的根結點 root \texttt{root} root&#xff0c;返回其直徑…

考研408 | 【計算機網絡】 傳輸層

導圖 傳輸層的功能 傳輸層的兩個協議 傳輸層的尋址與端口 UDP協議 UDP的主要特點 UDP首部格式&#xff1a; UDP校驗&#xff1a; TCP協議 TCP協議的特點 TCP報文段首部格式 TCP連接管理 TCP的連接建立 SYN洪泛攻擊 TCP的連接釋放 TCP可靠傳輸 序號&#xff1a; 確認&#xff1…

ASEMI快恢復二極管APT80DQ20BG怎么檢查好壞

編輯-Z 二極管APT80DQ20BG是一種高壓快恢復二極管&#xff0c;常用于電源和電能質量控制等領域。如果您的二極管出現故障或需要進行維修&#xff0c;以下是一些可能的解決方案。 首先&#xff0c;確保您已經斷開了電源&#xff0c;并且具備基本的電子維修知識和技能。如果您不…

添加vue devtools擴展工具+添加后F12不顯示Vue圖標

前言&#xff1a;在開啟Vue學習之旅時&#xff0c;遇到問題兩個問題&#xff0c;第一添加不上vue devtools擴展工具&#xff0c;第二添加完成后&#xff0c;F12不顯示Vue圖標。查閱了很多博客&#xff0c;自己解決了問題&#xff0c;故寫此博客記錄。如果你遇到和我一樣的問題&…

React源碼解析18(3)------ beginWork的工作流程【mount】

摘要 OK&#xff0c;經過上一篇文章。我們調用了&#xff1a; const root document.querySelector(#root); ReactDOM.createRoot(root)生成了FilberRootNode和HostRootFilber。 并且二者之間的對應關系也已經確定。 而下一步我們就需要調用render方法來講react元素掛載在ro…