orvice

49 posts
Docker

记一次作死升级Docker/gitlab失败

前言 今晚心血来潮,在机器上apt-get update&& upgrade了下,发现了个docker-ce的更新,然后作死发现我的docker 版本还是17.x,都8102年了,让人知道我还在用17.x多不好,于是作死升级了docker-ce. ps: 我使用的gitlab image gitlab开始挂啦 升级后,人工start了一些没有start成功的容器后,打开gitlab,发现500了, 于是发现事情不对啦… 尝试恢复 作死的是,我尝试docker-compose pull了新镜像,然后重启重新创建,还是挂得… 恢复备份试试看咯 幸好此镜像自带了每天备份打包到本地附送备份至s3,所以虽然挂了,我一点也不慌。 查看了下backup,最近一个备份是今日早上9点,看来问题不大,于是开始恢复之旅。 恢复之旅 首先,安装官方文档,尝试第一次恢复 docker-compose run

  • orvice
Docker

使用Docker 打包部署Laravel 应用

Laravel是目前最流行的PHP框架,特点是开发速度快,当然部署也麻烦。 传统部署流程: Composer安装依赖 使用Apache/Nginx进行部署Laravel的Web接口 使用Supervisor作为Laravel队列服务的进程守护 设置crontab定期执行Laravel的定时任务 看起来,每次部署Laravel还是挺麻烦的,有了Docker后,我们可以使用Docker的特性来集成基本的部署操作,并且由于容器的特性,还可以使的应用跑的时候更加安全。 使用Apache打包基础镜像 这里我们使用的基础镜像为: php:7.1-apache,之后可以使用docker-php-ext-install安装我们需要的PHP扩展。 完整的Apache基础镜像Dockerfile参见Github. 使用Composer安装依赖 # 拷贝代码到html目录 COPY . /var/www/html # 安装Composer RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer

  • orvice
Debian

使用Docker安装Gitlab

对于自己的私有项目来说,一直托管在bitbucket,最近开始研究CI,虽然Bitbucket现在也有pipelines了,也有免费额度,但是每个月的build time可能对于自己不是很够用,不是就开始捣鼓了Gitlab. Gitlab虽然有一个一键安装脚本,但是依赖太多,会将本地环境,包括nginx都替代掉,这时候用Docker在合适不过了,这里我们以Debian/Ubuntu下安装Docker以及docker-compose为例。 安装 Docker apt-get install curl curl -fsSL https://get.docker.com/ | sh curl -fsSL https://get.docker.com/gpg | apt-key add - 安装docker-compose docker-compose可以使用pip安装,所以这里我们先安装pip. apt-get install python3-setuptools easy_

  • orvice
Apache

用Nginx反代运行于Apache的Laravel

很早之前,我把自己的vps从apache切换到了nginx,那时候是因为vps性能不好,能省就省。 后来经常遇到php5-fpm挂掉等各种情况导致跑php程序经常会502,于是,从去年开始,我开始将我的php站点逐步切换至apache,并使用nginx进行反代。 这时候,其实很想吐槽php,还得弄个apache来跑…. 后来,当开始反代一些laravel写的网站的时候,遇到了一些坑,所以写这篇文章记录下。 Apache配置 假设我们这里用9000端口在apache监听了一个vhost,具体配置就不写了XD Nginx配置 http的vhost配置: server { listen 80; server_name example.com; location / { proxy_pass http://127.0.0.1:9000; proxy_set_header Host $host:$server_port;

  • orvice
golang

ss-panel v3

唔,最近这几个月,断断续续花了挺长时间的重构ss-panel v3,主要是中间有段时间加班太多,搞得我每啥时间继续写,于是花了非常多的时间才完成v3. v2的真的好low,于是就像根据mvc模式重构下v3。 此次重构的feature: MVC模式,实现了php代码和视图的分离 Composer进行依赖管理 配置文件分离到.env文件 优雅的连接 安全性提升 多主题支持 嘛,其实主要是这半年来基本都是写golang,php很少写,于是也花时间复习下。然后说下用到的一些轮子吧: Slim3: 路由转发,轻量级的php micro framework Eloquent ORM: Laravel用的model,这么好的轮子当然是直接拿来用啦。 smarty: 一个比较经典的php模板吧,其实各种php模板引擎feature都差不多。 其他一些轮子不是重点就不列了。 魔改的shadowsocks-go 然后,就是重构的时候,自己改了个manyuser版本的shadowsocks-go. 为什么不用Python版本改呢,因为我不会蛇语233 要说go版本的feature吧,其实都是然并卵。

  • orvice
Blog

从独立博客到微信公众号

此post缘由2条@wzyboy @yegle的tweets的感慨。 Part 0 此post比较杂,只是想吐槽下。 在Twitter/微博还没火的时候,很多人写blog的频率还是很高的,那时候,Google Reader是很多人的获取信息的重要工具,包括我。 依稀记得我是从09年的暑假开始成为Google Reader的重度用户的,直到GR关闭后,仍然有Feedly替代了GR成为阅读RSS的工具。 然而现在,或许说大概10年左右开始,好多人的blog都开始长草,包括我,一年能发几篇post就不错了吧,就好像我也时隔好几个月再次写了这篇blog。 如果说,Google Reader不关闭,而是开启收费功能,或许将会是我最愿意付费的工具,没有之一,然而它关闭了,连个收费选项都没有。 在几个月前,我开始觉得WordPress太大了,想自己弄个简单的blog系统,然后恢复以前的更新频率,现在看起来似乎有点233。 Part 1 好吧,现在该说到微信公众号了,这或许是腾讯这几年最成功的产品了吧,诞生了许多以微信公众号服务的公司。 作为一个比较依赖国外服务的用户,

  • orvice
Windows

Windows带来的一些奇怪的习惯

最近一个大学女同学也买了个MacBook Air,然后微信上跟我说,各种不会用,是不是只有一个分区啊什么的,然后就想起了之前一个推油的Macbook入手文章人家家人第一次用就觉得好熟悉,然后为啥用过win的人,就会如此的不习惯,然后我就想写下这篇blog吐槽下win用户的几个奇怪的习惯,或者说错觉? 为什么要分区?分那么多区干嘛? 自从我原来的PC本换了个SSD,256G的,我就只给win8弄了一个区,也就是C盘。然后,每次有人看到我只有一个C盘就各种奇怪,问我为啥只有一个盘。 在*nix下,一般都是只有一个区,当然也可以分别给/boot /home分别挂载,这样迁移数据或者换系统的时候资料丢得少,/boot分区单独分也比较安全写,而且/boot分区也挺小的。 分区最初目的应该是为了方便管理文件,但是在C盘下,或者~文件夹下新建目录不也是可以方便管理文件?新建那么多区,会造成每个分区的剩余空间浪费的情况发生,显然,win下分CDEFG太多分区没啥意义,但是win用户就是已经习惯了。 软件不要装C盘?装多了会卡? 这个真的是最让人无语的,为啥软件不能装C盘?Google的大部分win软件都是默认只能装在C盘,问都不问的。

  • orvice
MacBook Air

入手MacBook Air

在和某犬科动物@fdb713谈人生的时候,然后就有点想买个Mac,刚好这个2个月有了些收入,于是决定买个MacBook Air。 由于比较穷,买不起MacBook Pro with Retina Display,还是买个Air吧,前几天去了下电子城,看了下Pro和Air,感觉Air真的好薄,然后由于我们猫科动物眼睛不是很好,没觉得Retina屏幕有想象的那么棒,然后好像也比较喜欢Air,于是就决定买Air吧。 问了几个大大,都说8GiB的Ram很有必要,而且之前的笔记本也是8GiB,所以还是买定制的Air。 淘宝下单后,第二天不停的查快递,终于到了。然后拆了后,查了下电池循环啥的,基本确定没问题。 硬件 薄自然是没话说,屏幕13.3存,但是由于分辨率的原因,不会觉得小,比之前的1366*768好多了。充电啥的苹果做得确实很人性化啥的,那个耳机孔开始插的时候没用力不能完全插进去,还以为是不兼容啥的orz… 开始用触摸板,有点不习惯,比较win下鼠标用多了,

  • orvice
Git

在Windows上使用Git

首先,下载Git for Windows. 然后安装基本就是一步一步点击Next. 设置 然后,打开Git Bash分别设置Username和email git config –global user.name “Your Name Here” git config –global user.email “your_email@example.com” 设置SSH登陆 ssh-keygen -t rsa -C “you@exmaple.com” 完成后,一般会生成一个文件在C:/user/username/.ssh/id_rsa.pub 如果是用Github,将这个文件放到这里即可。

  • orvice
Nginx

解决WordPress只显示一个主题的问题

最近一年换了挺多VPS,连Linux发行版也试过不少,当然,也从Apache转到了Nginx。刚刚用Nginx的时候,发现了个问题,WordPress后台主题管理,只有一个主题,之前安装的主题都不见了,Google之,原来是php的scandir函数被禁用了。 解决方法如下: 首先找到php.in文件,可以用find命令搜索下。 然后编辑: vim php.ini 找到disable_functions这行,然后将 disable_functions = passthru,exec,system,scandir,chroot,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_restore,dl,openlog,

  • orvice
Google

bye,Google Reader

好吧,这篇文章发得太晚了,GR要关闭都多久的新闻了。 GR是我每天花时间最多的Web 2.0产品,没有之一。 Reader一直都是免费的,Google当然有权利关,但是多少人变成了谷黑,呵呵。 为什么说Google Reader不可替代? 因为,GR保存了很多已经消失的文章,还有GR的稳定性不是其它阅读器比得上的,Feedly用了几次,手机端刷新办,网页版多次无法使用。 最后,发张图,纪念下。

  • orvice
.Me

继续用6.98刀续费.ME域名

众所皆知,.Me域名不便宜,在没有优惠码/活动的情况下,在Godaddy注册续费一个.me域名要将近20刀,整整比.com域名贵了将近两倍。但是,很多人在之前应该知道以及用这种方法来续费注册.Me域名: 在Godaddy买个日历或者1.99刀*3个月的空间,然后和.Me域名一起放入购物车,这样域名的价格就会变成1.99刀,这样就能用8刀以内续费.Me域名,几乎和.Com域名一样便宜了。 但是在去年暑假最后吧,Godaddy已经不能以这种方式来注册续费域名了。 最近需要续费几个.Me域名,就算是优惠码续费也是要十几刀,Google中,发现了在Godaddy的Reseller续费,还可以用此方法。如图,我通过买了一年的4.99刀的Personal Calender,就可以用1.99刀来续费.Me域名啦^^ 附上几个Godaddy的Reseller: http://www.securepaynet.net/?prog_id=

  • orvice
Arch

ntfs分区文件夹含有中文名文件不能显示的问题

标题无法完全表达我的意思,我的意思是这样的: 很多Linuxer都是双系统吧,然后就需要在Linux下挂载写ntfs分区,而很多人可能都是用ntfs-config来自动挂载的。这次装完Arch后,就遇到了这样的一个问题,假设在 /media/Media 下有一些文件文件夹名含有中文名,那么,就无法显示/media/Media 下的内容,ls命令就会出现以下错误: [orvice@localhost ~]$ ls /media/Media ls: reading directory /media/Media: Invalid or incomplete multibyte or wide character Google找到了个解决方式,人工挂载: ntfs-3g -o locale=UTF-8 /dev/sda5 /media/Media

  • orvice
VPS

解决vps+webmin下WordPress升级提示输入FTP的问题

Pic Via 我不是大大,不要吐槽我用webmin什么的。自从上次换了vps后,因为host的网站有点多,所有就用webmin来管理,于是遇到了个问题,我的博客,升级的时候都会提示需要输入FTP,而我又没有弄FTP,于是就这样,两个月这个博客都在长草。 太懒了是不对的,于是刚刚想升级WordPress,于是Google,找到了方法。 之前我也想过是不是权限的问题,于是执行: chmod 777 -R wordprssdir 结果还是不行,然后Google到了某个同学的博客,似乎就是我要的答案。 可能是因为跑PHP进程的用户名和WP文件夹的所有者不同。于是用chown命令更改了文件所有者,命令用法如下: chown -R www * 就是把目录下所有文件和文件夹的所有者改成叫做www的用户。这样再去尝试WP的自动升级,一键升级就能顺利进行了。 注意的是,使用webmin的同学,运行php的不是www,而是每个域名的账户。 比如,我的域名是:orx.me 那么运行php的用户就是orx:

  • orvice
Arah

升级到了Windows 8 Pro

Windows 8发布前,在国庆节我就已经装上去了,其实感觉还不错,没有有些人说的那么糟糕,同时也有我要的升级理由: 开机速度提升 多了个Metro,但是没有取消传统桌面 开始菜单本来用户体验就不好,而且用了几个星期下来,没有开始菜单感觉没有影响 很多操作,比Win7流畅多了 可以用Visual C++,妈妈再也不用担心我不能写c++作业了(大误 当然,还有一个很重要的升级原因:价格!优惠升级只要98元。在申请升级优惠的时候,中国是不用输入之前的key的,看来是微软故意给中国的漏洞? 还在纠结正版盗版的同学,可以看下知乎的这个问题的回答。 购买Key过程 这里不得不说微软是脑残了,好多人下载了升级助手,到了最后一部付款的时候傻了吧。只能用信用卡以及PayPal付款,而两个都是需要双币信用卡的。这个不是很多中国人有的吧。但是,其实,还是有办法支付的,需要的是两个Paypal帐号以及一张开通网银的银联卡。 首先,注册两个国际Paypal帐号,然后,都绑定银联卡,然后用Paypal账户A付款17美元(

  • orvice
Android

新兴流行Android ROM -AOKP和CyanogenMod有何区别

Android用户量最大的ROM CyanogenMod是基于AOSP (Android Open Source Project), CM一般都包含很多额外的特性并带来更好的用户体验,CM支持超过70款设备,用户量非常庞大,很多国内的ROM都是基于CM的! 既生愈必何生亮?Android诞生了另一个ROM,名曰 AOKP (Android Open Kang Project),AOKP一开始是一个计算机科学专业的学生发起而现在已经成为了一个流行强大的项目成为了CyanogenMod强有力的竞争者。 那么,两者有和不同? 粗略的看两者,并没有什么太大的不同。而仔细看的话(特别是设置菜单),就会发现第一个主要不同。当CyanogenMod 9还是把每个设置选项放在各自的类别下是,AOKP已经可以自定义系统设置在一个地方– ROM Control! 可以确定的是,AOKP的特性多于CyanogenMod 9. 从下图中,可以发现,AOKP做了很多修补! AOKP特性比CM9多,但是不要忘记CM要做的工作比AOKP多。CM一直尝试为旧款Android设备带来最新的系统,因此,CM的首要目标是带来新的Android,然后再去完善增加各自特性。 AOKP的体验

  • orvice
Proxifier

Windows上的代理方案-Proxifier

在Ubuntu安装Dropbox教程一文中,我提到了Ubuntu下使用proxychains来给Dropbox做代理,在Linux下,使用proxychains以及tsocks代理十分方便,方便使用某些不提供Proxy功能但是国内访问不了的软件,其实Windows也有类似的软件,就是Proxifier。 Proxifier的 官方网站 软件截图。 官方有提到: Here you can download a fully-functional copy of the software and use it for 31 days for free. You will need to register Proxifier if you decide to continue using it beyond the

  • orvice
Linux

Linux下五个流行的Webmail

pic via Webmail是一个基于网页的邮件客户端,和传统的邮件客户端不同的是,Webmail是独立于操作系统,你仅仅只是需要一个浏览器就可以访问email. Webmail 和传统的邮件客户端一样,有着相同的功能例如检查邮件,撰写、转发、存档邮件,垃圾邮件控制,邮件扩展支持等等其它功能。目前有很多免费的Webmail软件,它们大多数是基于Linux/UNIX平台。 这篇文章将介绍讨论五个流行的Webmail客户端以及它们的特性。排序部分先后,此文暂不讨论那一个Webmail是最佳选择。 SquirrelMail: SquirrelMail是最流行的基于PHP的免费的,开源的Webmail. SquirrelMail有着众多强大的插件以及特性。在共享主机环境下,SquirrelMail平台变现不错。SquirrelMail很容易进行配置和安装,SquirrelMail已经内置了PHP支持以及IMAP和SMTP协议。但是,SquirrelMail的GUI图形化界面表现得不是很棒。 下面是SquirrelMail的一些特性:- 拼写检查 - 邮件过滤器系统(不知道有没有Gmail的过滤器强大) - 基于网页的管理系统 - 日历以及地址簿 - 支持文件夹管理 **RoundCube:**![](http:

  • orvice
Dropbox

Ubuntu安装Dropbox教程

Dropbox是我最喜欢的云服务,没有之一。在一次失误分区中,我几乎丢了硬盘的全部数据,而Dropbox帮我恢复了重要的文件。在写各自东西的时候,Dropbox是最合适的备份工具,没有之一。 Dropbox是少见的支持Linux的云同步工具,在Linux安装Dropbox,由于第一次启动需要联网下载,所以不同于windows安装那么简单,需要设置代理来进行第一次启动Dropbox. 本文介绍Ubuntu 11.10 64bit下面安装Dropbox的详细过程。 准备工作,先下载Dropbox,从Ubuntu软件中心下载Dropbox,然后打开终端执行: sudo apt-get install proxychains 然后准备SSH代理,可以使用图形化界面的gSTM,可以参考这篇文章配置SSH。 我配置好的代理服务器是:127.0.0.1:8080 接下来更改proxychains的代理设置,终端执行: sudo gedit /etc/proxychains.conf 最后一行更改为: socks5 127.

  • orvice
Amazon

入手Kindle

买的Kindle在今天终于到了,因为已经做好了海淘时间长的心里准备了,所以压力不大。 本来就有想过要买一个Kindle,因为想看的书挺多的,实体书带来带去不方便,已经特殊国情下下载电子书潜规则,于是决定入手个Kindle。纠结了下,最后决定入手的是Kindle Keyboard(即Kindle3)广告WIFI版本,Touch版本感觉不是很方便,而且第一代Touch可能不是很方便,Keyboard版的看起来也比较漂亮,Kindle4有些不方便,Kindle DX就不用考虑了。 转运过程 二月3号晚上下订单,三月2号收到Kindle。历时28天。 亚马逊下单后,因为赶上了周末,所以延迟了两天,2月8号才寄到百通的仓库。 9号确认入库后,10号生成转运指令。然后开始了漫长的转运过程: 由于Kindle含有电池,于是EMS走陆运,花了8天才到福州。 简单评测 显示效果很赞,很细腻,和纸质书差不多,看起来很舒服。 关于广告,其实是没有影响的,屏保会出现广告,目录会出现广告,看书的时候没有广告,广告基本可以忽略。

  • orvice
Apt-get

在Ubuntu下使用Apt-Get安装Google Chrome

Windows安装软件习惯是下载EXE文件,双击安装,当然,现在小白还可以用360软件管家什么的来一键安装,刚刚切换到Ubuntu时,我也是喜欢下载deb文件安装,后来习惯了apt-get,方便了不少,昨天从openSUSE重装回Ubuntu,第二件事情当然是装Chrome了,于是Google出了apt-get安装Chrome的方法。 打开终端,输入: wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add - 等待源添加成功,输入: sudo gedit /etc/apt/sources.list.d/google.list 接下来就会打开gedit编辑google.list,输入:

  • orvice
Dropbox

博客恢复新年快乐以及一些琐事

首先,各位新年快乐,虽然已经晚了好久了。之前博客空间商出事故了,然后VPS宕掉了一两天,恢复了以后我也马上开始修复,但是作为一个VPS,Linux小白,弄了好久。由于新年回老家了,没有宽带,虽然给力的电信有信号,而且是3G信号,但是手机骄傲出问题了电信卡用不了了,于是新年期间我在联通的2G网路中度过。 一、新年 新年听开心的,和小学同学再次见面,有几个女生有男朋友了,有个比我大一届的小学学姐已经结婚了。sigh 我结婚嘛,现在才大一啊喂喂。 新年农村很热闹,每天我还是睡到12点,晚上一般会看美剧。解决了Sherlock第一季,第二季不是很想看,不是很符合我的口味,他们两个绝对有基情,电影福尔摩斯也是充满了基情。 然后就是和表弟打扑克什么的,还有各种亲戚的各种活动。有些事情忘记做了。。Damn~ 二、VPS恢复记 VPS服务商恢复后,博客打不开,Kloxo后台进入不了,只有SSH可以连接,于是我开始了艰辛的修复之旅。 Google了下,

  • orvice
Android

悲催的Android续航

pic via 今天昨天中午刚刚起床没多久,接到同学电话,然后要一起去看电影大侦探福尔摩斯2,于是,我拿起手机,开始充电,拿起Pixi+一起充电的时候,发现,Pixi+提示要reset手机,然后我就reset了,然后就没有然后了,Pixi+显然已经要刷机才能继续用了,于是下午我就悲催的只带着Droid Pro去玩。 因为之前都在学校,都有时间会宿舍充电的,就算上课玩手机也是有移动电源可以用,所以我自从入了Droid Pro就没有买备用电池。今天下午要出去玩的时候,我也没有带移动电源,带着不是很方便。 So,我就这样,带着充满电的Droid Pro出门了,杯具就开始了。 一开始,试着用我之前没有噢试过的路线到中山路,于是,我等不到直接到轮渡的车,然后就做上了一辆到会展中心的车,于是,我杯具了。两个地方根本就是相差很远吗,车上,我拿出手机打开Google Map查看要在哪里下车换成其它车到轮渡,在某一站下车的时候,

  • orvice