oneThink在本地完成安装步骤,然后把数据库以及代码复制到服务器,会遇到不少的坑。

数据库配置

首先,改数据库配置

Application/Common/Conf/config.php数据库配置需要修改

只改这边是不够的,还有User/Conf/config.php里面的UC_DB_DSN也需要改

define('UC_DB_DSN', 'mysqli://root:123456@127.0.0.1:3306/test');

安全问题

通过查看调试那边的响应可以发现,请求的时候会显示X-Powered-By:ThinkPHP

强迫症患者是不允许这种事情发生的,我们可以修改ThinkPHP/Library/Think/View.class.php里面的方法

private function render($content,$charset='',$contentType=''){
    if(empty($charset))  $charset = C('DEFAULT_CHARSET');
    if(empty($contentType)) $contentType = C('TMPL_CONTENT_TYPE');
    // 网页字符编码
    header('Content-Type:'.$contentType.'; charset='.$charset);
    header('Cache-control: '.C('HTTP_CACHE_CONTROL'));  // 页面缓存控制
    // header('X-Powered-By:ThinkPHP');  
    // 输出模板文件
    echo $content;
}

注释掉就可以了,如果还有会显示 X-Powered-By:PHP/5.3.29 ,这个是PHP环境配置的问题。参考NGINX+PHP WEB服务器安全配置

Url重写

我们本地开发环境如果是Apache的,我们这么访问就可以到Admin模块:http://z.test.com/admin 这样就能访问到Admin模块,但是如果在nginx环境下没有配置环境是无法达到这个目标的。

我们可以通过修改nginx的配置,在虚拟主机配置文件中添加代码:

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

    }

url重写以后我们也可以这么访问了。