船说 CMS 支持二级目录安装吗

juming
juming 初级会员超兽战士
发布于 2026-10-07 22:38 ·1 浏览 ·0 回复

学完这篇,你能独立把船说 CMS 装到 www.你的域名.com/cms/ 这样的二级目录下,并让前后台、伪静态、附件路径全部正常。

结论先说:船说 CMS 支持二级目录安装,但它默认是按「根目录」设计的,直接解压到子目录会出现后台登录跳转回首页、内页 404、图片裂图这三类问题。下面按顺序一步步改。

第一步:确认安装包内核和版本,决定改哪里

先把安装包解压到本地看一眼目录结构,这决定后面伪静态怎么写。

  • 如果根目录下有 thinkphp/、application/、config/ 三个文件夹,说明是 ThinkPHP 5 内核(船说 CMS 3.x 及以后基本是这个结构),伪静态走 index.php?s= 模式。
  • 如果根目录下是 include/、data/、admin/ 这类老结构,属于早期版本,路由走 .php? 直连,通常不需要写重写规则,反而更省事。

同时记下入口文件名:前台入口一般是 index.php,后台入口是 admin.php(部分版本被改名过,比如 manage.php,以你解压包里的实际文件为准)。

注意:不要边解压边覆盖线上已有文件。先在本地或测试目录装通,再整包上传,否则升级残留的旧配置会把新站带偏。

第二步:上传到二级目录并跑安装向导

这一步的目标是让安装程序识别出「我装在子目录里」,装完能进后台。

  1. 用 FTP 或宝塔面板「文件」功能,把整个程序包上传到网站根目录下的 cms 文件夹,最终路径为 /www/wwwroot/你的站点/cms/。
  2. 浏览器访问 http://你的域名/cms/install/index.php(有的版本安装目录叫 install,直接访问 http://你的域名/cms/install/ 即可)。
  3. 填写数据库信息时,数据库名、用户名、密码照常填,但「安装路径」或「网站地址」这一栏,一定要写成带子目录的完整地址,例如 http://你的域名/cms,不要只写域名。
  4. 安装完成后删除 install 目录,访问 http://你的域名/cms/admin.php 登录后台。

注意:如果安装向导第 2 步就白屏,多半是 PHP 版本不匹配。船说 CMS 3.x 建议 PHP 7.0–7.4,PHP 8.0 以上常因 each()、create_function() 被移除而报错。在宝塔面板「网站 → 设置 → PHP版本」里切换即可。

第三步:配置伪静态,解决内页 404

这一步做完,栏目页、内容页的 URL 才会正常。

Nginx(宝塔用户改这里):打开宝塔面板「网站 → 你的站点 → 设置 → 配置文件」,在 server {} 块里加:

location /cms/ {
    if (!-e $request_filename) {
        rewrite ^/cms/(.*)$ /cms/index.php?s=$1 last;
    }
}

保存后重载 Nginx。

Apache:在 cms 目录下新建 .htaccess:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /cms/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /cms/index.php [L]
</IfModule>

注意:RewriteBase 后面必须带 /cms/,前后两个斜杠都不能少。只写 /cms 会导致部分版本重写失效。

第四步:后台把站点地址改成带子目录的

进入后台,找到「系统 → 系统设置 → 站点设置」(3.x 版本在「设置 → 基本设置」),把「网站域名 / 站点 URL」改成 http://你的域名/cms,保存。

改完做三件事验证:

  1. 打开首页,按 F12 看「网络」面板,图片、CSS、JS 的地址应该是 你的域名/cms/uploads/... 而不是 你的域名/uploads/...。如果有后者,说明模板里写死了绝对路径,需要在「模板管理」里把 /uploads/ 批量替换成 /cms/uploads/。
  2. 点开一个内容页,URL 形如 http://你的域名/cms/news/123.html 能正常打开。
  3. 退出后台再重新登录一次,确认不会跳回首页。如果跳回,回到「站点设置」检查 Cookie 作用域或干脆换浏览器重试。

最后删除 runtime 目录(或后台「系统 → 缓存管理 → 清除缓存」)再刷新,让新路径生效。

小结

  • 船说 CMS 能装二级目录,关键是安装时把站点地址写成带 /cms 的完整路径。
  • 伪静态规则里的路径必须同步带上子目录,Nginx 和 Apache 写法不同。
  • 后台「站点设置」里的域名要改成带子目录的地址,否则附件和链接会指向根目录。
  • PHP 版本控制在 7.0–7.4,装完删 install,改完清 runtime。
  • 同一数据库装多个站时,记得换表前缀,避免冲突。
版权声明:本文来自 GJ站长论坛《船说 CMS 支持二级目录安装吗》
原文链接:https://www.gj0.com/thread-594.html
转载请注明出处并保留本声明;内容仅代表作者观点,与本站立场无关。若本文涉嫌侵权,请联系本站处理。

全部回复 0

还没有回复,来抢沙发~