Decorative image frame

sublime text 3安装插件

sublime相比其他编辑器最大的优点就是占用内存小。一直用idea和vscode。好久没用sublime了,今天安装了一下新版本3.2.1,想要用它开发vue。安装插件的过程中踩了几个小坑。

安装package control

使用网上说的,控制台安装方式,按ctrl + \ `,输入下面的命令

1
2
import urllib.request,os; pf = 'Package Control.sublime-package'; ipp = sublime.installed_packages_path(); urllib.request.install_opener( urllib.request.build_opener( urllib.request.ProxyHandler()) ); open(os.path.join(ipp, pf), 'wb').write(urllib.request.urlopen( 'http://sublime.wbond.net/' + pf.replace(' ','%20')).read())

阅读全文...

docker环境下php使用指南

最近由于业务原因,需要将 php7.0 升级到 7.2。升级要考虑一下几点
要满足以下需求

  1. php7.0 和 7.2 要共存,以免升级 7.2 以后出现问题,及时切换回来。
  2. 升级操作要简单,服务器数量比较多,原生方式安装太过复杂,操作步骤太多,就算携程 shell 脚本,维护起来也比较麻烦
  3. nginx 保持原样,只对项目相关的配置文件做简单调整即可。如果 nginx 变更日志处理等模块都收到牵连。

考虑到上面的因素,用 docker 显然是非常符合的。于是就开启了踩坑之旅。
主要遇到了两个问题,一个是502,还有一个是File not found。下面进行分析

阅读全文...

ubuntu更新php

服务器以前安装的 php7.0,最近开发任务中有部分插件,从 composer 安装提示需要 php7.2 的版本,才可以安装。
但是服务器的源里面没有 php7.2,最新的也就 7.0。添加 ppa 搞了一下。记录下步骤

安装 ppa 管理器

1
apt-get install software-properties-common

如果已经安装了,可以省略这一步,如果不安装,在执行add-apt-repository命令时会提示sudo: add-apt-repository: command not found

添加 ppa 源,并更新源

1
2
sudo add-apt-repository ppa:ondrej/php
sudo apt-get update

升级 php

1
2
sudo apt remove php7.0
sudo apt-get install php7.2

这样php7.2就安装上了。如果你希望保留老的版本,可以不执行sudo apt remove php7.0
如果希望连同系统一起升级可以执行下面的命令,会连同系统和其他软件一起升级到最新版,只有php会升级到指定的7.2版本。(不建议使用下面的命令)

1
sudo apt-get upgrade php7.2

扩展处理

升级了php7.2,还需要安装一下7.2的扩展比如mbstring,gd等执行如下命令安装就可以了

1
sudo apt-get install php7.2-gd

vue组件之插槽

这篇文章的写作时间是 vue2.6 发布后,因此适用于 2.6 以后的版本
插槽是 vue 组件中很重要的一环,他解决了组件内容自定义的问题。以及父子组件变量传递的问题(作用域插槽)。
在 2.6 以后的版本中,具名插槽和作用域插槽引入了一个新的统一的语法 (即 v-slot 指令),它取代了 slot 和 slot-scope 。这两个老的已经进入废弃期,为了保持平滑升级,目前还可以使用,但是不推荐使用。后期会被移除。

阅读全文...

Supervisord管理进程常用命令

Supervisord安装完成后有两个可用的命令行supervisor和supervisorctl,命令使用解释如下:

supervisord: 初始启动Supervisord,启动、管理配置中设置的进程。
supervisorctl stop programxxx: 停止某一个进程(programxxx),programxxx为[program:chatdemon]里配置的值,这个示例就是chatdemon。
supervisorctl start programxxx: 启动某个进程
supervisorctl restart programxxx: 重启某个进程
supervisorctl stop groupworker: 重启所有属于名为groupworker这个分组的进程(start,restart同理)
supervisorctl stop all: 停止全部进程,注:start、restart、stop都不会载入最新的配置文件。
supervisorctl reload: 载入最新的配置文件,停止原有进程并按新的配置启动、管理所有进程。
supervisorctl update: 根据最新的配置文件,启动新配置或有改动的进程,配置没有改动的进程不会受影响而重启。

注意:显示用stop停止掉的进程,用reload或者update都不会自动重启。

原文https://feilong.me/2011/03/monitor-processes-with-supervisord

省略sudo使用docker

安装 docker

1
wget -qO- https://get.docker.com/ | sh

1
sudo apt install docker

原理

为什么需要创建 docker 用户组?
Docker 守候进程绑定的是一个 unix socket,而不是 TCP 端口。这个套接字默认的属主是 root,其他是用户可以使用 sudo 命令来访问这个套接字文件。因为这个原因,docker 服务进程都是以 root 帐号的身份运行的。

阅读全文...

su 与 su - 的区别

1
2
su root
su - root

两条命令输入密码后(这里输入的是 root 的密码而不是当前用户的密码),会切换到 root。

su root

只会切换账号,但 shell 还是原有用户的,目录不会切换,环境变量也不会还,与使用 sudo 执行命令差不多。

su - root

会彻底切换账户,目录会切换到/root 目录,并且环境变量也是 root 的。相当于使用 root 做了登录

使用阿里云ecs主机打造shadowsocks服务器,实现科学上网

要想打造一台自己的ss(shadowsocks)或ssr(shadowsocksR)服务器。要具备一下条件:

  1. 要有一台自己的服务器vps或ecs云主机都可以,虚拟主机是不行滴
  2. 服务器一定要在海外或中国香港。推荐日、韩、香港、新加坡服务器
    下面已阿里ecs为实例说明,主要是ecs降价了366/年的价格速度很快。比网上说的搬瓦工、Vultr强多了。

阅读全文...

linux安装java环境

下载jdk

可以到https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html下载
JDK 8u201 是稳定版本
JDK 8u202 是开发版本,包含了8u21的功能和一些其他功能,有可能会有bug
找到Java SE Development Kit 8u201点击该栏目下的Accept License Agreement单选项
在下面的列表中找到需要的版本,右键复制链接,在terminal里面用wget命令下载,下面用的是jdk-8u201-linux-x64

1
wget https://download.oracle.com/otn-pub/java/jdk/8u201-b09/42970487e3af4f5aa5bca3f542482c60/jdk-8u201-linux-x64.tar.gz?AuthParam=1554274626_8750d27ae1e72e03c48aa9f516d713c3

解压程序包并移动到/opt目录

1
2
3
4
5
6
# 先改个名字,要不然看着别扭
mv jdk-8u201-linux-x64.tar.gz?AuthParam=1554274626_8750d27ae1e72e03c48aa9f516d713c3 jdk-8u201-linux-x64.tar.gz
# 解压
tar zxvf jdk-8u201-linux-x64.tar.gz
# 解压后会出现jdk1.8.0_201文件夹,将其移动到/opt目录
sudo mv jdk1.8.0_201 /opt

设置环境变量

1
vi ~/.profile

在最后加入

1
2
3
4
5
#java
export JAVA_HOME=/opt/jdk1.8.0_201 #jdk的存放目录
export JRE_HOME=$JAVA_HOME/jre
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

最后让配置生效

1
source ~/.profile

运行java --version看是否生效,如果出现java版本信息标示生效了

1
2
3
java version "1.8.0_201"
Java(TM) SE Runtime Environment (build 1.8.0_201-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.201-b09, mixed mode)