网站 ald 安装的一些记录

Call to undefined function Think\Session\Driver\mysql_connect()

Conf/common.php 的 SESSION_TYPE 留空,如写 db 则以 mysql 为驱动,会报上述错误

nginx 引入文件 include vhost/other/osv2_nginx.conf;

nginx 主要配置项 重写 thinkphp index.php 文件,取消引入 php7 的 pathinfo.php,引入 osv2_nginx.conf 重写文件

删除 .user.ini 文件,可能造成 No input file specified

MySQL 报错 this is incompatible with sql_mode=only_full_group_by [ SQL语句 ] 解决办法

这个错误的原因是高版本 MySQL  默认的 sql_mode 包含 ONLY_FULL_GROUP_BY,这个属性保证了 select 到的列都在 group by 中出现。

修改 MySQL 配置文件,通过手动添加 sql_mode 的方式强制指定不需要 ONLY_FULL_GROUP_BY 属性,my.cnf 位于 etc 文件夹下,vim (vim /etc/my.cnf) 下光标移到最后,添加如下:

sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

ThinkPHP 3.2 连接多数据库

<?php

return array(
    /* 数据库设置 */
    'DB_TYPE'               =>  'mysqli',     // 数据库类型
    'DB_HOST'               =>  'localhost', // 服务器地址 rds190co1ii65n556p9v.mysql.rds.aliyuncs.com
    'DB_NAME'               =>  'kh',          // 数据库名
    'DB_USER'               =>  'root',      // 用户名
    'DB_PWD'                =>  'root',          // 密码
    'DB_PORT'               =>  '3306',        // 端口
    'DB_PREFIX'             =>  'bj_',    // 数据库表前缀
    'DB_PARAMS'          	=>  array(), // 数据库连接参数
    'DB_DEBUG'  			=>  TRUE, // 数据库调试模式 开启后可以记录SQL日志
    'DB_FIELDS_CACHE'       =>  true,        // 启用字段缓存
    'DB_CHARSET'            =>  'utf8',      // 数据库编码默认采用utf8
    'DB_DEPLOY_TYPE'        =>  0, // 数据库部署方式:0 集中式(单一服务器),1 分布式(主从服务器)
    'DB_RW_SEPARATE'        =>  false,       // 数据库读写是否分离 主从式有效
    'DB_MASTER_NUM'         =>  1, // 读写分离后 主服务器数量
    'DB_SLAVE_NO'           =>  '', // 指定从服务器序号
    'DB_CONFIG2'=>array(
        /* 数据库设置 */
        'DB_TYPE'               =>  'mysqli',     // 数据库类型
        'DB_HOST'               =>  'localhost', // 服务器地址 rds190co1ii65n556p9v.mysql.rds.aliyuncs.com
        'DB_NAME'               =>  'ald',          // 数据库名
        'DB_USER'               =>  'root',      // 用户名
        'DB_PWD'                =>  'root',          // 密码
        'DB_PORT'               =>  '3306',        // 端口
        'DB_PREFIX'             =>  'ocenter_',    // 数据库表前缀
        'DB_PARAMS'          	=>  array(), // 数据库连接参数
        'DB_DEBUG'  			=>  TRUE, // 数据库调试模式 开启后可以记录SQL日志
        'DB_FIELDS_CACHE'       =>  true,        // 启用字段缓存
        'DB_CHARSET'            =>  'utf8',      // 数据库编码默认采用utf8
        'DB_DEPLOY_TYPE'        =>  0, // 数据库部署方式:0 集中式(单一服务器),1 分布式(主从服务器)
        'DB_RW_SEPARATE'        =>  false,       // 数据库读写是否分离 主从式有效
        'DB_MASTER_NUM'         =>  1, // 读写分离后 主服务器数量
        'DB_SLAVE_NO'           =>  '', // 指定从服务器序号
    )
);
使用默认的:M('tablename')
使用第二个:M('tablename','表前缀','DB_CONFIG2')

 

使用 PHP 强制下载 PDF 文件

public function test(){

    $this->forceDownload("/Uploads/Attachment/test.pdf");
}


function forceDownload($filename) {

//    if (false == file_exists($filename)) {
//        return false;
//    }

    // http headers
    header('Content-Type: application-x/force-download');
    header('Content-Disposition: attachment; filename="' . basename($filename) .'"');
    header('Content-length: ' . filesize($filename));

    // for IE6
    if (false === strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE 6')) {
        header('Cache-Control: no-cache, must-revalidate');
    }
    header('Pragma: no-cache');

    // read file content and output
    return readfile($filename);
}

 

rsync 带不带尾部斜杠的不同作用

rsync 是很好用的同步软件,使用增量方式同步。不过使用 rsync 时有没有尾部斜杠效果是不同的

使用方法  rsync  src   dest

总结一下规律:

src 目录没有带斜杠:则在  dest 下面有 src 文件夹

src 目录没有带斜杠:则在 dest 目录下面只有 src 目录下面的文件

换言之:如果忽略了源文件斜杠  rsync 将创建源文件目录的最后一个文件夹名字并且包含它的所有文件,如果添加了斜杠 rsync 将跳过那个目录直接复制里面的内容

dest 带不带斜杠没有任何影响。 Continue reading rsync 带不带尾部斜杠的不同作用

MySQL (Navicat) 运行 .sql 文件时报错:[Err] 2006 – MySQL server has gone away 的解决方法

导入一个数据量很大的 .sql 文件时,报错:

SQL 语句过长,超过 MySQL 通信缓存区最大长度。

编辑 MySQL 安装目录下的 my.ini,在最后添加以下内容:

max_allowed_packet=16M

或(2018-03-14 补充)

max_allowed_packet=500M
wait_timeout=288000
interactive_timeout = 288000

max_allowed_packet 是 MySQL 允许最大的数据包,也就是你发送的请求;

wait_timeout 是等待的最长时间,

重启 MySQL 服务

执行 umount 的时提示: device is busy 的处理方法

错误

[root@iZ25xpwwmfnZ ~]# umount /dev/vdb5
umount: /data/wwwroot/www.1001alading.com/Uploads: device is busy.
        (In some cases useful info about processes that use
         the device is found by lsof(8) or fuser(1))

查看

[root@iZ25xpwwmfnZ ~]# fuser -m -v /data/wwwroot/www.1001alading.com/Uploads
                     USER        PID ACCESS COMMAND
/data/wwwroot/www.1001alading.com/Uploads:
                     www        2925 f.... nginx
                     www        2927 F.... nginx
                     root      18365 f.... AliYunDun
                     root      28557 f.... pick.sh

杀进程

[root@iZ25xpwwmfnZ ~]# fuser -m -v -i -k /data/wwwroot/www.1001alading.com/Uploads
                     USER        PID ACCESS COMMAND
/data/wwwroot/www.1001alading.com/Uploads:
                     www        2925 f.... nginx
                     www        2927 F.... nginx
                     www        2928 F.... nginx
                     root      18365 f.... AliYunDun
                     root      28557 f.... pick.sh
Kill process 2925 ? (y/N) y
Kill process 2927 ? (y/N) y
Kill process 2928 ? (y/N) y
Kill process 18365 ? (y/N) y
Kill process 28557 ? (y/N) y

再次卸载

资料转移记录

mkdir /home/Uploads
mkdir /home/temp
mv /home/wwwroot/ald.1001ald/Uploads/* /home/Uploads
umount /dev/vdb1
mount /dev/vdb1 /home/temp
mv -rf /home/Uploads /home/wwwroot/ald.1001ald
mv /home/wwwroot/ald.1001ald/ /home/temp
umount /dev/vdb1
mount /dev/vdb1 /home/wwwroot
vim /etc/rc.d/rc.local
mount /dev/vdb1 /home/wwwroot