svn:externals文件(夹)链接,FlashDevelop开启SVN插件

  • 使用svn:externals建立文件(夹)链接

在实际开发常常出现这样的情况:同一文件(文件夹)在不同的项目中使用,如果复制多份,维护会变得非常麻烦。

虽然windows可以使用mklink(linux可以使用ln)创建软连接,但是提交到svn会变成两份不同的文件,svn不能识别软连接。

此时使用svn:externals可以方便的解决这个问题,svn:externals是用来建立文件(夹)链接,或者叫文件(夹)引用,或者映射什么的….总之作用就是svn上的一个文件,在多处使用,修改后update,即会同步更新。这样管理项目的公用代码就很方便了,今天刚好用到,就记录下来

1、在任意SVN目录右键,选择 TortoiseSVN -> Properties。

2、选择new -> externals

3、出现的界面里面,Local path代表本地文件或者文件夹的名称,URL是SVN地址。

关键的地方到了,如果Local path设置为css(一个文件夹),URL设置 http://keenwon.com/css(一个文件夹)。那么会在当前目录建立一个CSS文件夹,指向http://keenwon.com/css。同理,如果Local path设置为style.css,URL设置为http://keenwon.com/css/style.css,就会在本目录建立一个style.css文件,指向http://keenwon.com/css/style.css。

这样,可以做到文件(夹)的同步更新。另外要注意上面设置的URL是否有权限。

注意:不能在给两个不同的仓库加svn:externals。也就是说,当前目录是http://example.com下的,你不能外链http://google.com下的文件,http://example.com下的可以随便引用。

  • FlashDevelop开启SVN插件

Tools->Program Settings…->选择SourceControl。

在右边的SVN栏里面:

修改Enable SVN 为True
SVN Path 为TortoiseSVN安装目录下面的\bin\svn.exe(注意:可能找不到svn.exe,是因为安装的时候没有勾选CMD Line Tools,需要重新安装一下TortoiseSVN,注意全部勾选安装选项)
TortoiseSVN Proc Path 这个一般都正确。

重启FlashDevelop即可。

在CentOS 7上安装Redis

Redis是一个开源的,先进的 key-value 存储可用于构建高性能,可扩展的 Web 应用程序的解决方案。Redis官方网网站是:http://www.redis.io/

安装编译工具

yum install gcc make -y

官网下载页下载最新版本的redis

curl http://download.redis.io/releases/redis-3.2.3.tar.gz -o redis-3.2.3.tar.gz

解压压缩包

tar zxvf redis-3.2.3.tar.gz

进入刚刚解压的文件夹,后面的cp命令拷贝redis相关的配置文件都是相对于该目录

cd redis-3.2.3

编译

make

安装

make install

创建redis配置目录

mkdir /etc/redis

创建工作与数据目录

mkdir -p /var/lib/redis

设置系统参数

设置内存分配策略

sysctl -w vm.overcommit_memory=1

优化somaxconn

sysctl -w net.core.somaxconn=512

禁用transparent huge pages

echo never > /sys/kernel/mm/transparent_hugepage/enabled

上面3个配置只是临时生效,重启会丢失,如果要永久修改则按如下处理:

编辑/etc/sysctl.conf,添加下面两行

net.core.somaxconn=512
vm.overcommit_memory=1

使之立即生效

sysctl -p

禁用透明大页(transparent huge pages)参考
https://docs.mongodb.com/manual/tutorial/transparent-huge-pages/

Redis配置

拷贝配置

cp redis.conf /etc/redis/redis.conf

编辑配置参数

vi /etc/redis/redis.conf

设置为守护进程修改daemonize no为

daemonize yes

检查pidfile

pidfile /var/run/redis_6379.pid

检查端口

port 6379

日志等级

loglevel notice

日志文件

logfile /var/log/redis/redis.log

持久化目录

dir /var/lib/redis

安全上可以考虑使用unixsocket

unixsocket /tmp/redis.sock
unixsocketperm 700

命令行测试的时候就使用

redis-cli -s /tmp/redis.sock

可以设置密码

requirepass “bTFBx1NYYWRMTUEyNHhsCg”

配置完毕,保存退出。

添加用户

useradd redis

更改目录权限

chown -R redis:redis /var/lib/redis
chown -R redis:redis /var/log/redis

设置开机启动

cp utils/redis_init_script /etc/init.d/redis

编辑服务

vi /etc/systemd/system/redis.service

粘贴以下代码

[Unit]
Description=Redis server

[Service]
User=redis
Group=redis
Type=forking
ExecStart=/etc/init.d/redis start
ExecStop=/etc/init.d/redis stop

[Install]
WantedBy=multi-user.target

开机启动

systemctl enable redis

启动服务

systemctl start redis

【完】

MongoDB从2.x升级到3.x后启动失败

今天把MongoDB从2.6升级到了3.2,升级后使用命令直接启动可以,但是使用systemctl启动服务总是失败。

提示:Failed to start SYSV …

折腾了好一会,原来是mongodb2.6的用户是mongodb,而mongodb3.2的用户是mongod,导致没有权限访问原来的文件,从而启动失败。

而直接用命令行启动,因为是root账户登录的,可以访问其他账户的文件,而不存在权限问题。

解决方法:
修改目录所有权

chown -R mongod:mongod /var/log/mongodb
chown -R mongod:mongod /var/lib/mongo

除了journalctl -xe 查看日志,还要注意查看/var/log/mongodb/下面的日志,好发现问题。

【注意】升级注意做好数据升级操作,参考网络上其他文章

升级后,进入mongo shell,如果有警告

** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always.'
**        We suggest setting it to 'never'

参考https://docs.mongodb.com/manual/tutorial/transparent-huge-pages/

CentOS 7 搭建ShadowSocks(ss)服务器

在搭建ss服务器之前,先谈一下CentOS 7与CentOS 6在主要使用上的区别。
1、服务管理由service命令变为systemctl命令。支持start、stop和status 3种动作。
2、防火墙由iptables变为firewalld。使用firewall-cmd进行操作。
firewalld的配置请参考如何在RHEL/CentOS 7以及Fedora中配置FirewallD

注意在查找资料的时候,搜索词应该加上CentOS 7,如: CentOS 7 安装ss服务器。减少搜索到CentOS6内容的机会。以免采用了iptables而使过程不顺利。

安装Shadowsocks

#安装 python setup tools
yum install python-setuptools -y
#安装pip
easy_install pip
#升级 pip
pip install –upgrade pip
#安装 shadowsocks
pip install shadowsocks

配置Shadowsocks

vi /etc/shadowsocks-libev/config.json

然后对照下面的修改

{
“server”:”0.0.0.0″,
“server_port”:8989,
“local_address”: “127.0.0.1”,
“local_port”:1080,
“password”:”mypassword”,
“timeout”:300,
“method”:”aes-256-cfb”,
“fast_open”: false,
“workers”: 1
}

将上面的mypassword替换成你的密码,server_port也是可以修改的,例如8980,method是加密方式,如果想在路由器上运行的话可以改成rc4-md5这样路由器的负荷会小一些,同时加密的安全性也不错。

创建 shadowsocks 服务, 随系统启动

vim /usr/lib/systemd/system/shadowsocks.service

写入下面的内容

[Unit]
Description=Shadowsocks Server
Documentation=https://github.com/shadowsocks/shadowsocks
After=network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
#设置启动时的配置文件,根据自己的需求改.
ExecStart=/usr/bin/ssserver -c /etc/shadowsocks-libev/config.json
-d start
ExecReload=/bin/kill -HUP $MAINPID
ExecStop=/usr/bin/ssserver -d stop

[Install]
WantedBy=multi-user.target

保存退出

启动服务

systemctl enable shadowsocks
systemctl start shadowsocks

配置防火墙

firewall-cmd –permanent –add-port=8989/tcp
firewall-cmd –permanent –add-port=8989/udp
firewall-cmd –reload

到这里基本就可以了。客户端的使用方法还请自行搜索一下。

参考文章:
Centos 7安装配置Shadowsocks
CentOS 7 安装 Shadowsocks 科学上网

因时间有点久,搭建的过程主要是参考资料以及查看配置来写的,如果有错误,还请原谅。

附多用户的配置格式:

{
“server”:”0.0.0.0″,
“local_address”:”127.0.0.1″,
“local_port”:1080,
“timeout”:600,
“method”:”aes-256-cfb”,
“port_password”:
{
“8991”:”A用户密码”,
“8992”:”B用户密码”
}
}