Windows 下使用DiskGenius制作OS X EI Capitan 和macOS Sierra安装恢复U盘 (Recovery HD)

自己的macbook pro前段时间出了故障需要重装系统,后来发现所有的教程里都是在macos下面通过dmg镜像来制作启动U盘的,这对于一个macos已经进不去的我来说没有任何用处。还有的方法是通过一个可以在windows写HFS+分区的软件,那个软件我忘了名字,据说可以用,不过缺点是速度超级超级慢。

所以在各种困难之后,我最终还是选择了路由器上高速vpn,网络恢复了我的macbook。时间也不算太长吧,主要是vpn质量好。

后来为了避免再次出现这种情况,在系统恢复之后,我马上做了一个含有OS X EI Capitan和macOS Sierra安装镜像的U盘,并使用DiskGenius做了磁盘镜像。这样如果还有跟我一样遭遇的人,就可以在windows下使用这个软件直接制作可以安装上面两个系统的U盘,并且速度非常快。


DiskGenius 专业pojie版 下载

地址1:http://www.upantool.com/qidong/2012/DiskGenius_3.7.1.html

备用网盘2:链接: https://pan.baidu.com/s/1qY6NQ00 密码: acbp


恢复镜像网盘下载地址:

链接: https://pan.baidu.com/s/1eRU844E 密码: 13g7

镜像名称:Install MacOS.vdi


使用方法:

  1. 首先打开DiskGenius,挂载我们的镜像文件

  2. 然后选择工具/克隆硬盘
  3. 然后分别选择我们刚才挂载的那个镜像文件为源磁盘
  4. 然后在下一步选择你准备好的U盘,然后再下一步选择按文件系统结构原样复制即可

磁盘克隆完毕之后,就可以把U盘插入到你的macbook然后开机U盘启动选择系统进行安装了!

用js解决bootstrap的列col在重新在新的一行排列时,会受到上一行列col高度影响的问题

我们经常遇到这种情况,当我们在一行(row)中放置多个列(col)的时候,新起一行的列因为上面一行有一列超高,位置发生了移动。

bootstrap官方的解决方法是在每一行的末尾,插入下面的div用来清除浮动

http://v3.bootcss.com/css/#grid-responsive-resets

其中, visible-xs-block 是可以改变的,改变成你每个列用的栅格种类,比如你所有的栅格用的是 col-lg-4 (如上图),你就需要改成 visible-xs-block

但是这样,我们需要对每一行都做处理,这不适合下面两种情况

  1. 如果每一列是由程序(比如PHP)自动生成的,没办法手动添加
  2. 每一列用了多种栅格,比如 col-md-6 col-lg-4 ,手动很麻烦

下面我编写了一个js来快速解决这个问题,首先我们把所有需要处理的栅格都加上 col-split 的class,然后把下面的js代码放在合适的位置让他能够执行即可。

添加代码完成后,刷新页面,我们想要的样子就出现了。

上面的js代码支持使用多种栅格的列,比如 col-md-6 col-lg-4 ,他会在合适的位置自动插入,效果如图

在mac上使用vmbox映射本地目录开发laravel时,解决storage目录Permission denied的问题

我目前使用vmbox中的ubuntu虚拟机共享代码目录来开发laravel,在这期间遇到一个古怪的问题,就是发现storage目录下面的一些文件虚拟机里的php-fpm貌似没有权限(Permission denied),包括但不限于storage/app,storage/logs等。

而当我在mac中把这些目录的权限改为777后发现并不能解决问题。其中在storage/framework/cache中,php-fpm的确拥有了在这个目录创建二级目录的权限,但是貌似在他自己创建的目录中,php-fpm又并没有w权限了。

后来登录到ubuntu中测试发现,php-fpm在cache文件夹创建了缓存索引文件夹,所有者居然是root的,而且的确没有其他人的w权限。后来又经过其他测试我发现,在vmbox的共享目录中,无论你在虚拟机里使用哪个用户创建什么文件,它的所有者都是root:root,权限也都如下图所示。

后来这个问题用了很多方法,包括mac这边设置用户组,ubuntu设置用户组,但都没有很好的解决。后来想了一个终极办法,就是让php-fpm以root的权限运行。解决方案参考:https://onlyke.com/html/883.html

让php-fpm以root的权限运行

注意,本方法仅用于开发环境来解决一些奇怪问题或者方便使用,请勿在生产环境让php-fpm以root身份运行,否则一切后果自负。

  1. 编辑/etc/php/7.0/fpm/pool.d/www.conf,把user和group修改为root
  2. 编辑/lib/systemd/system/php7.0-fpm.service,在ExecStart的 --nodaemonize前面加上 --allow-to-run-as-root,就像下面这样
  3. 执行命令
  4. 重启php-fpm即可
  5. 最后,可以通过ps命令来查看效果

    可以看到,php-fpm已经以root身份运行了。

Chrome 49低版本或者其他浏览器访问HTTP2网站出现ERR_SPDY_INADEQUATE_TRANSPORT_SECURITY

问题跟我想的一样,是因为加密的方式被拒绝导致的

解决方式,在nginx.conf中设置

这个是CloudFlare 使用的配置

参考下面的文章

https://imququ.com/post/why-tls-handshake-failed-with-http2-enabled.html

Nginx+PHP-fpm中开启日志,error_log的有关问题

要保障PHP在error_log中输出日志,要确保以下设置为正确的值

php.ini中

php-fpm.conf中error_log覆盖了php.ini中的设置

pool.d/www.conf中,确保开启输出(非常重要)

 

Ubuntu 安装VirtualBox增强功能

首先保证虚拟机已经挂在增强功能的安装盘

以下命令均需要使用root用户登录或使用sudo执行

然后安装下面的软件包

然后,挂载光盘

最后,打开目录执行安装脚本即可,安装完之后需要重新启动