iOS QuincyKit service 配置

最终实现: 搭建一个本地Crash收集系统

准备工作:

服务器端使用开源项目QuincyKit,我们先clone或下载下来;
由于QuincyKit的服务器端是PHP写的,所以我还需要部署PHP,这里我使用的是MAMP PRO,按照里面方法下载安装即可。

部署QuincyKit service 到 服务器

下面是QuincyKit的目录结构


Snip20171128_1.png
    1. 将QuincyKit中的sever文件夹拷贝到/Applications/MAMP/htdocs,这个目录是MAMP默认的服务器文件目录,当然这个目录你可以在MAMP的hosts下自定义
    1. 编辑server目录下的config.php.sample文件,
$server = 'localhost:8889';                     // database server hostname
$loginsql = 'root';                             // username to access the database
$passsql = 'root';                              // password for the above username
$base = 'CrashDataBase';                        // database name which contains the below listed tables

重命名config.php.sampleconfig.php

    1. 访问http://localhost:8888时出现403信息:You don't have permission to access / on this server.
      解决方法:在MAMP下进入hosts,选择Extended下勾选Indexes即可,当然你在htdocs目录下创建一个index.php也可以解决
      Snip20171128_3.png
  • 4.进入phpMyAdmin,点击 MAMP上的WebStart按钮会打开phpMyAdmin,当点击localhosts:8889时弹出:Error in Processing Request Error code: 404 Error text: Not Found
    解决方法: 参数stackoverflow中的方案:
    进入/Library/Application Support/appsolute/MAMP PRO/phpMyAdmin/目录,打开config.inc.php,找到:
    $cfg['DefaultTabServer'] = 'main.php';
    将其修改为:
    $cfg['DefaultTabServer'] = 'index.php';
    或者将其注释掉:
    #$cfg['DefaultTabServer'] = 'main.php';
    不过我最终选择了升级MAMP,使用4.1版本解决

  • 5.测试是否配置成功:
    在浏览器执行http://localhost/test_setup.php如果全部为passed则说明部署成功,否则根据哪项不是passed查找原因;
    这里最初我的Database access:并没有显示passed,查看日志得知原因:php连接数据库失败,日志PHP Fatal error: Uncaught Error: Call to undefined function mysql_connect() in /Applications/MAMP/htdocs/server/admin/test_setup.php:
    原因是我的php是7版本的,而php7不支持mysql函数,不过可以替换为mysqli的相关函数;再次测试,全部passed

    屏幕快照 2017-11-29 上午12.07.51.png

  • 对QuincyKit的server代码修改:

mysqli_select_db() 函数用于更改连接的默认数据库。
如果是php7, 请按照下面修改

mysql_select_db() 修改为mysqli_select_db() mysql_select_db()只有一个参数,是数据库的名称,mysqli_select_db()有两个参数:

<?php 
// 假定数据库用户名:root,密码:123456,数据库:RUNOOB 
$con=mysqli_connect("localhost","root","123456","RUNOOB"); 
if (mysqli_connect_errno($con)) 
{ 
    echo "连接 MySQL 失败: " . mysqli_connect_error(); 
} 
 
// ...查询 "RUNOOB" 数据库的一些 PHP 代码...
 
// 修改数据库为 "test"
mysqli_select_db($con,"test");
 
// ...查询 "test" 数据库的一些 PHP 代码...
 
mysqli_close($con);
?>
  • Waring: PHP Warning: mysqli_query() expects at least 2 parameters, 1 given in /Applications/MAMP/htdocs/server/admin/app_versions.php on line 115
    解决方法:修改mysqli_query()

  • MAMP PRO 数据库文件的本地路径:
    /Library/Application Support/appsolute/MAMP PRO/db/mysql/

  • MAMP 下连接数据库日志问题:
    `RSA private key file not found: /Library/Application Support/appsolute/MAMP PRO/db/mysql56//private_key.pem. Some authentication plugins will not work.
    RSA public key file not found: /Library/Application Support/appsolute/MAMP PRO/db/mysql56//public_key.pem. Some authentication plugins will not work.
    解决方法:RSA private key file not found的问题,sha256_password这个插件是MySQL5.6内置的,支持更为强大的用户密码加密方式。

  1. 检查是否安装openssl
    $rpm -qa openssl
    openssl-1.0.0-20.el6_2.5.x86_64

2.利用openssl生成公有和私有key
$ openssl genrsa -out mykey.pem 1024
Generating RSA private key, 1024 bit long modulus
..........++++++
.++++++
e is 65537 (0x10001)

$ openssl rsa -in mykey.pem -pubout -out mykey.pub writing RSA key
$ ll mykey*
-rw-r--r-- 1 db mysql 887 2014-10-26 12:59:05 mykey.pem
-rw-r--r-- 1 db mysql 272 2014-10-26 12:59:12 mykey.pub
3.修改key的权限
$ chmod 400 mykey.pem
$ chmod 444 mykey.pub

$ ll mykey*
-r-------- 1 db mysql 887 2014-10-26 12:59:05 mykey.pem
-r--r--r-- 1 db mysql 272 2014-10-26 12:59:12 mykey.pub

4.把公私有key的路径加入到my.cnf中
sha256_password_private_key_path=mykey.pem
sha256_password_public_key_path=mykey.pub
如果key放在datadir目录下,直接写key名即可。否则要指定key的全路径。

5.重启mysql,SHOW STATUS查看Rsa_public_key状态,如果不为空,则OK.
mysql> SHOW STATUS LIKE 'Rsa_public_key'\G
*************************** 1. row ***************************
Variable_name: Rsa_public_key
Value: -----BEGIN PUBLIC KEY-----
MIGfMA0ACSqGSIb2DQEBAQUAA4GNADCBiQKBgQDEnZaBWzo/4Ygm435LFKT8HBoX
bPkXATx9eJ4TWDtklLKidoWYj182fXdIpIA1Jt0CNm1MdLKwdcxuEOvSq/ortfmr
Y9doNlcpiLWUmDRD9LBH0AAJR1Tk7L8XLWEuq/nm3eiEnCUZE9+yF1gGxeDJQ2kG
oVHJhFxk0TST0R1nAQDDAQAB
-----END PUBLIC KEY-----
1 row in set (0.01 sec)
6.检查重启后的error log,相关的提示已经消失

  • Mac 下ll命令 command not found
    打开终端
    cd ~
    vim .bash_profile
    加入:
    alias ll='ls -alF' alias la='ls -A' alias l='ls -CF'
    保存后,执行
    source .bash_profile

  • 编辑MAMP4.1下my.cnf文件:
    打开MAMP PRO,点击主界面左侧LANGUAGES中PHP,右侧Extensions分类中点击Manually enable other extensions右侧按钮(或者打开菜单栏File->Edit Template->MySQL->(选择版本)),这时打开的文件就是my.cnf

  • mysql自动停止 Plugin 'FEDERATED' is disabled

2017-11-29 23:46:17 7272 [Note] Plugin 'FEDERATED' is disabled.
2017-11-29 23:46:17 7272 [Note] InnoDB: Using atomics to ref count buffer pool pages
2017-11-29 23:46:17 7272 [Note] InnoDB: The InnoDB memory heap is disabled
2017-11-29 23:46:17 7272 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
2017-11-29 23:46:17 7272 [Note] InnoDB: Memory barrier is not used
2017-11-29 23:46:17 7272 [Note] InnoDB: Compressed tables use zlib 1.2.8
2017-11-29 23:46:17 7272 [Note] InnoDB: Using CPU crc32 instructions
2017-11-29 23:46:17 7272 [Note] InnoDB: Initializing buffer pool, size = 128.0M
2017-11-29 23:46:17 7272 [Note] InnoDB: Completed initialization of buffer pool
2017-11-29 23:46:17 7272 [Note] InnoDB: Highest supported file format is Barracuda.
2017-11-29 23:46:17 7272 [Note] InnoDB: 128 rollback segment(s) are active.
2017-11-29 23:46:17 7272 [Note] InnoDB: Waiting for purge to start
2017-11-29 23:46:18 7272 [Note] InnoDB: 5.6.35 started; log sequence number 1677335
2017-11-29 23:46:18 7272 [Note] RSA private key file not found: /Library/Application Support/appsolute/MAMP PRO/db/mysql56//private_key.pem. Some authentication plugins will not work.
2017-11-29 23:46:18 7272 [Note] RSA public key file not found: /Library/Application Support/appsolute/MAMP PRO/db/mysql56//public_key.pem. Some authentication plugins will not work.
2017-11-29 23:46:18 7272 [Note] Server hostname (bind-address): '127.0.0.1'; port: 8889
2017-11-29 23:46:18 7272 [Note]   - '127.0.0.1' resolves to '127.0.0.1';
2017-11-29 23:46:18 7272 [Note] Server socket created on IP: '127.0.0.1'.
2017-11-29 23:46:18 7272 [Note] Event Scheduler: Loaded 0 events
2017-11-29 23:46:18 7272 [Note] /Applications/MAMP/Library/bin/mysqld: ready for connections.
Version: '5.6.35'  socket: '/Applications/MAMP/tmp/mysql/mysql.sock'  port: 8889  MySQL Community Server (GPL)
2017-11-29 23:48:52 7272 [Note] /Applications/MAMP/Library/bin/mysqld: Normal shutdown

解决方法:
打开my.cnf
[mysqld]下面添加

federated
skip-external-locking
skip-name-resolve
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,684评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,143评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,214评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,788评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,796评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,665评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,027评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,679评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,346评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,664评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,766评论 1 331
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,412评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,015评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,974评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,073评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,501评论 2 343

推荐阅读更多精彩内容

  • docker-compose配置zabbix环境docker-compose文件version: "3"servi...
    Java架构学习者阅读 691评论 0 0
  • 1、memcache的概念? Memcache是一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨...
    桖辶殇阅读 2,224评论 2 12
  • 简要介绍: 一般来说,LNMP是Linux+Nginx+MySQL+PHP的简称,是一种用于替代LAMP的解决方案...
    无理取now阅读 4,161评论 1 1
  • iOS开发之命令行的魅力 命令行使用及安装 作为一个iOS开发者,命令行是我们必须使用的,下面我就简单介绍下命令行...
    风清水遥阅读 1,542评论 0 2
  • 吾言蒹葭水上花, 独爱青芒映云霞。 今余美酒空应景, 哪知黄鹂鸣谁家。
    倾慕的荸荠阅读 378评论 4 2