服务公告

服务公告 > 行业新闻 > 搭建dede,Linux如何快速搭建DedeCMS?

搭建dede,Linux如何快速搭建DedeCMS?

发布时间:2025-09-13 02:03

下面给出一套可直接执行的 Linux 快速搭建 DedeCMS(织梦)方案,兼顾“10 分钟起站”和“长期可维护、安全可控”。⚙️


一、环境建议(先选对栈)

组件 推荐做法 说明
OS Debian 12 / Ubuntu 22.04+ / AlmaLinux 9 稳定源、长支持周期
Web Nginx + PHP-FPM 并发与静态性能更优
PHP 8.0/8.1 优先,旧模板不兼容时用 7.4(容器隔离) 需开启常用扩展(下文)
DB MariaDB 10.6+/MySQL 8.0 事务/字符集/性能更稳
字符集 utf8mb4 避免表情/多语言乱码

提示:老模板/老插件不适配 PHP8 时,不要降全局版本,用 Docker 单独跑 PHP7.4 更安全。🧩


二、方案 A(最快):Docker Compose 一把梭(~10 分钟)

适用:想快速上线、与系统隔离;不改全局环境

  1. 建工作目录并写 docker-compose.yml
version: "3.9"
services:
  web:
    image: nginx:stable
    container_name: dede-nginx
    ports:
      - "80:80"
    volumes:
      - ./site:/var/www/html
      - ./nginx.d/default.conf:/etc/nginx/conf.d/default.conf
    depends_on: [php]
  php:
    image: php:8.1-fpm
    container_name: dede-php
    volumes:
      - ./site:/var/www/html
    # 必要扩展
    command: /bin/sh -c "docker-php-ext-install mysqli pdo_mysql gd mbstring zip exif intl && php-fpm"
  db:
    image: mariadb:10.6
    container_name: dede-db
    environment:
      - MYSQL_ROOT_PASSWORD=StrongRootPwd!
      - MYSQL_DATABASE=dede
      - MYSQL_USER=dedeu
      - MYSQL_PASSWORD=StrongPwd!
    volumes:
      - ./db:/var/lib/mysql
  1. 写 Nginx 站点配置 nginx.d/default.conf
server {
  listen 80;
  server_name _;
  root /var/www/html;
  index index.php index.html;

  location / {
    try_files $uri $uri/ /index.php?$args;
  }

  location ~ \.php$ {
    include fastcgi_params;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_pass php:9000;
  }

  # 禁止 uploads 目录执行 PHP
  location ~* ^/uploads/.*\.php$ { return 403; }
}
  1. 将 DedeCMS 程序包解压到 ./site/,然后:
docker compose up -d
  1. 浏览器访问 http://服务器IP/install 完成安装;安装后立即删除 /install 目录,并把后台目录 /dede改名(如 /admin_xxx)。✅

三、方案 B(原生部署):Nginx + PHP-FPM + MariaDB

适用:已有业务规范,不想用容器。

  1. 安装组件(Debian/Ubuntu)
sudo apt update
sudo apt install -y nginx mariadb-server php-fpm \
  php-mysql php-gd php-mbstring php-xml php-zip php-curl php-intl php-exif
  1. 创建数据库与账户
sudo mysql -e "CREATE DATABASE dede DEFAULT CHARSET utf8mb4;"
sudo mysql -e "CREATE USER 'dedeu'@'%' IDENTIFIED BY 'StrongPwd!';"
sudo mysql -e "GRANT ALL PRIVILEGES ON dede.* TO 'dedeu'@'%'; FLUSH PRIVILEGES;"
  1. Nginx 站点
# /etc/nginx/sites-available/dede.conf
server {
  listen 80;
  server_name _;
  root /var/www/dede;     # 解压目录
  index index.php index.html;

  location / {
    try_files $uri $uri/ /index.php?$args;
  }

  location ~ \.php$ {
    include snippets/fastcgi-php.conf;
    fastcgi_pass unix:/run/php/php-fpm.sock;
  }

  location ~* ^/uploads/.*\.php$ { return 403; }
}
sudo ln -s /etc/nginx/sites-available/dede.conf /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx
  1. PHP 参数(上传大图/备份时更稳)
# /etc/php/*/fpm/php.ini
memory_limit = 256M
upload_max_filesize = 32M
post_max_size = 32M
max_execution_time = 120
sudo systemctl restart php*-fpm
  1. 放代码与权限
sudo mkdir -p /var/www/dede
sudo tar -xf dedecms.tar.gz -C /var/www/dede --strip-components=1
sudo chown -R www-data:www-data /var/www/dede
# 仅必要目录可写
sudo find /var/www/dede -type d -name uploads -o -name data -exec chmod 775 {} \;
  1. 安装流程
  • 访问 http://服务器IP/install,填 DB 信息(上文账户),管理员账号务必设置强密码。
  • 安装完成后删除 /install,把 /dede改名(如 /admin_5t2x)。🎯

四、上线即加固(强烈建议)

  • 限制后台:仅公司/机房出口可访问后台路径
    location ^~ /admin_5t2x/ {
      allow 203.0.113.10/32;
      deny all;
      try_files $uri $uri/ /admin_5t2x/index.php?$args;
    }
    
  • 禁执行目录/uploads、备份目录一律禁 .php 执行(上文已示例)。
  • 文件权限:程序 644/755,只给 uploads、data 可写;如用在线模板编辑再放开 templets,不用则保持只读。
  • 配置隔离open_basedir 指向站点根,避免跨站访问;disable_functions 关闭高危函数(如 exec,passthru,shell_exec 等)。
  • 备份与监控:DB 每日全量 + binlog;Nginx/应用日志接入告警;开启 WAF/CC 防护策略。🛡️