服务公告
搭建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 分钟)
适用:想快速上线、与系统隔离;不改全局环境。
- 建工作目录并写
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
- 写 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; }
}
- 将 DedeCMS 程序包解压到
./site/
,然后:
docker compose up -d
- 浏览器访问
http://服务器IP/install
完成安装;安装后立即删除/install
目录,并把后台目录/dede
改名(如/admin_xxx
)。✅
三、方案 B(原生部署):Nginx + PHP-FPM + MariaDB
适用:已有业务规范,不想用容器。
- 安装组件(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
- 创建数据库与账户
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;"
- 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
- 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
- 放代码与权限
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 {} \;
- 安装流程
- 访问
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 防护策略。🛡️