MySQL主从复制配置

复制(Replication)是从一台MySQL数据库服务器(主服务器master)复制数据到另一个服务器(从服务器slave)的一个进程。

配置主服务器(master):

1、编辑数据库配置文件my.cnf,一般在/etc/目录下。

#vi /etc/my.cnf
在[mysqld]的下面加入下面代码:

log-bin=mysql-bin
server-id=1
innodb_flush_log_at_trx_commit=1
sync_binlog=1
binlog-do-db=wordpress
binlog_ignore_db=mysql
server-id=1中的1可以任定义,只要是唯一的就行。
binlog-do-db=wordpress是表示只备份wordpress。
binlog_ignore_db=mysql表示忽略备份mysql。
不加binlog-do-db和binlog_ignore_db,那就表示备份全部数据库。

2、然后重启MySQL

3、登录MySQL服务器。 继续阅读MySQL主从复制配置

Yii2创建RESTful风格Api接口

使用Yii可以非常方便的创建一个RESTful web service.

首先我们需要在WEB前端(frontend)和WEB后端(backend)的同级目录新建一个API目录,其目录结构为:

|--assets
|
|    AppAsset.php
|
|--config
|    bootstrap.php
|    main-local.php
|    main.php
|    params-local.php
|    params.php
|
|--runtime
|__web
     |
     |  index.php
     |--assets
     |__css

我们看到其结构和我们的frontend有些相似,所以我们可以直接copy一份frontend内容目录到api目录下,根据我们所需目录结构将多余文件删除即可。

然后我们需要在common/config/bootstrap.php文件中增加新建应用的别名。 继续阅读Yii2创建RESTful风格Api接口

微信小程序入坑总结

最近新入坑微信小程序,在开发过程中遇到了一些坑在此记录分享下。不过小程序的文档对比微信其他产品的文档写的很不错,很详细在这里赞一下。微信小程序

1、最先遇到的一个问题是wx.navigateTo()跳转函数失效。

该函数的作用是“保留当前页面,跳转到应用内的某个页面,使用wx.navigateBack可以返回到原页面。”

当时使用wx.navigateTo()跳转到新页面的时候点击没有反应,调试控制台也没有报错。经测试是因为该跳转的页面已被设为tabBar,而navigateTo, redirectTo 只能打开非 tabBar 页面。switchTab只能打开 tabBar 页面。reLaunch可以打开任意页面。 继续阅读微信小程序入坑总结

Yii2 hasOne,hasmany联表查询添加条件方法

1、yii2中的hasOne与hasMany方法非常好用,但是,在联查的过程中如果要加条件,那改怎么办呢?
你可能说,我可以直接在后面跟where呀,比如这样:

public function getCanWeiList(){
        $tableAlias = Table::tableName();
        $where['status'] = 1;
        return $this->hasOne(Table::className(),['tableid'=>'id'])->where($where);
    }

2、使用匿名函数来添加条件

Customer::find()->with([
    'orders' => function ($query) {
        $query->andWhere('status = 1');
    },
    'country',
])->all();

3、使用$model->canWeiList获取到关联表的所有数据,如果你想加where等条件的话,可以使用$query = $model->getCanWeiList(),这个得到的是一个ActiveQuery,你可以继续使用$query->where([‘xxx’=>’xxx’])的。

yii2-GridView在开发中常用的功能及技巧

GridView 小部件在开发中常用的功能及技巧。持续更新中….

数据网格或者说 GridView 小部件是Yii中最强大的部件之一。
它有一个属性名叫 dataProvider ,这个属性能够提供一个数据提供者的示例并且可以显示所提供的数据,即使用 yii\grid\GridView::columns 属性的一组列配置,在一个表格中渲染每一行数据。

例如

use yii\grid\GridView;
echo yii\grid\GridView::widget([
    'dataProvider' => $dataProvider,
]);

继续阅读yii2-GridView在开发中常用的功能及技巧

Yii2使用小技巧集合

1、格式化返回数据格式

Yii::$app->response->format = \yii\web\Response::FORMAT_JSON;

2、JS按需加载

<?php $this->beginBlock('test') ?>  
    $(function($) {  
      $('#mybutton').click(function() {  
        alert('OK');  
      });  
    });  
<?php $this->endBlock() ?>  
<?php $this->registerJs($this->blocks['test'], \yii\web\View::POS_END);//在页面最后加载 ?>

#按需加载JS文件
$this->registerJsFile('@web/js/jquery-ui.custom.min.js',['depends'=>['backend\assets\AppAsset']]);

 

PHP出现 cURL error 60 的解决办法

最近在做项目的时候遇到“cURL error 60: SSL certificate: unable to get local issuer certificate.”看提示应该是SSL 证书出了问题。

从网上下载一个cacert.pem证书文件,然后放在 :path\to\php\extras\ssl\cacert.pem 的文件目录下。

然后打开php.ini 搜索 curl.cainfo = 打开这个配置然后修改为 curl.cainfo =“path\to\php\extras\ssl\cacert.pem”保存即可

注意一定要开启openssl

Yii2邮件配置

在 common/config/main-local.php中写入以下代码配置 Mail代理

return [
        'components' => [
            ...//your code,
            //以下是 mail 的配置
            'mailer' => [
                'class' => 'yii\swiftmailer\Mailer',
                'viewPath' => '@common/mail',
                'transport' => [
                    'class' => 'Swift_SmtpTransport',
                    //我用的是QQ 的代理,所以这里是 QQ 的配置信息
                    'host' => 'smtp.qq.com',
                    'port' => 587,
                    'encryption' => 'tls',    
                    //这部分信息不应该公开,所以后期会由数据库中拿取
                    'username' => '你的 QQ 号',
                    'password' => '你的 QQ 密码',
                ],
                //发送的邮件信息配置
                'messageConfig' => [

                    'charset' => 'utf-8',

                    'from' => ['83398365@qq.com' => 'BugAsk']
                ],

            ],'

        ]

    ];

继续阅读Yii2邮件配置