手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 注册 | 登陆
浏览模式: 标准 | 列表全部文章

折腾两小时,sablog基本迁移成功

 折腾了两个小时左右,sablog基本迁移成功(不过我是在全新代码下的,我线上的代码有过一部分改动,估计到时候还要折腾一下)

主要是几个地方:

1、db_mysql类。目前我凡是用到的地方,都已经判断过了。可能还有坑

2、preg_replace_callback,点了很多页面,目前也基本上都已经OK了。

原程序用的是error_reporting(0),所以一些notice,warning都不会显示 。所以极大的可能是一出错就白屏。我改成error_reporting(7),大部分问题都解决了。

准备什么时候迁移的时候再试一下。(服务器上还有不少站点。还要备份数据库,太累了,升还是不升,这是个问题!)

还好没有手贱升级PHP7

本来想将当前的服务器升级到PHP7的,在临最后动手的一霎那,突然想起,sablog用的是mysql_*的函数,在PHP7已经彻底没有了。

感慨一下没有手贱啊。不然就死啦死啦的了。准备这两天将原来的mysql类改用PDO实现一下,然后本地跑一下,看看PHP7是不是可以运行。如果OK的话,准备升级!

mac 清理dns cache

 之所以提起这个功能,是因为在windows下面太方便了,进入cmd窗口:ipconfig /flushdns ,轻轻松松处理

在mac上面就没有这么方便了,很久前,用“dscacheutil -flushcache”就可以解决了。但自从升级后这些命令就没有了,你必须得用这个组合才能清理干净:
XML/HTML代码
  1. sudo dscacheutil -flushcache  
  2. sudo killall -HUP mDNSResponder  
这不是什么新命令。
 
为什么会再提起它?是因为我在家里dmz了我的mac mini,然后,路由器自动拨号后,mac mini也在dnspod 上更新了IP,但因为我在几分钟前刚访问绑定在家里mac上的域名。导致dns信息被cache,所以才需要清理它。
 
将上面的内容清入到一个sh文件。chmod +x 一下,再ln -sf 到/usr/bin目录下,就可以全局调用了。灰常方便
 

Mac PHP7 Lumen Event冲突

在使用Lumen进行开发的时候。如果你使用:./artisan的时候报错:Cannot declare class Event, because the name is already in use。检查一下LOG发现是:

XML/HTML代码
  1. [2016-12-07 15:27:37] lumen.ERROR: ErrorException: Cannot declare class Event, because the name is already in use in /home/web/vendor/laravel/lumen-framework/src/Application.php:661  
  2. Stack trace:  
  3. #0 [internal function]: Laravel\Lumen\Application->Laravel\Lumen\Concerns\{closure}(2, 'Cannot declare ...', '/Volumes/docume...', 661, Array)  
  4. #1 /home/web/vendor/laravel/lumen-framework/src/Application.php(661): class_alias('Illuminate\\Supp...', 'Event')  
  5. #2 /home/web/vendor/laravel/lumen-framework/src/Application.php(631): Laravel\Lumen\Application->withAliases(Array)  
  6. #3 /home/web/vendor/laravel/lumen-framework/src/Application.php(766): Laravel\Lumen\Application->withFacades(true)  
  7. #4 /home/web/vendor/laravel/lumen-framework/src/Console/Kernel.php(54): Laravel\Lumen\Application->prepareForConsoleCommand(true)  
  8. #5 [internal function]: Laravel\Lumen\Console\Kernel->__construct(Object(Laravel\Lumen\Application))  
  9. #6 /home/web/vendor/illuminate/container/Container.php(794): ReflectionClass->newInstanceArgs(Array)  
  10. #7 /home/web/vendor/illuminate/container/Container.php(644): Illuminate\Container\Container->build('App\\Console\\Ker...', Array)  
  11. #8 /home/web/vendor/laravel/lumen-framework/src/Application.php(211): Illuminate\Container\Container->make('App\\Console\\Ker...', Array)  
  12. #9 /home/web/vendor/illuminate/container/Container.php(231): Laravel\Lumen\Application->make('App\\Console\\Ker...', Array)  
  13. #10 /home/web/vendor/illuminate/container/Container.php(746): Illuminate\Container\Container->Illuminate\Container\{closure}(Object(Laravel\Lumen\Application), Array)  
  14. #11 /home/web/vendor/illuminate/container/Container.php(644): Illuminate\Container\Container->build(Object(Closure), Array)  
  15. #12 /home/web/vendor/laravel/lumen-framework/src/Application.php(211): Illuminate\Container\Container->make('Illuminate\\Cont...', Array)  
  16. #13 /home/web/artisan(32): Laravel\Lumen\Application->make('Illuminate\\Cont...')  
  17. #14 {main}  

看了一下,Application.php的第661行对应的方法,我靠。

PHP代码
  1. /** 
  2.      * Register the aliases for the application. 
  3.      * 
  4.      * @param  array  $userAliases 
  5.      * @return void 
  6.      */  
  7.     public function withAliases($userAliases = [])  
  8.     {  
  9.         $defaults = [  
  10.             'Illuminate\Support\Facades\Auth' => 'Auth',  
  11.             'Illuminate\Support\Facades\Cache' => 'Cache',  
  12.             'Illuminate\Support\Facades\DB' => 'DB',  
  13.             'Illuminate\Support\Facades\Event' => 'Events',  
  14.             'Illuminate\Support\Facades\Gate' => 'Gate',  
  15.             'Illuminate\Support\Facades\Log' => 'Log',  
  16.             'Illuminate\Support\Facades\Queue' => 'Queue',  
  17.             'Illuminate\Support\Facades\Schema' => 'Schema',  
  18.             'Illuminate\Support\Facades\URL' => 'URL',  
  19.             'Illuminate\Support\Facades\Validator' => 'Validator',  
  20.         ];  
  21.   
  22.         if (! static::$aliasesRegistered) {  
  23.             static::$aliasesRegistered = true;  
  24.   
  25.             $merged = array_merge($defaults$userAliases);  
  26.             foreach ($merged as $original => $alias) {  
  27.                 class_alias($original$alias);  
  28.             }  
  29.         }  
  30.     }  

。。。。。怎么可以这样写呢?也不担心代码会不会冲突。就直接这样了??怪不得很多代码识别不了。更痛苦的是,前段时间为了测试命令行下的多线程,加载了:brew install php70-event,直接就冲突了。

不得已,brew remove php70-event。反正这个我也几乎用不到。哎~

所幸,搞定

 

 

 

Tags: lumen, event

Mac下载神器aria2

 说实话,本来不想转这篇博客的,但真的被百度搞死了。在百度云盘上下载东西,如果超过一定的大小,就非得让你装它的客户端。好吧,这我也忍了。然而装了客户端后,输入用户名和密码的登录的时候,一直提示:你当前的登录环境不安全。我在外面你说不安全也就算了,我在家里也还说不安全?忍无可忍的删除了。

然后有个朋友也是类似的情况,最后他曲线救国,先绑定一个社交账号,然后用社交账号登录。。。然而,我并不想这样。

Aria2是别人介绍的,于是我就google了一把,找到这篇文章。。http://www.jianshu.com/p/1290f8e7b326,转一下吧。也许有需要的人呢。

以下内容来自原网站:

从Windows上转过来,一直没找到一个和IDM一样优秀的下载软件,直到遇见「aria2」。

什么是aria2

aria2官网介绍:

aria2 is a lightweight multi-protocol & multi-source command-line download utility. It supports HTTP/HTTPS, FTP, SFTP, BitTorrent and Metalink. aria2 can be manipulated via built-in JSON-RPC and XML-RPC interfaces.

简单来说就是有以下特性:

  • 支持多协议: HTTP / HTTPS,FTP,SFTP,BitTorrent和Metalink
  • 多线程连线:aria2 会自动从多个线程下载文件,并充分利用你的带宽;
  • 轻量:运行时不会占用过多资源,根据官方介绍,内存占用通常在 4MB~9MB,使用BitTorrent 协议,下行速度 2.8MB/s 时 CPU 占用率约 6%;
  • 全功能 BitTorrent 客户端,可以当BT客户端使用,抛弃迅雷。
  • 支持 RPC 界面远程控制

aria2的安装与使用

安装

方法有二

  1. aria2官网下载对应系统的安装包,双击安装。
  2. 使用homebrew安装: brew install aria2

配置

aria2 提供两种方式使用,一种是直接命令行模式下载,不推荐使用这种方法,推荐使用另外一种 RPC 模式,这种方式 aria 启动之后只会安静的等待下载请求,下载完成后也只会安静的驻留后台不会自动退出。而使用RPC模式推荐做一个配置文件方便使用。
新建一个名为aria2.conf的配置文件,复制下面的内容到文件内。

    #用户名     #rpc-user=user     #密码     #rpc-passwd=passwd     #上面的认证方式不建议使用,建议使用下面的token方式     #设置加密的密钥     #rpc-secret=token     #允许rpc     enable-rpc=true     #允许所有来源, web界面跨域权限需要     rpc-allow-origin-all=true     #允许外部访问,false的话只监听本地端口     rpc-listen-all=true     #RPC端口, 仅当默认端口被占用时修改     #rpc-listen-port=6800     #最大同时下载数(任务数), 路由建议值: 3     max-concurrent-downloads=5     #断点续传     continue=true     #同服务器连接数     max-connection-per-server=5     #最小文件分片大小, 下载线程数上限取决于能分出多少片, 对于小文件重要     min-split-size=10M     #单文件最大线程数, 路由建议值: 5     split=10     #下载速度限制     max-overall-download-limit=0     #单文件速度限制     max-download-limit=0     #上传速度限制     max-overall-upload-limit=0     #单文件速度限制     max-upload-limit=0     #断开速度过慢的连接     #lowest-speed-limit=0     #验证用,需要1.16.1之后的release版本     #referer=*     #文件保存路径, 默认为当前启动位置     dir=/User/xxx/Downloads     #文件缓存, 使用内置的文件缓存, 如果你不相信Linux内核文件缓存和磁盘内置缓存时使用, 需要1.16及以上版本     #disk-cache=0     #另一种Linux文件缓存方式, 使用前确保您使用的内核支持此选项, 需要1.15及以上版本(?)     #enable-mmap=true     #文件预分配, 能有效降低文件碎片, 提高磁盘性能. 缺点是预分配时间较长     #所需时间 none < falloc ? trunc << prealloc, falloc和trunc需要文件系统和内核支持     file-allocation=prealloc

默认下载路径的「/Users/xxx/Downloads」可以改为任何你想要的绝对路径。此处写为 Downloads 目录,xxx 请自行替换成你的 Mac 用户名,然后保存,退出编辑器。

启动

在终端里面输入 aria2c --conf-path=<PATH>,将PATH换成刚刚保存的aria2.conf的绝对路径。比如说,aria2.conf是放在文档内,则PATH就是/Users/xxx/Documents/aria2.conf。可以使用 -D 参数使Aria2在后台运行,即使关闭终端也不会停止运行。
完整的运行命令如下: aria2c --conf-path="/Users/xxx/Documents/aria2.conf" -D,终端里输入这个aria2就启动了。关机或者关闭了aria2之后,重新启动都要输入这个命令,所以请保存好这个命令

如何关闭aria2呢,很简单:

可以到活动监视器中找到 aria2c 杀掉,也可以在终端输入kill aria2之后按 Tab 键,aria2 会自动变成进程号,回车即可杀掉它。

使用

启动完成就需要开始下载了,这就需要一个管理界面了。有两个很优秀的在线工具YAAWAria2 WebUI
。两个都很优秀随便选一个就好,我使用的是后者。
注: YAAW需要在界面的设置里输入http://localhost:6800/jsonrpc,Aria2 WebUI打开可直接使用。

高阶使用

如果经常在百度云上下载东西,配合BaiduExporter这个扩展就会非常方便好用了。
首先下载扩展,Chrome,Firefox和Safari都有:

  • Chrome
  • Firefox
  • Firefox(XPI):下载后打开 Firefox,Ctrl/Command + O 打开选择文件对话框选中 XPI 包即可安装。
  • Safari:下载后双击安装即可。
    安装完成后进入百度云的下载界面,会发现网页上多出一个「导出下载」按钮,点击它弹出的「ARIA2 RPC」就自动添加到你的下载队列里了。

大小: 111.35 K
尺寸: 500 x 188
浏览: 1422 次
点击打开新窗口浏览全图

感谢

这篇文章主要参考了少数派里的Mac 上使用百度网盘很烦躁?花点时间配置 aria2 吧这篇文章和BaiduExporter作者的介绍。感谢他们的总结和付出。

文/Vaayne(简书作者)

原文链接:http://www.jianshu.com/p/1290f8e7b326
---EOF---
原文中还有一张图,是用了Aria2 WebUI进行管理的,我是在命令行下。所以就没有贴。
原文还有件事没有提,那就是Chrome插件已经失效了,所以,你得到作者的github上去下载:https://github.com/acgotaku/BaiduExporter,并且开启Chrome的允许本地扩展(github的readme里有使用方法)
 
为什么插件会失效呢?可以看这个链接:查看链接(我真的找了半天才找到这个的)

 

Tags: aria2