博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PHPCMS V9多站点[站群功能]动态设置与静态设置子站内容URL
阅读量:4686 次
发布时间:2019-06-09

本文共 2595 字,大约阅读时间需要 8 分钟。

phpcms v9的站群功能的 动态站点与静态站点的配置

站群站点,分为动态站点,和静态站点两种设置方法:

静态的,就是将栏目和内容都了html 文件,

我们先讲解下,站群的操作:

 

建好之后,进入你的子站,进行,模型导入,栏目建.设,内容-录入等工作

新建的子站,是木有模型的,我们就将主站的模型导出,再进子站,把模型导入;

记得,栏目和内容都设置成静态

我们添加测试内容,进行下一步骤,更新url,更新栏目,更新首页,更新全站缓存

接下来,配置关键的;就是你的服务器;如果你是用iis 的,
就直接新建 网站 的形式来操作,文件夹目录直接指向子站的文件夹名

如果你是apache ,那就需要进行配置文件设置了

如下图:

 

-----------------------------------动态配置-----------------------------------

接下来讲动态配置站群,也就是url 都是采用屏蔽词汇址的,因为很多时候,我们需要进行功能方面的实验,静态,不方便美工或者程序员对程序的测试!

所以,我们需要用到动态的url,这个时候,就需要操作 phpcms 的路由功能了

找到 根目录下 \caches\configs\route.php

打开之后,我们看下代码:

如下:

01.
<?php
02.
/**
03.
* 路由配置文件
04.
* 默认配置为default如下:
05.
* 'default'=>array(
06.
*  'm'=>'phpcms', 
07.
*  'c'=>'index', 
08.
*  'a'=>'init', 
09.
*  'data'=>array(
10.
*   'post'=>array(
11.
*    'catid'=>1
12.
*   ),
13.
*   'get'=>array(
14.
*    'contentid'=>1
15.
*   )
16.
*  )
17.
* )
18.
* 基中“m”为模型,“c”为控制器,“a”为事件,“data”为其他附加参数。
19.
* data为一个二维数组,可设置post和get的默认参数。post和get分别对应php中的$_post和$_get两个超全局变量。在程序中您可以使用$_post['catid']来得到data下面post中的数组的值。
20.
* data中的所设置的参数等级比较低。如果外部程序有提交相同的名字的变量,将会覆盖配置文件中所设置的值。如:
21.
* 外部程序post了一个变量catid=2那么你在程序中使用$_post取到的值是2,而不是配置文件中所设置的1。
22.
*/
23.
return array(
24.
'default'=>array('m'=>'content''c'=>'index''a'=>'init'),
25.
);

讲解下这个文件哦

注释里,很清楚明白的说明了这个文件的操作方法:

那么,这是一个返回数组的形式的一个文件:

他将什么返回了呢?返回的是站点列表。

每个站点,以

'default'=>array('m'=>'content', 'c'=>'index', 'a'=>'init'),

 

的形式进行传值

default 就是你的站点url ,这里是系统默认的,就是default,当然,你也可以将他更改成你的站点域名,比如 www.phpcms.cn

这是一个数组,default 对应的值,又是一个数组,里面的说明,在注释里很详细了,我就不再啰嗦了,关键是站群设置关键的地方,就是data 键

我新建了一个北京站,域名是 beijing.phpcms.cn

那么接下来,我就这样写这个数组;

'beijing.phpcms.cn'=>array('m'=>'content', 'c'=>'index', 'a'=>'init','data'=>array('siteid'=>'2')),

最关键的是后面的siteid 的值是多少,不要传错了,根据你系统的值,你再看看,然后再写;

服务器方面怎么设置呢?apahce 直接指向根目录就可以了

iis方面,我没操作过。就不多加说明了

/***********更新***********/

子站添加内容,url 会继续沿用 站点1 的url ,比如

子站的域名是 beijing.phpcms.cn
添加文章之后,url会变成 www.phpcms.cn/index.php?m=content........
而不是我们需要的 beijing.phpcms.cn/index.php?m=content.............
出现这个情况,怎么解决?

找到 内容管理模块的 classes 下面的 url.class.php

打开之后,找到 89行

原句: $url_arr[0] = $url_arr[1] = app_path.$urls;

改成

1.
$this->sitedb = pc_base::load_model('site_model');
2.
$siteid=param::get_cookie('siteid');
3.
$siteinfo=$this->sitedb->get_one(array('siteid'=>$siteid));
4.
$url_arr[0] = $url_arr[1] = $siteinfo['domain'].$urls;

让子站点的栏目url 也修正过来!

找到 modules/admin/category.php 第418行

修改为:

1.
$this->sitedb = pc_base::load_model('site_model');
2.
$siteid=param::get_cookie('siteid');
3.
$siteinfo=$this->sitedb->get_one(array('siteid'=>$siteid)); 
4.
$url $siteinfo['domain'].$url;

ps: 唉 ··都是 app_path 惹的祸

转载于:https://www.cnblogs.com/semcoding/p/3358889.html

你可能感兴趣的文章
SQL case when else
查看>>
MVc Identity登陆锁定
查看>>
cdn连接失败是什么意思_关于CDN的原理、术语和应用场景那些事
查看>>
ultraedit26 运行的是试用模式_免费试用U盘数据恢复工具 – 轻松找回U盘丢失的各种数据!...
查看>>
python sum函数导入list_python sum函数iterable参数为二维list,start参数为“[]”该如何理解...
查看>>
UVa540 Team Queue
查看>>
android 练习之路 (八)
查看>>
tp5 中 model 的聚合查询
查看>>
android wear开发之:增加可穿戴设备功能到通知中 - Adding Wearable Features to Notifications...
查看>>
压缩文件函数库(转载)
查看>>
【转】ubuntu12.04没有/var/log/messages解决
查看>>
Oracle EBS 初始化用户密码
查看>>
SYS_CONTEXT 详细用法
查看>>
Pycharm配置autopep8让Python代码更符合pep8规范
查看>>
函数的复写
查看>>
17_重入锁ReentrantLock
查看>>
winform窗口关闭提示
查看>>
64款工具,总有合适您的那款
查看>>
我的第一篇博客
查看>>
大数据学习线路整理
查看>>