搭建网站 (以 Typecho 为例)
系统:Debian 12
第一步:绑定域名
-
修改 hosts 配置
Terminal window vim /etc/hosts添加需要绑定的域名,格式如下:
公网IP 域名
第二步:配置 MySQL 数据库
-
进入 MySQL
Terminal window mysql -u root -p -
创建数据库和用户,并授权
CREATE DATABASE typecho_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;CREATE USER 'typecho_user'@'localhost' IDENTIFIED BY 'your_password';GRANT ALL PRIVILEGES ON typecho_db.* TO 'typecho_user'@'localhost';FLUSH PRIVILEGES;EXIT;替换数据库名:typecho_db
替换用户名:typecho_user
替换密码:your_password
导入备份数据 (如果有)
-
切换到目标数据库
USE existing_database_name;替换为现有数据库的名称。
-
导入备份数据
SOURCE /path/to/backup_file.sql;替换为备份文件的路径。
第三步:配置 Nginx
-
创建 Nginx 网站配置文件
Terminal window sudo vim /etc/nginx/sites-available/typecho.conf -
添加 Typecho 的反向代理配置信息
server {listen 80;listen [::]:80;listen 443 ssl http2;listen [::]:443 ssl http2;server_name your_domain.com; # 替换为您的域名ssl_certificate /**/**/*.cer; # 填入SSL证书路径ssl_certificate_key /*/*/*.key;# 填入SSL证书路径root /var/www/typecho; # 替换为 Typecho 系统文件夹路径index index.php index.html index.htm;location / {try_files $uri $uri/ /index.php?$args;}location ~ \.php$ {include snippets/fastcgi-php.conf;fastcgi_pass unix:/run/php/php7.4-fpm.sock; # 替换为您的 PHP 版本配置fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;include fastcgi_params;}location ~* \.(jpg|jpeg|gif|png|webp|ico|bmp|tiff|css|js|svg)$ {expires max;log_not_found off;}location = /favicon.ico { access_log off; log_not_found off; }location = /robots.txt { access_log off; log_not_found off; }access_log /var/log/nginx/typecho_access.log;error_log /var/log/nginx/typecho_error.log;gzip on;gzip_disable "msie6";gzip_vary on;gzip_comp_level 6;gzip_min_length 1100;gzip_buffers 16 8k;gzip_proxied any;gzip_types text/plain text/css text/xml application/xml application/javascript application/rss+xml application/atom+xml image/svg+xml;} -
创建软链接至 sites-enabled
Terminal window sudo ln -s "/etc/nginx/sites-available/typecho.conf" "/etc/nginx/sites-enabled" -
重启服务器
Terminal window nginx -t # 检查配置文件语法错误nginx -s reload # 重新加载配置文件
第四步:申请 SSL 证书
-
手动安装 acme.sh
Terminal window git clone --depth=1 https://github.com/acmesh-official/acme.sh && cd acme.sh或使用国内镜像
Terminal window git clone --depth=1 https://gitee.com/neilpang/acme.sh && cd acme.sh -
安装 acme.sh
Terminal window ./acme.sh --install -
注册账号
Terminal window acme.sh --register-account -m my@example.com -
生成证书
Terminal window ./acme.sh --issue -d mydomain.com -d www.mydomain.com --webroot /home/wwwroot/mydomain.com/ -
配置 SSL 证书和密钥路径
ssl_certificate /path/to/your_certificate.cer; # SSL 证书路径ssl_certificate_key /path/to/your_certificate.key; # SSL 证书密钥路径 -
重启 Nginx
Terminal window nginx -t # 检查配置文件语法错误nginx -s reload # 重新加载配置文件