zoukankan      html  css  js  c++  java
  • PHPCMS V9多站点[站群功能]动态设置与静态设置子站内容URL

    今天我们来讲解下 PHPCMS V9的站群功能的 动态站点与静态站点的配置


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

    静态的,就是将栏目和内容都了HTML 文件,
    我们先讲解下,站群的操作:

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

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

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

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


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

    如果你是APACHE ,那就需要进行配置文件设置了
    如下图:

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


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


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

    找到 根目录下 cachesconfigs oute.php


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

    如下:

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

    讲解下这个文件哦

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

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

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

    每个站点,以
    '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
    2
    3
    4
    $this->sitedb = pc_base::load_model('site_model');
    $siteid=param::get_cookie('siteid');
    $siteinfo=$this->sitedb->get_one(array('siteid'=>$siteid));
    $url_arr[0] = $url_arr[1] = $siteinfo['domain'].$urls;

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

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

    原句:$url = APP_PATH.$url;

    修改为:

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

     

  • 相关阅读:
    BZOJ1527 : [POI2005]Pun-point
    2016-2017 ACM-ICPC Southwestern European Regional Programming Contest (SWERC 2016)
    2016-2017 ACM-ICPC Northwestern European Regional Programming Contest (NWERC 2016)
    NAIPC-2016
    BZOJ2498 : Xavier is Learning to Count
    ACM ICPC Vietnam National Second Round
    XVI Open Cup named after E.V. Pankratiev. GP of Ukraine
    XVI Open Cup named after E.V. Pankratiev. GP of Peterhof
    HDU5509 : Pattern String
    BZOJ4583 : 购物
  • 原文地址:https://www.cnblogs.com/roam/p/3504769.html
Copyright © 2011-2022 走看看