OneManager-php rewrite配置
rewrite ^/(?!.well-known)(.*)$ /index.php?/$1 last;放到 /usr/local/nginx/conf/rewrite 中
https://github.com/qkqpttgf/OneManager-php
ps:怕我忘记所以记一下
rewrite ^/(?!.well-known)(.*)$ /index.php?/$1 last;放到 /usr/local/nginx/conf/rewrite 中
https://github.com/qkqpttgf/OneManager-php
ps:怕我忘记所以记一下
docker pull mysql:latest想要比较稳定的版本可以用5.7或者8.0 (或者8.4?) 比如mysql:5.7 或mysql:8.0
docker run -p 3306:3306 --name mymysql -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:latest docker run
启动一个新的 Docker 容器。
-p 端口映射
--name 为这个容器指定一个名称
-v 将当前工作目录挂载到容器内的目录 $PWD表示当前目录,可以根据需要自行修改
-e 设置环境变量
-d 以后台模式运行容器(detached mode),容器启动后不会阻塞当前的终端,会在后台运行。
mysql:latest 指定使用最新版本的 MySQL 官方镜像。如果没有本地镜像,Docker 会从 Docker Hub 拉取最新的 MySQL 镜像。
由于 mysql 的安全策略,现在还不能使用 root/123456 来访问数据库
运行下面命令来进入容器
docker exec -it mymysql /bin/bash这条命令的作用是在已经运行的容器内启动一个交互式 Bash Shell,让你直接进入容器内部进行操作。
docker exec exec 命令用于在一个已经处于运行状态的容器中执行新的命令。
-it
-i:交互式(interactive),让命令在前台保持对键盘输入的监听。
-t:伪终端(pseudo-TTY),为容器内的进程分配一个伪终端,方便进行命令行操作。
/bin/bash 指定要在容器中执行的命令,这里是 Bash Shell。执行后会打开一个终端会话环境,可以在容器内输入各种 Shell 命令。
之后运行以下命令进去mysql
mysql -uroot -p123456-u 表示用户
-p 表示密码
如果用户不存在,使用 CREATE USER 创建用户并设置密码
CREATE USER 'root'@'%' IDENTIFIED BY 'root';
CREATE USER 'root'@'127.0.0.1' IDENTIFIED BY 'root';
CREATE USER 'root'@'localhost' IDENTIFIED BY 'root';如果用户已存在,使用 ALTER USER 修改用户密码
ALTER USER 'root'@'%' IDENTIFIED BY 'root';
ALTER USER 'root'@'127.0.0.1' IDENTIFIED BY 'root';
ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO 'root'@'127.0.0.1' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION;在 MySQL 8.0 及更高版本中,GRANT 语句会自动刷新权限,因此通常不需要手动执行 FLUSH PRIVILEGES;。但如果你进行了其他权限表的直接修改,可以使用:
FLUSH PRIVILEGES; 使用直链下载然后使用激活码的形式:
https://github.com/201853910/VMwareWorkstation
或者选择使用免费的个人授权:
https://www.cnblogs.com/EthanS/p/18211302
https://ubuntu.com/download/desktop
vmware新建虚拟机,选择使用下载的镜像
然后根据提示输入信息后会自动安装
ubuntu打开终端 安装 net-tools
sudo -i #切换到root用户
sudo apt update
sudo apt install net-tools安装完成之后运行:
ifconfig找到网卡(第一串内容)找到inet的标识,后面跟着的就是ip地址
在windows下ping一下这个ip地址,如果可以ping通就表示成功了。
OpenSSH 是 Ubuntu 默认的 SSH 服务实现,可以使用以下命令安装:
sudo apt install openssh-server -y安装完之后就可以通过ip来ssh连接虚拟机了
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyunsystemctl start docker
systemctl enable docker(ps:太惨了,找个镜像需要找挺久)
sudo apt install docker-compose 推荐一个新发现的电子书阅读器——Koodo Reader
https://github.com/koodo-reader/koodo-reader
记得开管理员模式如果用cmd或者powershell,推荐用git bash
Chocolatey
choco install hugo-extended
Scoop
scoop install hugo-extendedWinget
winget install Hugo.Hugo.Extendedsudo apt install hugohugo new site path/to/site推荐在要想要放博客文件的文件夹下面使用下面这行命令:
hugo new site .创建好之后的文件目录:
.
├── archetypes: default.md是生成博文的模版
├── assets # 存放被 Hugo Pipes 处理的文件
├── content # 存放markdown文件作为博文内容
├── data # 存放 Hugo 处理的数据
├── layouts # 存放布局文件
├── static # 存放静态文件 图片 CSS JS文件
├── themes: 存放不同的主题
└── config.toml: 博客配置文件支持 JSON YAML TOML 三种格式配置文件
hugo new about.md内容如下:
+++
date = "2015-01-08T08:36:54-07:00"
draft = true
title = "about"
+++只要将draft后面的参数改为false就是表示发布的意思
hugo new post/first.md官方主题仓库:https://themes.gohugo.io/
文件下载之后放入themes文件夹中,注意,假如有一个主题叫做heky,github上直接下载后解压得到的文件夹可能叫做heky-master,需要将后缀-master删除
在themes文件夹目录下,使用git clone 克隆仓库到本地
关联主题仓库
要用这种方法,需要先在根目录用git init 创建一个仓库
git submodule add https://github.com/example/library.git libs/library好处:可以使用以下命令更新主题
进行初始化:
git submodule update --init --recursive克隆了别人的仓库进行修改之后,希望还原
需要同步主题仓库的最新修改:
git submodule update --remote坏处是想删干净很麻烦:
假设你有一个子模块在路径 libs/library,你想移除它:
完整的操作是:
git submodule deinit -f libs/library
git rm --cached libs/library
rm -rf libs/library
rm -rf .git/modules/libs/library
git commit -m "Remove submodule libs/library"三种方法都要在根目录下的 hugo.toml 文件中添加新的一行:
theme = "xxx"hugo server --theme=hyde --buildDrafts参数说明:
--theme 后面跟想要的主题
--buildDrafts 表示草稿也一并显示
hugo默认开的端口是1313
所以可以通过浏览器打开 http://localhost:1313 来访问博客
hugo因为使用go语言来实现,所以运行速度很快,支持"热编写",即,在打开服务的情况下可以创建,或者修改内容,而不用重新启动服务。
同时如果是部署在服务器上,此时就可以通过配置反向代理,来完成博客搭建的收尾工作。
不过如果没有服务器的话要如何?下面来介绍如何利用github page来部署我们的hugo。
第一步: 创建一个 Github 仓库
Repository name 这里一定要填 [你的github账号].github.io.第二步:创建新文章
hugo new posts/my-first-post.md第三步:修改配置文件 config.toml
站点目录config.toml中baseURL要换成自己建立的仓库,如baseURL = “https://xxx.github.io/"
第四步: 进入站点根目录下,执行:
hugo执行后,站点根目录下会生成一个 public 文件夹,该文件下的内容即Hugo生成的整个静态网站。每次更新内容后,将 pubilc 目录里所有文件 push到GitHub即可。
第五步:上传代码至 master
首次使用的时候要执行以下命令:
cd public
git init
git remote add origin [email protected] #仓库地址
git add .
git commit -m "[介绍,随便写点什么,比如日期]"
git branch -M main
git push -u origin main-u 表示将本地分支和远程分支关联,下次push时就可以不用显式的使用远程仓库名,而是可以直接用git push
之后就可以通过https://xxx.github.io/ 来访问我们的博客了。
以后每次站点目录下执行 hugo 命令后,再到public下执行推送命令:
git add .
git commit -m "[介绍,随便写点什么,比如日期]"
git push通过上述命令我们可以手动发布我们的静态文件,但还是有以下弊端:
public/ 目录进行上传.md 源文件进行备份与版本管理因此,我们需要简单顺滑的方式来进行博客发布,首先我们初始化博客源文件的仓库,
因为我们的博客基于 GitHub 与 GitHub Pages,可以通过官方提供的 GitHub Action 进行 CI 自动发布,下面我会进行详细讲解。GitHub Action 是一个持续集成和持续交付(CI/CD) 平台,可用于自动执行构建、测试和部署管道,目前已经有很多开发好的工作流,可以通过简单的配置即可直接使用。
配置在仓库目录 .github/workflows 下,以 .yml 为后缀。
自动发布示例配置如下:
name: deploy
on:
push:
workflow_dispatch:
schedule:
# Runs everyday at 8:00 AM
- cron: "0 0 * * *"
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
with:
submodules: false
fetch-depth: 0
- name: Setup Hugo
uses: peaceiris/actions-hugo@v2
with:
hugo-version: "latest"
- name: Build Web
run: hugo
- name: Deploy Web
uses: peaceiris/actions-gh-pages@v3
with:
PERSONAL_TOKEN: ${{ secrets.PERSONAL_TOKEN }}
EXTERNAL_REPOSITORY: pseudoyu/pseudoyu.github.io
PUBLISH_BRANCH: main
PUBLISH_DIR: ./public
commit_message: ${{ github.event.head_commit.message }}on 表示 GitHub Action 触发条件,我设置了 push、workflow_dispatch 和 schedule 三个条件:
push,当这个项目仓库发生推送动作后,执行 GitHub Actionworkflow_dispatch,可以在 GitHub 项目仓库的 Action 工具栏进行手动调用schedule,定时执行 GitHub Action,如我的设置为北京时间每天早上执行,主要是使用一些自动化统计 CI 来自动更新我博客的关于页面,如本周编码时间,影音记录等,如果你不需要定时功能,可以删除这个条件jobs 表示 GitHub Action 中的任务,我们设置了一个 build 任务,runs-on 表示 GitHub Action 运行环境,我们选择了 ubuntu-latest。我们的 build 任务包含了 Checkout、Setup Hugo、Build Web 和 Deploy Web 四个主要步骤,其中 run 是执行的命令,uses 是 GitHub Action 中的一个插件,我们使用了 peaceiris/actions-hugo@v2 和 peaceiris/actions-gh-pages@v3 这两个插件。其中 Checkout 步骤中 with 中配置 submodules 值为 true 可以同步博客源仓库的子模块,即我们的主题模块。
首先需要将上述 deploy.yml 中的 EXTERNAL_REPOSITORY 改为自己的 GitHub Pages 仓库.
因为我们需要从博客仓库推送到外部 GitHub Pages 仓库,需要特定权限,要在 GitHub 账户下 Setting - Developer setting - Personal access tokens 下创建一个 Token。