船说 CMS 支持二级目录安装吗
学完这篇,你能独立把船说 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,以你解压包里的实际文件为准)。
注意:不要边解压边覆盖线上已有文件。先在本地或测试目录装通,再整包上传,否则升级残留的旧配置会把新站带偏。
第二步:上传到二级目录并跑安装向导
这一步的目标是让安装程序识别出「我装在子目录里」,装完能进后台。
- 用 FTP 或宝塔面板「文件」功能,把整个程序包上传到网站根目录下的
cms文件夹,最终路径为/www/wwwroot/你的站点/cms/。 - 浏览器访问
http://你的域名/cms/install/index.php(有的版本安装目录叫install,直接访问http://你的域名/cms/install/即可)。 - 填写数据库信息时,数据库名、用户名、密码照常填,但「安装路径」或「网站地址」这一栏,一定要写成带子目录的完整地址,例如
http://你的域名/cms,不要只写域名。 - 安装完成后删除
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,保存。
改完做三件事验证:
- 打开首页,按 F12 看「网络」面板,图片、CSS、JS 的地址应该是
你的域名/cms/uploads/...而不是你的域名/uploads/...。如果有后者,说明模板里写死了绝对路径,需要在「模板管理」里把/uploads/批量替换成/cms/uploads/。 - 点开一个内容页,URL 形如
http://你的域名/cms/news/123.html能正常打开。 - 退出后台再重新登录一次,确认不会跳回首页。如果跳回,回到「站点设置」检查 Cookie 作用域或干脆换浏览器重试。
最后删除 runtime 目录(或后台「系统 → 缓存管理 → 清除缓存」)再刷新,让新路径生效。
小结
- 船说 CMS 能装二级目录,关键是安装时把站点地址写成带
/cms的完整路径。 - 伪静态规则里的路径必须同步带上子目录,Nginx 和 Apache 写法不同。
- 后台「站点设置」里的域名要改成带子目录的地址,否则附件和链接会指向根目录。
- PHP 版本控制在 7.0–7.4,装完删
install,改完清runtime。 - 同一数据库装多个站时,记得换表前缀,避免冲突。
原文链接:https://www.gj0.com/thread-594.html
转载请注明出处并保留本声明;内容仅代表作者观点,与本站立场无关。若本文涉嫌侵权,请联系本站处理。