wordpress与微信公众号对接

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/c332030/article/details/88984562

(一)安装必要插件并启用

WPJAM BASIC插件

(二)安装微信机器人插件

  1. 安装好后,先别点启用,不然会出现如下情况
  2. 查看插件说明:说php版本要在7.2及以上版本。而博主的php是5.4的,因而要升级到PHP7.2

(三)centOS 6.x PHP5.4升级到PHP7.2

  1. 查看已安装php
  2. 将上面列出的使用yum remove进行移除
    yum remove php56*
  3. 安装php依赖组件
    yum -y install wget vim pcre pcre-devel openssl openssl-devel libicu-devel gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel ncurses ncurses-devel curl curl-devel krb5-devel libidn libidn-devel openldap openldap-devel nss_ldap jemalloc-devel cmake boost-devel bison automake libevent libevent-devel gd gd-devel libtool* libmcrypt libmcrypt-devel mcrypt mhash libxslt libxslt-devel readline readline-devel gmp gmp-devel libcurl libcurl-devel openjpeg-devel
    
  4. 进入家目录下的packages目录,然后下载php7.2压缩包,然后解压
    cd /root/packages/
    wget http://am1.php.net/distributions/php-7.2.1.tar.gz
    tar -xzvf php-7.2.1.tar.gz
    cd php-7.2.1
    
  5. 配置
    ./configure --prefix=/usr/local/php72 \
    --with-config-file-path=/usr/local/php/etc \
    --enable-fpm \
    --with-fpm-user=nginx \
    --with-fpm-group=nginx \
    --enable-mysqlnd \
    --with-mysqli=mysqlnd \
    --with-pdo-mysql=mysqlnd \
    --enable-mysqlnd-compression-support \
    --with-iconv-dir \
    --with-freetype-dir \
    --with-jpeg-dir \
    --with-png-dir \
    --with-zlib \
    --with-libxml-dir \
    --enable-xml \
    --disable-rpath \
    --enable-bcmath \
    --enable-shmop \
    --enable-sysvsem \
    --enable-inline-optimization \
    --with-curl \
    --enable-mbregex \
    --enable-mbstring \
    --enable-intl \
    --with-libmbfl \
    --enable-ftp \
    --with-gd \
    --with-openssl \
    --with-mhash \
    --enable-pcntl \
    --enable-sockets \
    --with-xmlrpc \
    --enable-zip \
    --enable-soap \
    --with-gettext \
    --disable-fileinfo \
    --enable-opcache \
    --with-pear \
    --enable-maintainer-zts \
    --with-ldap=shared \
    --without-gdbm
    
  6. 编译 ,安装
    make 
    make install
    
  7. 将*.default文件拷贝至 各自所在的目录下
    cp php.ini-development /usr/local/php72/etc/php.ini
    cp /usr/local/php72/etc/php-fpm.conf.default /usr/local/php72/etc/php-fpm.conf
    cp /usr/local/72/etc/php-fpm.d/www.conf.default /usr/local/php72/etc/php-fpm.d/www.conf
    
  8. 复制php的服务控制脚本,并赋予权限
    cp /root/packages/php-7.2.1/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
    chmod 755 /etc/init.d/php-fpm
    
  9. 将服务添加至chkconfig,并设置开机启动
    chkconfig --add php-fpm
    chkconfig --levels 235 php-fpm on
    
  10. 下面可以使用service对php-fpm进行控制了
  11. 升级后出现了error establishing a database connection错误,解决详见下一篇博文

(四)设置微信机器人

  1. 输入微信公众号的AppID和AppSecret
    2
  2. 添加自定义回复的时候出现了Table 'wordpress.wp_weixin_replies' doesn't exist错误
  3. 因而在wp-config.php配置文件里,添加调试信息
    define('WP_DEBUG',true);
    define('WP_DEBUG_DISPLAY',true);
    //define('WP_DEBUG_LOG',true);
    
  4. 打开检查数据表页面,查找错误信息
  5. 错误是创建所需要的表失败,而失败的原因是Unknown character set: 'utf8mb4' 未知的字符集 utf8mb4(utf8 most byte 4)
  6. 查找了资料 发现是博主的MySQL版本太低导致的…。
  7. 当前正在使用的是mysql5.1版本,而utf8mb4是从mysql5.7开始支持的,so,,,升级mysql???

    别闹了…刚刚升级到php7.2带来的一系列问题还没有解决完呢,,,

  8. 解决办法分两种,自行采用:
    • 升级mysql到5.7(参照另一篇博文)
    • 将微信机器人插件中涉及到创建表的文件里的utf8mb4通通改成utf8(博主暂时采用这种办法)

(五)修改微信机器人插件的创建表的编码问题

  1. 文件中创建表的sql语句,基本如下:
    CREATE TABLE IF NOT EXISTS wp_weixin_messages ( `id` bigint(20) NOT NULL auto_increment, 
    `appid` varchar(32) NOT NULL, 
    `MsgId` bigint(20) NOT NULL, 
    `FromUserName` varchar(30) NOT NULL, 
    `MsgType` varchar(10) NOT NULL, 
    `CreateTime` int(10) NOT NULL, 
    `Content` longtext NOT NULL, 
    `Event` varchar(50) NOT NULL, 
    `EventKey` varchar(50) NOT NULL, 
    `Title` text NOT NULL, 
    `Url` varchar(255) NOT NULL, 
    `MediaId` varchar(500) NOT NULL, 
    `Response` varchar(255) NOT NULL, PRIMARY KEY (`id`) ) DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
    
  2. 要修改的地方就是最后一句的两处:
    • DEFAULT CHARSET=utf8mb4 (默认编码规则)
    • COLLATE=utf8mb4_unicode_ci (默认排序规则)
  3. 要修改为:
    • DEFAULT CHARSET =utf8
    • COLLATE = utf8
  4. 查看插件所在目录下所有含有utf8mb4的文件:
    grep -rn utf8mb4 /var/www/wordpress/wp-content/plugins/weixin-robot-advanced/
    

  5. 找到的文件还不少呢
  6. 下面进行批量字符串替换

    sed -i "s/CHARSET=utf8mb4/CHARSET=utf8/g" `grep -rl utf8mb4 /var/www/wordpress/wp-content/plugins/weixin-robot-advanced/`
    sed -i "s/COLLATE=utf8mb4_unicode_ci/COLLATE=utf8_unicode_ci/g" `grep -rl utf8mb4 /var/www/wordpress/wp-content/plugins/weixin-robot-advanced/`
    
  7. 修复成功

参考资料:https://www.jianshu.com/p/546c94e0bd95
参考资料:http://www.laozuo.org/9288.html
参考资料:grep:https://blog.csdn.net/BabyFish13/article/details/79709028
参考资料:字符串替换:https://www.cnblogs.com/qq78292959/archive/2012/03/08/2385080.html

转载请注明:大魔王ISDevil's Blog » wordpress与微信公众号对接

喜欢 (0)

猜你喜欢

转载自blog.csdn.net/c332030/article/details/88984562