安装清单

本文的安装环境为1c4g的vps,操作系统为debian 11,其他配置及系统仅供参考,清单如下

  • docker
  • nginx
  • mysql5.7
  • php7.4
  • typecho v1.2.1

nginx安装

本文选择在宿主机上安装nginx,如果有需求,也可以选择使用docker安装nginx。

apt update && apt-get install -y nginx
// 创建web目录
mkdir -p /data/www

docker安装

apt update
apt install -y gnupg dpkg apt-transport-https lsb-release ca-certificates
curl -sSL https://download.docker.com/linux/debian/gpg | gpg --dearmor > /usr/share/keyrings/docker-ce.gpg

echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-ce.gpg] https://download.docker.com/linux/debian $(lsb_release -sc) stable" > /etc/apt/sources.list.d/docker.list

apt update && apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin

到此docker已安装完成,执行docker ps查看docker是否运行正常

mysql安装

// 拉取mysql镜像
docker pull mysql:5.7
// 创建mysql对应目录作为挂载,目录可自己修改
mkdir -p /data/docker/mysql/conf
mkdir -p /data/docker/mysql/data
mkdir -p /data/docker/mysql/logs
// 启动容器
docker run -p 3306:3306 --name mysql -v /data/docker/mysql/conf:/etc/mysql/mysql.conf.d -v /data/docker/mysql/logs:/logs -v /data/docker/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=你的密码 -d mysql:5.7

到此mysql已安装完成,启动容器时需保证宿主机的3306端口未被占用。如果你的机器配置不够高,为了防止mysql占用资源导致OOM,可以对mysql进行如下配置,减少mysql默认占用资源。

cd /data/docker/mysql/conf
touch my.cnf
// 修改文件权限,确保非777,否则mysql启动会报错
chmod 744 my.cnf

将以下内容输入并保存

[mysqld]
performance_schema_max_table_instances=300
table_definition_cache=300
performance_schema=off
table_open_cache=64
innodb_buffer_pool_chunk_size=64M
innodb_buffer_pool_size=64M

docker restart mysql重启mysql容器,然后可以执行docker stats查看容器的资源占用。然后我们需要记录一下mysql容器的docker内网ip,后面php连接mysql需要使用到。

docker inspect mysql容器id | grep IPAddress

以本文为例,mysql容器ip为172.17.0.2。然后,我们进入容器,创建typecho的数据库。

docker exec -it mysql容器id /bin/bash
// 连接mysql
mysql -u root -p  // 输入密码
// 创建数据库
CREATE DATABASE IF NOT EXISTS typecho DEFAULT CHARACTER SET utf8mb4 DEFAULT COLLATE utf8mb4_general_ci;

php安装

本文安装的php版本为7.4,有更高版本需求的可以自己调整,因为我们使用nginx反代,所以安装fpm版本。

// 拉取php7.4镜像
docker pull php:7.4-fpm
// 启动容器
docker run --restart=always -d -p 9000:9000 -v /data/www:/www --name php7.4 php:7.4-fpm

启动容器时需保证宿主机的9000端口未被占用,由于php镜像默认是未安装mysqli或者pdo_mysql扩展的,所以我们需要进入镜像安装对应的扩展,这里我们选择安装pdo_mysql。

// 进入php容器
docker exec -it php容器id /bin/bash
// 使用docker-php-ext-install命令安装扩展
docker-php-ext-install pdo pdo_mysql

安装完成后,需要退出容器重启php。到此php已安装完成,现在我们测试一下服务是否运行正常。创建nginx站点反代配置文件,将请求转发到php-fpm。

cd /etc/nginx/conf.d
touch typecho.conf
// 将以下配置写入配置文件
server {
    listen 80;

    root /data/www;
    index index.php index.html;

    location / {
            if (!-f $request_filename){
                        set $rule_0 1$rule_0;
                }
                if (!-d $request_filename){
                        set $rule_0 2$rule_0;
                }
                if ($rule_0 = "21"){
                        rewrite ^(.*)$ /index.php$1 last;
                }

            location ~ .*\.php(\/.*)*$ {
                    include fastcgi.conf;
                    fastcgi_pass  127.0.0.1:9000;
                fastcgi_param  SCRIPT_FILENAME /www/$fastcgi_script_name; // 这里需要将目录指定到容器映射的www目录
                fastcgi_param  PATH_INFO        $uri;  #necessary for URL rewrite
            }
    }
}
// 重载nginx配置
nginx -t // 测试配置文件是否无误
nginx -s reload

我们在/data/www目录新建一个phpinfo.php文件,写入以下内容。

<?php
    echo phpinfo();

打开浏览器,输入http://服务器ip/phpinfo.php,可以看到php,并且扩展已正常安装。
1.jpg
2.jpg

typecho安装

我们从官网下载最新版本,截至文章发布最新版本为v1.2.1。

// 进入网站目录
cd /data/www
// 下载
wget https://github.com/typecho/typecho/releases/latest/download/typecho.zip
// 解压
unzip typecho.zip
// 修改目录权限
chmod -R 777 /data/www

访问http://服务器ip/install.php,点击下一步,会在网站目录生成config.inc.php配置文件,因为我们使用的是mysql,页面此时会报错。不用着急,回到服务器,编辑config.inc.php配置文件。

// 编辑配置文件,修改数据库连接信息如下
$db = new \Typecho\Db('Pdo_Mysql', 'blog_');  // 表前缀可以自定义
$db->addServer(array (
    'host' => '172.17.0.2',
    'user' => 'root',
    'password' => '你的密码',
    'port' => '3306',
    'charset' => 'utf8mb4',
    'database' => 'typecho'
), \Typecho\Db::READ | \Typecho\Db::WRITE);

然后重新访问http://服务器ip/install.php,按照步骤走下去即可。

结语

如果对主题有需求,可以到官方主题网站选择安装https://typechx.com/,本文使用的主题为MWordStar,可以在github上下载,地址为https://github.com/changbin1997/MWordStar

仅有一条评论

  1. hello~😀

发表评论