• 使用macOS连接树莓派VNC服务的正确设置方法

    树莓派设置

    菜单 > 首选项 > Raspberry Pi Configuration > Interfaces 勾选VNC选项的 Enable。

    点下方的 OK 后,会在树莓派的系统托盘出现 VNC Server 图标,点击后可以看到树莓派的ip地址。

    进入 Options 菜单:

    进入 Security 选项卡: Encryption 选择 Prefer On. Authentication 选择 VNC Password。

    进入 Users & Permissions 选项卡:选中 Standard User, 点击右侧的 Password 设置 密码,客户端连接的时候使用。

    现在可以使用VNC客户端连接到树莓派了。

    客户端设置

    macOS 下使用的客户端是 Jump Desktop,测试使用Screens也是可以的。认证选择 VNC password。

    如果你和我一样想要在树莓派不连接显示器的时候使用vnc,那么你需要这么操作:

  • RedBeanPHP重连数据库的方法

    RedBeanPHP一直是我比较喜欢的一个PHP ORM。在进行一些数据库的转换时,我一般都会首选使用它。

    在最近使用时,数据库长时间连接会造成超时,RedBeanPHP 没有提供 reconnect,重新setup和addDatabase均会报错。

    从源码中发现数据库连接保持在 \RedBeanPHP\Facadea::$toolboxes 中,发现这个变量是public的。

    直接unset掉,重新连接,大致的代码是这样的:

  • macOS下编译MAMP集成环境包的PHP扩展

    本人比较懒,一直使用 MAMP 集成环境包作为本地机器的开发环境。最近的一个需求中,需要添加对webp格式图片的支持。

    开启MAMP的 Imagick 扩展,发现并不支持webp,决定手工编译下Imagick扩展,使用 Homebrew 搞定本地 ImageMagick 后,开始编译MAMP的扩展了。

    过程比较简单,主要是注意下MAMP的php-config和phpize目录及Homebrew安装的ImageMagick目录。下面步骤记录下也供大家参考:

  • 解决mantis在百度应用引擎(BAE)下无法发送Email的问题

    最近自己搭建在 BAE 下的mantis一直发送不了邮件,因为使用频率不高一直没在意。以为是因为最近Gmail在国内被墙造成的(mantis使用Gmail的smtp账号进行发送),昨天换了n多账号,改了n次mantis的配置文件,都无法发送。

    发现问题不在账号,而是百度应用引擎(BAE)屏蔽了php的很多函数。造成phpmailer的smtp相关代码失效。

    我的解决方案是在不改变mantis代码的基础上,使用cron任务,配合简单脚本,直接对mantis的email表进行处理。本来打算使用 BAE 的消息队列进行mail发送,经过简单测试,发现 BAE 的消息队列发送email会对email的内容进行关键词审核,造成大量了email发送失败。

    没办法,最终在Sina App Engine搭建了个简单的脚本,接受外部post参数,使用seamail的quickSend进行邮件发送。

    cron任务使用 BAE 的app.conf实现。具体代码:

    
    crond :
      service : on
      crontab :
        - "*/1 * * * * php /home/bae/app/scripts/mail.php"
    
    

    发送邮件的部分代码:

  • 使用cookie + WWW-Authenticate 的登录解决方案

    之前使用过WWW-Authenticate验证的方式做过用户验证的相关功能,但仅限于个人使用后台,简单应用。在一个公司后台项目中,使用了WWW-Authenticate的验证方式,发现在退出的时候遇到些问题。

    不能简单的更改 $_SERVER['PHP_AUTH_USER']$_SERVER['PHP_AUTH_PW'] 变量。查了下线上的手册,根据网友的评论,找到了一种解决方案,是借助于 $_COOKIE 来实现的,分享这个class给大家。