返回

使用LNMP搭建网站

搭建网站 (以 Typecho 为例)

系统:Debian 12

第一步:绑定域名

  1. 修改 hosts 配置
    1
    
    vim /etc/hosts
    
    添加需要绑定的域名,格式如下:
    1
    
    公网IP 域名
    

第二步:配置 MySQL 数据库

  1. 进入 MySQL

    1
    
    mysql -u root -p
    
  2. 创建数据库和用户,并授权

    1
    2
    3
    4
    5
    
    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

导入备份数据 (如果有)

  1. 切换到目标数据库
    1
    
    USE existing_database_name;
    

    替换为现有数据库的名称。

  2. 导入备份数据
    1
    
    SOURCE /path/to/backup_file.sql;
    

    替换为备份文件的路径。

第三步:配置 Nginx

  1. 创建 Nginx 网站配置文件

    1
    
    sudo vim /etc/nginx/sites-available/typecho.conf
    
  2. 添加 Typecho 的反向代理配置信息

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    
    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;
    }
    
  3. 创建软链接至 sites-enabled

    1
    
    sudo ln -s "/etc/nginx/sites-available/typecho.conf" "/etc/nginx/sites-enabled"
    
  4. 重启服务器

    1
    2
    
    nginx -t  # 检查配置文件语法错误
    nginx -s reload  # 重新加载配置文件
    

第四步:申请 SSL 证书

  1. 手动安装 acme.sh

    1
    
    git clone --depth=1 https://github.com/acmesh-official/acme.sh && cd acme.sh
    

    或使用国内镜像

    1
    
    git clone --depth=1 https://gitee.com/neilpang/acme.sh && cd acme.sh
    
  2. 安装 acme.sh

    1
    
    ./acme.sh --install
    
  3. 注册账号

    1
    
    acme.sh --register-account -m my@example.com
    
  4. 生成证书

    1
    
    ./acme.sh --issue -d mydomain.com -d www.mydomain.com --webroot /home/wwwroot/mydomain.com/
    
  5. 配置 SSL 证书和密钥路径

    1
    2
    
    ssl_certificate /path/to/your_certificate.cer;  # SSL 证书路径
    ssl_certificate_key /path/to/your_certificate.key;  # SSL 证书密钥路径
    
  6. 重启 Nginx

    1
    2
    
    nginx -t  # 检查配置文件语法错误
    nginx -s reload  # 重新加载配置文件
    
Licensed under CC BY-NC-SA 4.0
使用 Hugo 构建
主题 StackJimmy 设计