Windows下右键菜单添加Open with Cygwin

Windows下cmd因过于难用,且命令与Unix-like系统稍有差别,使用起来不太顺手;
有时候需要在当前目录下以命令行执行一些东西,使用cmd再cd较为麻烦;
综合以上原因,考虑在右键菜单中添加Open with Cygwinl来用cygwin代替cmd使用;

Cygwin安装步骤略

添加到右键菜单操作步骤如下:

1、regedit,打开注册表编辑器。

2、找到[HKEY_CLASSES_ROOT\Directory\Background\Shell]。

3、在下右键-New-Key,命名为“Cygwin”或其他。

4、单击[Cygwin],在右侧设置(Default)值为:Open with Cygwin

5、在[Cynwin]下右键-New-String Value,设置其值为‪”D:\cygwin64\Cygwin-Terminal.ico”或相应图标路径。

6、在[Cygwin]上右键-New-Key,命名为”commadn“,其(default)值为”D:\cygwin64\bin\mintty.exe”。

完成以上步骤即可实现。

Debian 8安装Node.js及Express Web框架

0x00 前言

最近突然想尝试下Node.js,于是今天上午的时候就在Windows下使用msi安装包尝了尝鲜。下午时尝试在VPS(debian系统)上进行配置,踩了一些小坑。

0x01 使用apt-get方式安装

按照以前的习惯(主要是懒),使用$ sudo apt-get install nodejs npm进行安装,一切顺利。安装结束后,nodejs -v命令显示版本号为0.10.*,想到早上在windows下安装的版本已7.1.0,瞬间懵逼。遂卸载 $ sudo apt-get remove nodejs npm.

0x02 中途放弃的源码安装

尝试从https://github.com/nodejs/node上clone时发现仓库远比我想象的要大,出于能简单绝不麻烦的考虑,放弃该方案。

0x03 使用二进制包

从官方https://nodejs.org/en/download/下载Linux下的二进制安装包。此处我下载的是Current版,版本号v7.1.0,下载并解压:

$ wget https://nodejs.org/dist/v7.1.0/node-v7.1.0-linux-x64.tar.xz
$ xz -d node-v7.1.0-linux-x64.tar.xz
$ tar xvf node-v7.1.0-linux-x64.tar

进入解压后的目录,查看结构:
node0
将对应目录拷贝至根目录下:
$ sudo cp -r ./bin/* /bin/
$ sudo cp -r ./include/* /include/
$ sudo cp -r ./lib/* /lib/
$ sudo mkdir /share
$ sudo cp -r ./share/* /share/

执行node -v,可以正常显示版本号,安装基本完成。

0x04 npm问题

若安装输入npm命令报错:
node3
可能是由于复制bin目录时未使用-r参数,导致npm的符号链接丢失:
node4
解决方案:使用cp -r命令重新复制或手动建立符号链接
$ sudo rm /bin/npm
$ sudo ln -s /lib/node_modules/npm/bin/npm-cli.js /bin/npm
node5

0x05 安装Express生成器并生成应用程序

$ sudo npm install express-generator -g
$ express myapp
$ cd myapp && npm install
$ DEBUG=myapp:* npm start

浏览器访问http://ip:3000,出现欢迎页面即安装成功;
若未出现请检查防火墙

0x06 持续运行

使用$ DEBUG=myapp:* npm start 命令是在终端中持续运行,若终端关闭则服务器同时也被关闭,有三种解决方案:

(1) nohup
$ nohup npm start > log.log &
优点:简单快捷
缺点:关闭时需要使用ps查看进程号后使用kill命令;崩溃后无法重启

(2) screen
在screen中执行$ DEBUG=myapp:* npm start
优点:可以ctrl -c终止,同时也可以关闭终端后持续运行,适用于开发阶段随时开启关闭服务器
缺点:崩溃后无法重启

(3)forever
安装$ sudo npm install forever -g
运行$ forever start app.js
关闭$ forever stop app.js

0x07 配置nginx反向代理

略~~

Apache虚拟主机设置域名泛解析

1、泛解析支持
<VirtualHost *:80> 
ServerName      blog.flagplus.net
ServerAlias     *.blog.flagplus.net

#其余配置略
</VirtualHost>

2、同一虚拟主机多域名支持:
<VirtualHost *:80>
ServerName      blog.flagplus.net
ServerAlias     www2.flagplus.net

#其余配置略
</VirtualHost>

Laravel 5 默认使用类/方法路由

在使用绝大部分框架时,路由默认行为为访问http://xxx.com/controller_name/function_name时自动路由至Controller_nameController.php控制器下的function_name方法(Yii2 中为actionFunction_name方法),在laravel中默认并不支持这么做并认为这是一个不好的习惯。
如果执意需要此功能,可通过修改路由实现。

修改路由文件rootpath/routers/web.php,在文件最后增加以下内容:

Route::get('{model}/{func}', function ($model,$func) {
$className = 'App\Http\Controllers\\'.ucfirst($model).'Controller';
$obj = new $className;
return $obj->$func();
});
Route::get('{model}', function ($model) {
$className = 'App\Http\Controllers\\'.ucfirst($model).'Controller';
$obj = new $className;
return $obj->index();
});

参考:
https://doc.laravel-china.org/docs/5.1/routing

Debian 8 testing 安装 WPS

虽然说在Windows下的时候几乎没用过WPS,但在近期将工作平台转移到Debian后,还是觉得应该把WPS装上比较放心。在使用Debian 7的时候可以开混合架构,开启后装一大堆32位依赖就可以直接解压运行了,比较简单;这次看到新版的竟然原生有64位版本,甚是激动,赶紧下载安装!

继续阅读